みなさんこんにちは。
Power AutomateとPower Appsを連携させたいという時にこんなエラーに遭遇したことはありませんか?
‘The schema definition for action with status code ‘200’ is not valid. The schema definitions for actions with same status code must match.’
今回はこちらのエラーについて解説していきたいと思います。
解説は入社2年目H.S.が担当します。普段はPower Platform全般とAI関連の業務を担当しています。どうぞよろしくお願いいたします。
どんな時に発生する?
まずどんな時にこのエラーが発生するのかについて説明します。
このエラーはPower Automateで複数の[Power AppsまたはFlowに応答する]アクションを使用したときに発生する可能性があります。
例えば、条件アクションやスイッチアクションでフローを分岐させたいときに発生する可能性があります。
私の場合はAzure OpenAIとキャンバスアプリを連携させるための以下フローを作製中に発生しました。(全体的にアクション名を変えていない、お作法的によろしくないフローですが、温かい目で見てください…)
原因
原因はずばり、”出力フォーマットの違い”です。
[Power AppsまたはFlowに応答する]アクションは、基本的にフローからキャンバスアプリに値を渡す、返すためのアクションです。
このアクションは出力フォーマットをフロー作成者が決めます。
出力する変数数であったり、変数の種類、変数の名前をフロー作成時に決める必要があります。
複数[Power AppsまたはFlowに応答する]アクションがある場合で、この設定が各アクションで異なる場合にエラーが発生します。
まとめると発生条件は
・複数の[Power AppsまたはFlowに応答する]アクションがある
かつ以下を1つでも満たす場合となります。
・出力する変数の数が異なる
・出力する変数の種類が異なる
・出力する変数名が異なる
今回エラーとなったフローのアクションを展開してみると、
どちらも2つのテキスト値をキャンバスアプリに渡していますが、変数名(contentやtype)が2つの間で異なっていることが分かります。
エラー対応
対応としてまずはフォーマットを揃えることが必須です。
今回のエラーとなっているフローでは、変数を2つに絞るか、どちらのアクションも3つ変数を出力するようにするかです。
これだけでフローのエラーを修正することができます。
ただ、もともと作成したかったフローの趣旨と異なるよ!という人もいるかと思います。
そんな人はフロー側のフォーマットはとりあえず統一してしまって、キャンバスアプリ側で調整を行いましょう。
元々必要なかった変数はとりあえず値をnullにしてしまうのがいいかと思います。
アプリに渡した値の種類・用途にもよると思いますが、キャンバスアプリ内でもif関数を使用することで条件分岐が可能な場合が多いです。
そこでnullかどうか等で条件分岐を行って、キャンバスアプリ内の変数やコレクションに格納しましょう。
そのままフローから受け取った変数を使用するとしても、条件分岐をしてしまえば色の変更や表示非表示の変更が可能ですので、そのあたりは要件に合わせて調整していただければと思います。
最後に
今回は[Power AppsまたはFlowに応答する]で発生するエラーについて解説しました。
エラー文を検索するとぱっと見で英語の記事しかなさそうなので、取り上げてみました。Power Platformはネットの記事が豊富で調べやすいのですが、英語の記事も多くて敬遠してしまう人もいるのではないかと思います。
少しでも今回の記事が閲覧していただいた方の助けとなれば幸いです。
ちなみに私が作成したソリューションは最終的に条件分岐が必要なくなったので、実は今回のキャプチャのフローも必要なくなってしまったんですよね…。作成していたソリューションはDataverseとAzure OpenAIを、キャンバスアプリをフロントエンドとしてPower Automateで接続するようなものなのですが、次回にでも紹介できればなと思います。
弊社ではPower Platform、Azure OpenAIの導入支援サービスや構築も行っていますので、気になった方はお問い合わせフォームよりご連絡ください。
最後に本記事を閲覧いただきありがとうございました!
余談
私はIT系の専門の出身ではないのですが、今回初めてブログ記事の作成を行いました。
技術的な解説でなおかつお仕事となるとどうしてもお硬くなってしまいますね。普段調べもので参考にさせていただいている、世の技術系ブログを書いている方々は、分かりやすいしユーモアがあってほんとにすごいなと思いました。
記事を作成するためのツールの使い方も理解していない部分が多いので、今後の記事作成とともに、伝え方だったりツールの使い方というのを私自身学んでいければと思います。