Power App で使用されるフローを更新する場合のベスト プラクティス

この記事では、Power Apps で Microsoft フローを実行するときの一般的なエラーを軽減するためのベスト プラクティスと手順について説明します。

適用対象: Power Apps
元の KB 番号: 4477072

フロー実行のエラー コード "InvokerConnectionOverrideFailed"

一部のフローは Power Apps で実行できません。 フロー実行履歴または 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) で API を呼び出 install したときにも発生しますが、応答は一般的なエラー "インストール フローが失敗しました" です。

原因

この問題は、新しい接続を使用するようにフローが更新されたが、アプリで古いフロー メタデータが引き続き使用されるために発生します。 フローを更新しても、フローを使用するアプリは更新されません。 この問題を解決するには、アプリに変更が反映されるようにアプリを手動で更新し、フローを機能させる必要があります。

軽減策の手順

注:

ソースまたは開発環境で次の手順を実行し、ソリューションを更新してください。 ソリューションが更新されたら、すべてのターゲット環境または運用環境にインポートします。

  1. 最新バージョンの Power Apps Studio を使用して、編集用のアプリを開きます。
  2. アプリからフローを削除します ([Power Automate] タブからフローを削除します)。
  3. フローをアプリに再追加します。
  4. アプリを保存して再発行します。

フロー実行のエラー コード "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 の統合の制限事項です。

軽減策の手順

注:

ソースまたは開発環境で次の手順を実行し、ソリューションを更新してください。 ソリューションが更新されたら、すべてのターゲット環境または運用環境にインポートします。

この軽減策は、フロー内のすべての接続を 1 人のユーザーが所有し、そのユーザーにフローをアプリに追加することです。

フロー実行のエラー コード "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 分) より長くかかるため、タイムアウトになります。 送信同期要求のタイムアウト制限について詳しくは、こちらをご覧ください。

軽減策の手順

注:

ソースまたは開発環境で次の手順を実行し、ソリューションを更新してください。 ソリューションが更新されたら、すべてのターゲット環境または運用環境にインポートします。

この軽減策は、実行に 時間がかかりすぎるフローを見つけ 、実行速度の 遅いフローのトラブルシューティングに関する記事で説明されている解決策を使用して、2 分で実行するように最適化することです。

Flow 実行時のエラー コード "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."
    } 

エラーの例:

接続参照 '<接続名>' は、invoker によって指定されませんでした。

原因

基本的に、アプリとフローのメタデータは同期する必要があります。 フローに加えられた変更には、アプリ作成者がフローを使用してアプリを編集し、変更されたフローを削除または再追加する必要があります。

ソリューション アプリまたはフローの場合、アプリはソース環境でフローを正常に呼び出し、次のエラー メッセージでターゲット環境で失敗する可能性があります。

このサービスに対して構成されていない接続。

その理由は、ターゲット環境ではフローに変更が加えられる可能性がありますが、ソース環境には存在しないということです。

軽減策の手順

注:

ソースまたは開発環境で次の手順を実行し、ソリューションを更新してください。 ソリューションが更新されたら、すべてのターゲット環境または運用環境にインポートします。

  1. ソース環境で、アプリを編集します。 フローを削除してから、アプリに再追加します。 変更を保存して発行します。

  2. ターゲット環境で、アプリとフロー上のすべてのアンマネージド レイヤーを削除します。

  3. ソリューションをエクスポートし、ターゲット環境にインポートします。

    注:

    フローまたはアプリにはアンマネージド レイヤーは存在しません。これは、フローに関連する問題を引き起こす可能性があるためです。

フロー実行時のエラー コード "NotAllowedConnectionReferenceon"

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

エラーの例:

接続参照 '<接続名>' は、invoker によって指定されませんでした。

原因

このエラーは、アプリに、インストール時に SQL 接続が必要であることを指定するフロー メタデータがありますが、実際のフロー メタデータは異なっていることを意味します。

軽減策の手順

注:

ソースまたは開発環境で次の手順を実行し、ソリューションを更新してください。 ソリューションが更新されたら、すべてのターゲット環境または運用環境にインポートします。

軽減策オプション 1

  1. ソース環境で、アプリを編集します。 フローを削除してから、アプリに再追加します。 変更を保存して発行します。

  2. ターゲット環境で、アプリとフロー上のすべてのアンマネージド レイヤーを削除します。

  3. ソリューションをエクスポートし、ターゲット環境にインポートします。

    注:

    フローまたはアプリにはアンマネージド レイヤーは存在しません。これは、フローに関連する問題を引き起こす可能性があるためです。

