适用于: Power Apps
原始 KB 数: 4477072
将 Power Automate 流与 Power Apps 集成时,可能会遇到连接引用错误、授权错误或未触发的触发器,导致流失败。 本文可帮助你排查这些问题,并提供管理流更新的最佳做法。
流集成错误通常在以下情况下发生:
- 流元数据与应用程序不同步
- 连接权限不足或配置不当
- 流被禁用或超时
- 应用部署后流定义发生更改
本文档介绍以下错误代码及其原因和缓解策略:
- InvokerConnectionOverrideFailed
- ConnectionAuthorizationFailed
- WorkflowTriggerIsNotEnabled
- ResponseTimeout
- 0x80040265/0x80048d0b
- MissingConnectionReference
- NotAllowedConnectionReference
Power Automate 流程运行的错误代码“InvokerConnectionOverrideFailed”
某些 Power Automate 流可能无法在 Power Apps 中运行,你可能会在 Power Automate 流运行历史记录或 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."
}
注意
在 Dataverse(前 Common Data Service)上调用安装 API 时,也可能出现此错误,导致一般错误消息:“安装流失败。
原因
当 Power Automate 流更新为使用新连接时,会出现此问题,但应用仍使用旧的流元数据。 即使流已更新,引用流的应用仍保留以前的流元数据。
缓解步骤
注意
请确保在源或开发环境中执行以下步骤并更新解决方案。 在源或开发环境中更新解决方案后,将其导出并导入到所有目标或生产环境中。
若要解决此错误,请手动编辑应用,以确保更改显示在应用中,并使流程正常运行。
- 使用 最新版本的 Power Apps Studio 打开应用进行编辑。
- 从应用中删除 Power Automate 流程。
- 读取流到应用。
- 保存并重新发布应用。
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 Automate 流本身,也可能发生此错误。 此问题是 Power Apps 与 Power Automate 流程集成的局限性。
缓解步骤
注意
请确保在源或开发环境中执行以下步骤并更新解决方案。 在源或开发环境中更新解决方案后,将其导出并导入到所有目标或生产环境中。
若要缓解此问题,请确保 Power Automate 流中使用的所有连接均获得对将流添加到应用程序的用户的授权。 用户必须具有 Power Automate 流引用的每个连接所需的权限。 有关详细信息,请参阅 了解流所有权和访问权限。
Power Automate 流运行的错误代码是“WorkflowTriggerIsNotEnabled”
{
"code": "WorkflowTriggerIsNotEnabled",
"message": "Could not execute workflow '<GUID>' trigger 'manual' with state 'Disabled': trigger is not enabled."
}
原因
Power Automate 流已禁用或关闭。
缓解步骤
注意
请确保在源或开发环境中执行以下步骤并更新解决方案。 在源或开发环境中更新解决方案后,将其导出并导入到所有目标或生产环境中。
确保 Power Automate 流已打开 后,通过手动测试来验证流是否运行。
Power Automate 流运行中的内部错误代码“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>'."
}
}
}
}
原因
此错误表示同步 Power Automate 流运行超过允许的最大执行时间 120 秒(2 分钟),从而导致超时。 详细了解出站同步请求的超时限制。
缓解步骤
注意
请确保在源或开发环境中执行以下步骤并更新解决方案。 在源或开发环境中更新解决方案后,将其导出并导入到所有目标或生产环境中。
若要缓解此问题, 请确定哪些 Power Automate 流运行超出了超时限制 ,并优化流的操作,以便在 120 秒内完成。 查看 排查运行缓慢的流问题中的建议。
Power Automate 流运行的错误代码“0x80040265”或“0x80048d0b”
{
"code": " 0x80040265",
"message": "Failed to install the flow."
}
{
"code": " 0x80048d0b",
"message": "Failed to install the flow."
}
缓解步骤
注意
请确保在源或开发环境中执行以下步骤并更新解决方案。 在源或开发环境中更新解决方案后,将其导出并导入到所有目标或生产环境中。
请尝试针对以下错误代码所述的缓解步骤,因为根本原因可能类似:
Power Automate 流运行中的错误代码为“MissingConnectionReference”
{
"code": " MissingConnectionReference' ",
"message": " Connection reference '<connection name>' was not given by invoker."
}
示例错误:
调用方未提供连接引用“<连接名称>”。
原因
Power App 和 Power Automate 流元数据必须始终同步。 对 Power Automate 流进行更改时,应用创建者必须编辑使用该流的应用,以删除或重新添加已更改的流。
对于解决方案中包含的应用或流,应用可能会成功调用源环境中的流,但在目标环境中失败,并显示以下错误消息:
未为此服务配置连接。
当目标环境中的流发生了源环境中不存在的更改(导致连接引用或元数据不匹配)时,会发生此错误。
缓解步骤
注意
请确保在源或开发环境中执行以下步骤并更新解决方案。 在源或开发环境中更新解决方案后,将其导出并导入到所有目标或生产环境中。
在目标环境中,删除应用和流中的所有未托管的解决方案层。
导出解决方案并将其导入目标环境。
注意
确保工作流和应用程序没有非托管解决方案层。 未被管理的解决方案层可能会影响连接引用的工作并导致集成问题。
Power Automate 流程运行中的错误代码“NotAllowedConnectionReference”
{
"code": " NotAllowedConnectionReference",
"message": "Connection reference '<connection name>' was not given by invoker."
}
示例错误:
调用方未提供连接引用“<连接名称>”。
原因
当应用的流元数据在安装过程中需要特定的连接引用(例如 SQL 连接)时,会发生此错误。 如果流的当前元数据不符合此预期,则会发生错误。
缓解步骤
注意
请确保在源或开发环境中执行以下步骤并更新解决方案。 在源或开发环境中更新解决方案后,将其导出并导入到所有目标或生产环境中。
缓解选项 1
重置应用中的 Power Automate 流:
在目标环境中,删除应用和流程中的所有非托管解决方案层。
导出解决方案并将其导入目标环境。
注意
请确保流程和应用程序都没有非托管解决方案层。 非托管解决方案层可能会干扰连接引用并导致集成问题。
缓解选项 2
将连接从 Embedded 更改为 Invoker:
- 若要编辑和更新流设置,请导航到 Power Automate 流门户。
- 在“流详细信息”页上的 “仅运行用户 ”部分中,选择“ 编辑”。
- 若要将流连接源更新为 Invoker,请选择由 运行权限用户 提供,并保存。
- 通过触发流进行验证。
Power Automate 流更新导致的故障
当流更新导致集成问题时,你可能会看到有助于识别和排查特定问题的这些其他症状。
症状 1
将新输入添加到 Power Automate 流但 Power App 未更新时,该流可能会失败。 如果流失败,它将返回类似于以下示例的错误消息:
无法处理行“1”、列“1900”的操作“Send_me_a_mobile_notification”中的模板语言表达式:“模板语言表达式 'triggerBody()['Sendmeamobilenotification_Text']' 无法计算,因为无法选择属性 'Sendmeamobilenotification_Text'。” 请参阅
https://aka.ms/logicexpressions使用情况详细信息。'。
症状 2
如果运行 Power Automate 流所需的连接发生变化,可能会收到错误。
在 Power Apps 中,它可能如下所示:
在 Power Automate 流中,它可能如下所示:
无法在行“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使用情况详细信息。'。
症状 3
如果删除了响应输出,Power Apps 会将该值视为空白,导致应用程序出现意外行为。
原因
Power Apps 需要知道调用流所需的三项内容:流需要哪些输入、要提供的连接以及流返回的输出。 Power Apps 将此信息存储在应用定义中,在应用版本和它使用的流之间创建绑定。 更改这三个流方面中的任何一个时,可以中断与该流集成的所有以前的应用版本。
最有可能导致 Power Apps 无法调用 Power Automate 流的更改类型包括:
在 Power Apps 中添加新的“询问”令牌。
添加新连接。 例如,通过添加以前未使用过的 SharePoint 连接器中的新操作。
更改现有连接。 例如,将现有连接更改为新连接。
从 “响应 Power Apps” 操作中删除输出。
对输入或输出的其他更改可能不会中断 Power Apps 与 Power Automate 流之间的集成。 但是,必须更新应用才能识别和利用新的或修改的输入和输出。
决议
若要修复受影响的应用或使用这些流更改,需要更新应用。 解决问题的方法取决于是使用实时应用还是开发版本。 每个方案都需要不同的步骤来防止用户中断。
更改已发布的(在线)Power App
当应用已发布且正在使用时,在进行更新之前,请始终创建流的副本。 直接更新流可能会中断现有用户的应用。
执行以下步骤:
使用 “另存为 ”选项创建需要更新的流副本。
对复制的流进行更改。
更新应用以使用新流而不是原始流。
测试和发布更新的应用。
所有用户升级到新的应用版本后,可以安全地删除或关闭原始流。
此方法确保用户继续使用原始应用程序和流程,直到他们准备好使用更新的版本。
更改 Power App 的开发版本
在开发应用(尚未发布)时,无需创建副本即可直接安全地更新流。
执行以下步骤:
- 对流进行更改(输入、输出或连接)。
- 在 Power Apps Studio 中,转到 “Flows” 窗格。
- 从应用中删除流。
- 将更新后的流添加回应用。
- 保存您的应用。
此过程将更新应用以使用流的新配置。 由于应用尚未发布,因此所做的更改不会影响用户。