排查 Power Apps 工作流集成问题

适用于: Power Apps
原始 KB 数: 4477072

将 Power Automate 流与 Power Apps 集成时,可能会遇到连接引用错误、授权错误或未触发的触发器,导致流失败。 本文可帮助你排查这些问题,并提供管理流更新的最佳做法。

流集成错误通常在以下情况下发生:

  • 流元数据与应用程序不同步
  • 连接权限不足或配置不当
  • 流被禁用或超时
  • 应用部署后流定义发生更改

本文档介绍以下错误代码及其原因和缓解策略:

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 流更新为使用新连接时,会出现此问题,但应用仍使用旧的流元数据。 即使流已更新,引用流的应用仍保留以前的流元数据。

缓解步骤

注意

请确保在源或开发环境中执行以下步骤并更新解决方案。 在源或开发环境中更新解决方案后,将其导出并导入到所有目标或生产环境中。

若要解决此错误,请手动编辑应用,以确保更改显示在应用中,并使流程正常运行。

  1. 使用 最新版本的 Power Apps Studio 打开应用进行编辑。
  2. 从应用中删除 Power Automate 流程
  3. 读取流到应用
  4. 保存并重新发布应用。

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 流进行更改时,应用创建者必须编辑使用该流的应用,以删除或重新添加已更改的流。

对于解决方案中包含的应用或流,应用可能会成功调用源环境中的流,但在目标环境中失败,并显示以下错误消息:

未为此服务配置连接。

当目标环境中的流发生了源环境中不存在的更改(导致连接引用或元数据不匹配)时,会发生此错误。

缓解步骤

注意

请确保在源或开发环境中执行以下步骤并更新解决方案。 在源或开发环境中更新解决方案后,将其导出并导入到所有目标或生产环境中。

  1. 在源环境中,编辑应用。 删除读取 流到应用。 保存并发布更改。

  2. 在目标环境中,删除应用和流中的所有未托管的解决方案层。

  3. 导出解决方案并将其导入目标环境。

    注意

    确保工作流和应用程序没有非托管解决方案层。 未被管理的解决方案层可能会影响连接引用的工作并导致集成问题。

Power Automate 流程运行中的错误代码“NotAllowedConnectionReference”

    {
        "code": " NotAllowedConnectionReference", 
        "message": "Connection reference '<connection name>' was not given by invoker."
    }

示例错误:

调用方未提供连接引用“<连接名称>”。

原因

当应用的流元数据在安装过程中需要特定的连接引用(例如 SQL 连接)时,会发生此错误。 如果流的当前元数据不符合此预期,则会发生错误。

缓解步骤

注意

请确保在源或开发环境中执行以下步骤并更新解决方案。 在源或开发环境中更新解决方案后,将其导出并导入到所有目标或生产环境中。

缓解选项 1

重置应用中的 Power Automate 流:

  1. 在源环境中,编辑应用。 删除读取 流到应用。 保存并发布更改。

  2. 在目标环境中,删除应用和流程中的所有非托管解决方案层

  3. 导出解决方案并将其导入目标环境。

    注意

    请确保流程和应用程序都没有非托管解决方案层。 非托管解决方案层可能会干扰连接引用并导致集成问题。

缓解选项 2

将连接从 Embedded 更改为 Invoker

  1. 若要编辑和更新流设置,请导航到 Power Automate 流门户。
  2. 在“流详细信息”页上的 “仅运行用户 ”部分中,选择“ 编辑”。
  3. 若要将流连接源更新为 Invoker,请选择由 运行权限用户 提供,并保存。
  4. 通过触发流进行验证。

Power Automate 流更新导致的故障

当流更新导致集成问题时,你可能会看到有助于识别和排查特定问题的这些其他症状。

症状 1

将新输入添加到 Power Automate 流但 Power App 未更新时,该流可能会失败。 如果流失败,它将返回类似于以下示例的错误消息:

无法处理行“1”、列“1900”的操作“Send_me_a_mobile_notification”中的模板语言表达式:“模板语言表达式 'triggerBody()['Sendmeamobilenotification_Text']' 无法计算,因为无法选择属性 'Sendmeamobilenotification_Text'。” 请参阅 https://aka.ms/logicexpressions 使用情况详细信息。'。

在未更新 Power App 的情况下将新输入添加到流程时出现错误消息的屏幕截图。

症状 2

如果运行 Power Automate 流所需的连接发生变化,可能会收到错误。

在 Power Apps 中,它可能如下所示:

有关 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 使用情况详细信息。'。

关于 Flow 中连接问题的错误消息的屏幕截图。

症状 3

如果删除了响应输出,Power Apps 会将该值视为空白,导致应用程序出现意外行为。

原因

Power Apps 需要知道调用流所需的三项内容:流需要哪些输入、要提供的连接以及流返回的输出。 Power Apps 将此信息存储在应用定义中,在应用版本和它使用的流之间创建绑定。 更改这三个流方面中的任何一个时,可以中断与该流集成的所有以前的应用版本。

最有可能导致 Power Apps 无法调用 Power Automate 流的更改类型包括:

  1. 在 Power Apps 中添加新的“询问”令牌

    在 Power Apps 令牌中添加新的 Ask 的屏幕截图。

  2. 添加新连接。 例如,通过添加以前未使用过的 SharePoint 连接器中的新操作。

    屏幕截图显示了添加新连接的示例。

  3. 更改现有连接。 例如,将现有连接更改为新连接。

    在 Flow 中更改现有连接的屏幕截图。

  4. “响应 Power Apps” 操作中删除输出。

    从“响应 Power Apps”操作中删除输出的屏幕截图。

对输入或输出的其他更改可能不会中断 Power Apps 与 Power Automate 流之间的集成。 但是,必须更新应用才能识别和利用新的或修改的输入和输出。

决议

若要修复受影响的应用或使用这些流更改,需要更新应用。 解决问题的方法取决于是使用实时应用还是开发版本。 每个方案都需要不同的步骤来防止用户中断。

更改已发布的(在线)Power App

当应用已发布且正在使用时,在进行更新之前,请始终创建流的副本。 直接更新流可能会中断现有用户的应用。

执行以下步骤:

  1. 使用 “另存为 ”选项创建需要更新的流副本。

    选择“另存为”选项,以复制 Power App 中使用的流的屏幕截图。

  2. 对复制的流进行更改。

  3. 更新应用以使用新流而不是原始流。

  4. 测试和发布更新的应用。

  5. 所有用户升级到新的应用版本后,可以安全地删除或关闭原始流。

此方法确保用户继续使用原始应用程序和流程,直到他们准备好使用更新的版本。

更改 Power App 的开发版本

在开发应用(尚未发布)时,无需创建副本即可直接安全地更新流。

执行以下步骤:

  1. 对流进行更改(输入、输出或连接)。
  2. 在 Power Apps Studio 中,转到 “Flows” 窗格。
  3. 从应用中删除流
  4. 将更新后的流添加回应用
  5. 保存您的应用。

此过程将更新应用以使用流的新配置。 由于应用尚未发布,因此所做的更改不会影响用户。

References