軽減策オプション 2

  1. 接続を Embedded から Invoker に変更します。
  2. フロー ポータルに移動して、フロー設定を編集および更新します。
  3. フローの詳細ページの [ ユーザーのみ実行 ] セクションで、[編集] を選択 します
  4. フロー接続ソースを Invoker に更新するには、[ 実行専用ユーザーによって提供] を選択して保存します。
  5. フロー接続ソースを Embedded に更新するには、[ この接続を使用して 保存] を選択します。
  6. フローをトリガーして確認します。 "フロー ネットワークのインストール" 呼び出しが成功していることがわかります。

その他の症状

フローを更新すると、Power Apps からそのフローへの呼び出しが失敗し始めます。

  • Power App が更新されていないフローに新しい入力が追加された場合、フローは失敗し、次のようなエラー メッセージが表示されます。

    '1' 行目および列 '1900' でアクション 'Send_me_a_mobile_notification' 入力のテンプレート言語式を処理できません:'テンプレート言語式 'triggerBody()['Sendmeamobilenotification_Text'' はプロパティ 'Sendmeamobilenotification_Text' を選択できないため評価できません。 使用の詳細については、「」を参照してください https://aka.ms/logicexpressions

    Power App を更新せずにフローに新しい入力を追加するときのエラー メッセージのスクリーンショット。

  • フローの実行に必要な接続が変更された場合は、接続に関するエラーが表示されます。

    Power Apps では、次のようになります。

    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

    Flow の接続に関するエラー メッセージのスクリーンショット。

  • 応答出力が削除されると、Power Apps は値を空白として扱い、Power App は予期せず動作します。

原因

Power Apps からフローを呼び出すには、Power Apps でフローに必要な入力、フローに供給する接続、フローから返される出力を把握する必要があります。 Power Apps は、Power App の定義にこの情報を格納します。これにより、Power App のバージョンとその中で使用されるフローとの間にバインドが作成されます。 フローのこれら 3 つの側面のいずれかを変更すると、そのフローと統合された以前のバージョンの Power Apps がすべて壊れる可能性があります。 影響を受ける Power App を修正するか、これらのフローの変更のいずれかを使用するには、Power App を更新する必要があります。

Power Apps でフローを呼び出す機能を中断する可能性が最も高い変更の種類は次のとおりです。

  • Power Apps トークンに新しい Ask を追加する。

    Power Apps トークンに新しい Ask を追加するスクリーンショット。

  • 新しい接続の追加。 たとえば、以前は SharePoint コネクタのように使用されていなかったコネクタから新しいアクションを追加します。

    新しい接続を追加する例を示すスクリーンショット。

  • 既存の接続を変更する。 たとえば、既存の接続を新しい接続に変更するとします。

    Flow で既存の接続を変更するスクリーンショット。

  • Power Apps への応答アクションからの出力の削除。

    Power Apps への応答アクションから出力を削除するスクリーンショット。

入力または出力に対するその他の変更は、Power Apps と Flow の統合を損ないませんが、Power App を使用できるように更新する必要があります。

解決方法

ライブ Power App の変更

Power App が発行されたら、更新を行うために Power Apps で使用されるフローのコピーを作成することをお勧めします。 ライブ Power App によって参照されるフローに対する更新は、既存のユーザーを中断する可能性があります。 すべてのユーザーが Power App の新しい公開バージョンにアップグレードされるまで、既存のフローを削除またはオフにしないでください。

[名前を付けて保存] オプションを選択して、Power App で使用されるフローのコピーを作成するスクリーンショット。

新しいバージョンの Power App で、新しいフローを参照します。 Power App の新しいバージョンが発行されると、ユーザーは正しい入力、出力、接続で新しいフローの使用を開始します。 これにより、新しいバージョンの Power Apps のフロー更新が既存のバージョンのユーザーに影響を与えるのを防ぐことができます。

Power App 開発バージョンの変更

Power App の開発中に、Power App のライブ バージョンで使用されていないフローに変更を加えるのは簡単です。 発行されていないフローの入力、出力、または接続に変更を加えた後、[ フロー ] ウィンドウからフローを再選択します。

Power Apps でのフロー定義の更新のスクリーンショット。

正しい入力、出力、接続が Power App で使用されていることを検証する Power App のフローの定義が更新されます。

Power App のユーザーは、Power App が公開されるまで新しいフローの使用を開始しません。 そのため、Power App のライブ バージョンで使用されるまで、既存のフローを更新しても問題ありません。