更新 Power App 使用的流的最佳做法
本文介绍在 Power Apps 中运行Microsoft流时缓解常见错误的最佳做法和步骤。
适用于: Power Apps
原始 KB 数: 4477072
流运行时出现错误代码“InvokerConnectionOverrideFailed”
某些流无法在 Power Apps 中运行。 在 Flow 运行历史记录或 Power Apps 遥测中,可能会收到如下所示的错误:
{
"code": "InvokerConnectionOverrideFailed",
"message": "Failed to parse invoker connections from trigger 'manual' outputs. Exception: Could not find any valid connection for connection reference name '<some_connection>' in APIM tokens header."
}
注意
在 Common Data Service(CDS)上调用 install
API 时也会发生此错误,但响应是一般错误“安装流失败”。
原因
出现此问题的原因是流已更新为使用新连接,但应用仍使用旧的流元数据。 更新流不会更新使用该流的应用。 若要解决此问题,必须手动更新应用,以便在应用中反映更改以及流正常工作。
缓解步骤
注意
请确保在源或开发环境中执行以下步骤并更新解决方案。 更新解决方案后,将其导入到所有目标或生产环境。
- 使用 最新版本的 Power Apps Studio 打开应用进行编辑。
- 从应用 中删除流(从 Power Automate 选项卡删除流)。
- 将流重新添加到应用。
- 保存并重新发布应用。
流运行时出现错误代码“ConnectionAuthorizationFailed”
{
"code": "ConnectionAuthorizationFailed",
"message": "The caller with object id '{user_id}' does not have the minimum required permission to perform the requested operation on connection '{some_connection_id}' under API '{some_connection_api}'."
}
原因
此错误意味着,尽管创建者有权访问流,但创建者对流操作中使用的依赖连接没有权限。 这是 Power Apps 和 Flow 集成的限制。
缓解步骤
注意
请确保在源或开发环境中执行以下步骤并更新解决方案。 更新解决方案后,将其导入到所有目标或生产环境。
此缓解措施是让流中的所有连接都由单个用户拥有,然后让该用户将流添加到应用。
流运行时出现错误代码“WorkflowTriggerIsNotEnabled”
{
"code": "WorkflowTriggerIsNotEnabled",
"message": "Could not execute workflow '<GUID>' trigger 'manual' with state 'Disabled': trigger is not enabled."
}
原因
此错误表示流已关闭。
缓解步骤
注意
请确保在源或开发环境中执行以下步骤并更新解决方案。 更新解决方案后,将其导入到所有目标或生产环境。
缓解措施是 打开流。
流运行时的内部错误代码“ResponseTimeout”
{
"error": {
"code": 504,
"source": "<api hub source>",
"clientRequestId": "<GUID>",
"message": "BadGateway",
"innerError": {
"error": {
"code": "ResponseTimeout",
"message": "The server did not receive a timely response from the upstream server. Request tracking id '<some_tracking_id>'."
}
}
}
}
原因
此错误表示同步流完成时间超过 120 秒(2 分钟),从而导致超时。 详细了解出站同步请求的超时限制。
缓解步骤
注意
请确保在源或开发环境中执行以下步骤并更新解决方案。 更新解决方案后,将其导入到所有目标或生产环境。
缓解措施是查找哪个流运行时间过长,并使用运行速度缓慢的流故障排除中提供的解决方案优化它以在两分钟内运行。
流运行时的错误代码“0x80040265”或“0x80048d0b”
{
"code": " 0x80040265",
"message": "Failed to install the flow."
}
{
"code": " 0x80048d0b",
"message": "Failed to install the flow."
}
缓解步骤
注意
请确保在源或开发环境中执行以下步骤并更新解决方案。 更新解决方案后,将其导入到所有目标或生产环境。
请尝试针对以下错误代码之一提到的解决方案:
流运行时出现错误代码“MissingConnectionReference”
{
"code": " MissingConnectionReference' ",
"message": " Connection reference '<connection name>' was not given by invoker."
}
示例错误:
调用方未提供连接引用“<连接名称>”。
原因
实质上,必须同步应用和流元数据。 对流所做的任何更改都需要应用创建者使用流编辑应用,并删除或重新添加更改的流。
对于解决方案应用或流,应用可能会成功调用源环境中的流,然后在目标环境中失败并显示以下错误消息:
未为此服务配置连接。
原因是目标环境中可能存在流更改,但源环境中不存在该流。
缓解步骤
注意
请确保在源或开发环境中执行以下步骤并更新解决方案。 更新解决方案后,将其导入到所有目标或生产环境。
在源环境中,编辑应用。 删除流,然后重新添加到应用。 保存并发布更改。
在目标环境中,删除应用和流上的所有非托管层。
导出解决方案并将其导入目标环境。
注意
流或应用上不能有非托管层,因为这可能会导致与流相关的问题。
流运行时出现错误代码“NotAllowedConnectionReferenceon”
{
"code": " NotAllowedConnectionReference",
"message": "Connection reference '<connection name>' was not given by invoker."
}
示例错误:
调用方未提供连接引用“<连接名称>”。
原因
此错误表示应用具有流元数据,用于指定在安装时需要 SQL 连接,但实际流元数据不同。
缓解步骤
注意
请确保在源或开发环境中执行以下步骤并更新解决方案。 更新解决方案后,将其导入到所有目标或生产环境。
缓解选项 1
在源环境中,编辑应用。 删除流,然后重新添加到应用。 保存并发布更改。
在目标环境中,删除应用和流上的所有非托管层。
导出解决方案并将其导入目标环境。
注意
流或应用上不能有非托管层,因为这可能会导致与流相关的问题。
缓解选项 2
- 将连接从 Embedded 更改为 Invoker。
- 导航到流门户以编辑和更新流设置。
- 在“流详细信息”页上的仅运行用户部分,选择编辑。
- 若要将流连接源更新到 Invoker,请选择 “仅运行用户 提供”并保存。
- 若要将流连接源更新到 Embedded,请选择“ 使用此连接 并保存”。
- 通过触发流进行验证。 你会看到“安装流网络”调用现已成功。
其他症状
更新流后,从 Power Apps 调用该流开始失败。
如果在未更新 Power App 的情况下将新输入添加到流中,则流将失败,并显示如下所示的错误消息:
无法在行“1”和列“1900”的操作“Send_me_a_mobile_notification”中处理模板语言表达式:“模板语言表达式”triggerBody()['Sendmeamobilenotification_Text']“无法计算,因为无法选择属性”Sendmeamobilenotification_Text”。 请参阅
https://aka.ms/logicexpressions
使用情况详细信息。'。如果运行流更改所需的连接,则会出现一个抱怨连接的错误:
在 Power Apps 中,它可能如下所示:
或在 Flow 中,它可能如下所示:
无法在行“1”和列“1899”的操作“Send_an_email”输入中处理模板语言表达式:“模板语言表达式”json(decodeBase64(triggerOutputs(.headers['X-MS-APIM-Tokens']))['$connections']['shared_office365']['connectionId]“无法计算,因为属性”shared_office365“不存在, 可用属性为”shared_flowpush”。 请参阅
https://aka.ms/logicexpressions
使用情况详细信息。'。如果删除响应输出,Power Apps 会将该值视为空白,Power App 的行为将意外。
原因
若要从 Power Apps 调用流,Power Apps 需要知道流需要哪些输入、与流提供的连接以及流将返回哪些输出。 Power Apps 将此信息存储在 Power App 的定义中,该定义在 Power App 版本与其中使用的流之间创建绑定。 更改流这三个方面中的任何一个可能会中断与该流集成的所有以前版本的 Power Apps。 若要修复受影响的 Power App 或使用其中一个流更改,需要更新 Power App。
最有可能中断 Power Apps 调用流的更改类型包括:
在 Power Apps 令牌中添加新的 Ask。
添加新连接。 例如,通过从以前未使用过 SharePoint 连接器的连接器添加新操作。
更改现有连接。 例如,将现有连接更改为新连接。
从“响应 Power Apps”操作中删除输出。
对输入或输出的其他更改不会中断 Power Apps 与 Flow 之间的集成,但需要更新 Power App,以便可以使用它们。
解决方法
更改实时 Power App
发布 Power App 后,始终建议创建 Power Apps 用于进行任何更新的流副本。 对实时 Power App 引用的流的任何更新都有可能中断现有用户。 在所有用户都升级到 Power App 的新发布版本之前,请勿删除或关闭现有流。
在 Power App 的新版本中,引用新流。 发布新版本的 Power App 后,用户将开始使用具有正确输入、输出和连接的新流。 这将阻止新版本 Power Apps 的流更新影响现有版本的用户。
更改 Power App 开发版本
开发 Power App 时,对实时版本的 Power App 不使用的流进行更改很容易。 更改非发布的流的输入、输出或连接后,请从 “流 ”窗格中重新选择流。
它将更新 Power App 中流的定义,验证 Power App 中使用了正确的输入、输出和连接。
在发布 Power App 之前,Power App 的用户不会开始使用新流。 因此,更新现有流是正常的,直到 Power App 的实时版本使用它。