動画で2回に分けて解説しています。
1つ目はフローからの応答をtrue/falseで取得する方法
2つ目はフローからエラーメッセージを取得して表示する方法PowerAutomate側のフローの構成
PowerAutomate側でデータを受け取ってフローが実行されますが、この際にフロー内でエラーが発生してもそれをPowerAppsアプリに送らないと、アプリ側からは実行の成否が分かりません。
エラーが発生する可能性があるアクションの監視
そのためフロー内でエラーが発生すると考えられるアクションを、スコープアクションの中に入れて監視します。
スコープは、アクションの追加で「コントロール」の中にあります。
今回の例では「イベントの追加」アクションを「TRY」と名前をつけた「スコープ」の中に入れています。
エラーが発生した場合の処理
「TRY」の下に「スコープ」アクションをもう一つ追加し、「Catch」と名前を付けます。
「Catch」の「•••」から「実行条件の構成」を選択します。
初めは「TRY」が成功した時となっているので、「失敗、スキップ、タイムアウト」した時にチェックを入れて「OK」します。
これで「TRY」内のアクションが成功しなかった時に「Catch」の中のアクションが実行されるようになりました。
エラーメッセージの取得
「Catch」の中には、「データ操作」の「選択」と「変数」の「変数の設定」を入れています。
「選択」アクションで「TRY」の実行結果からメッセージを取得し、変数の設定で「レスポンス」に「選択」の出力を入れています。
「選択」アクションの「開始」には「式」で以下のように記述。
result('TRY')
「選択」アクションのマップは右側のアイコンで「テキストモード」にして、「式」で以下のように記述します。
item()['output/body/message']
応答アクションに変数を格納
次に「変数の設定」アクションで変数「レスポンス」に「動的な値」から「選択」「出力」を設定します。
これでTRYのエラーメッセージが変数「レスポンス」に入ります。
最後に「アクションの追加」から「Power Apps」「PowerAppsまたはフローへの応答」アクションを追加します。
「PowerAppsまたはフローへの応答」アクション(英語の記載になっていますが)を開き、「出力追加」から「テキスト」を選択します。
「テキスト」以外もありますが、テキスト形式が一番安定して使えると思います。
タイトルは、「response」として、「値」には「動的な値」から、変数「レスポンス」を入れます。
PowerAppsアプリでフローからの応答を取得
PowerApps側のフローを実行するボタン等のOnSelectプロパティに以下のように記述します。
Set(_res,
フロー名.Run("フローに渡す文字列","フローに渡す文字列").response
)
末尾の「.response」はフローの応答アクションで設定したタイトルを記述することで、フローからの応答が得られます。それをSet関数で変数「_res」に格納しています。
応答は先ほど設定した通りテキスト形式ですので、テキストインプットボックスで表示すれば、エラーの内容を選択してコピーすることが可能ですので、調べたり共有したり出来るのでおすすめです。
エラーメッセージは英語で返されるので、ボタンのOnSelectプロパティに以下を設定
Launch("https://translate.google.com/?hl=ja&sl=en&tl=ja&text="&TextInput1.Text)
TextInput1がエラーメッセージを表示するテキストインプットボックスコントロールです。
上記のように設定することで、エラーメッセージをそのままGoogle翻訳で翻訳してもらうことができます。