
Power Automate のエラー処理 (例外処理) でエラーの内容を取得する方法です。
まず、エラーをテストするのに手っ取り早い方法とエラー内容の取得は以前に書きました。
rksoftware.hatenablog.com
try { } catch { } finally { } ぽいことを実現する方法も書きました。
rksoftware.hatenablog.com
エラー時にエラー時の状況が確認できる実行履歴詳細ページへのリンク URL を作る方法も書きました。
rksoftware.hatenablog.com
これらを組み合わせていい感じのエラー処理 (例外処理) を作ります。
■ 実行条件の設置
スコープを 3 つ並べて実行条件の構成を次のようにします。
実行条件の構成の開き方

構成の設定

■ エラーを起こすアクション
try { } に相当するエラーが起こるかもしれない処理を書くスコープ スコープ (try { } に相当) にエラーを起こすアクションを追加します。
エラーを起こすには次のような式を書くのが手っ取り早いです。
mod(1, 0)

実行すると期待通りエラーが起きてくれます。

■ エラー処理内でエラー内容の取得と実行履歴の URL を生成
スコープ_(try_{_}_に相当) はエラーが起こるかもしれない処理の名前です。皆さんの作っているフローに合わせて読み替えてください。式の中で書く名前は名前に含まれているスペースは _ に置き換わる点に注意してください。
エラー時に取得できると嬉しそうな各種情報は次の式で取得できます。
| 取得する情報 | 取得する式 |
|---|---|
| エラーの起きたアクションの名前 | result('スコープ_(try_{_}_に相当)')[0]?['name'] |
| エラーの概要 | result('スコープ_(try_{_}_に相当)')[0]?['error/code'] |
| エラーの内容 | result('スコープ_(try_{_}_に相当)')[0]?['error/message'] |
| フローの名前 | workflow()?['tags/flowDisplayName'] |
| フローの作られている環境の ID | workflow()['tags']['environmentName'] |
| フローの ID | workflow()['name'] |
| フローの実行 ID | workflow()['run/name'] |
また、これらの情報を使ってフローの詳細ページや実行履歴詳細ページの URL を生成することもできます。実行履歴詳細ページの URL がわかると詳細をすぐに確認できるのでエラー時の対処に非常に有用でしょう。
詳細ページの URL
https://make.powerautomate.com/manage/environments/@{workflow()['tags']['environmentName']}/flows/@{workflow()['name']}/details
実行履歴詳細ページの URL
https://make.powerautomate.com/manage/environments/@{workflow()['tags']['environmentName']}/flows/@{workflow()['name']}/runs/@{workflow()['run/name']}
これらの情報をメールなどで自分に送信するようにしておくととても良いと思います。
■ 実行結果
今回は画像で見やすいよう前述の情報を持った JSON 作って確認します。
スコープ (catch { } に相当) の中で JSON の解析 アクションにこんな設定をします。
{
"errorAction": "@{result('スコープ_(try_{_}_に相当)')[0]?['name']}",
"errorCode": "@{result('スコープ_(try_{_}_に相当)')[0]?['error/code']}",
"errorMessage": "@{result('スコープ_(try_{_}_に相当)')[0]?['error/message']}",
"フローの名前": "@{workflow()?['tags/flowDisplayName']}",
"フローの詳細画面の URL": "https://make.powerautomate.com/manage/environments/@{workflow()['tags']['environmentName']}/flows/@{workflow()['name']}/details",
"フローの実行履歴詳細の URL": "https://make.powerautomate.com/manage/environments/@{workflow()['tags']['environmentName']}/flows/@{workflow()['name']}/runs/@{workflow()['run/name']}"
}

実行
計画通り! エラーが発生して各種情報が取得できています。finally に相当するスコープも動作しています。

ちなみにこの縦長画像を作った技はこちらです。
URL を開いた結果
実行結果で得られた 2 つの URL を開いてみます。
詳細ページの URL

実行履歴詳細ページの URL

エラー時の情報としてかなりいいのではないでしょうか?
■ 簡単ですね
簡単ですね。