この記事は Microsoft Power Automate Advent Calendar 2023 に参加しています。
主旨
Power Automate におけるエラー処理の手法のひとつについて解説します。
経緯
今回の内容は以前投稿した下記内容を発展させたものです。
以前解説したフローでは、フローの処理を下図のようにまとまった単位ごとに実装する方法について解説しました。
この時の解説ではエラー処理を同じフロー内に実装しているため冗長な構成になってしまい使いまわしができず、かつ、改修にも手間がかかるものでした。
使いまわしがしやすく、かつ、メンテナンスをしやすくするために、今回はエラー処理を子フローといて切り出しました。
フロー
親フロー(エラー処理の子フローを呼び出す側のフロー)
赤枠の2箇所がエラー処理の子フローを呼び出す部分です。子フローを呼び出す際に、エラーが発生したかどうかを判定したスコープの実行結果を入力情報として渡しています。
エラー処理をするためのフロー(呼び出される側のフロー)
今回の投稿のメイン部分です。
親フローから呼び出されたこのフローが、親フローから受け取った情報を読み取ってエラー情報を親フローに返します。
使用イメージ
今回のフローでは2つのスコープの処理をエラー処理の対象とします。下記の通り、ひとつめのスコープではエラーが発生する仕込みをします。
- スコープ「フェーズ1」 ・・・ エラーが発生するアクションを配置したスコープ
- スコープ「フェーズ2」 ・・・ エラーが発生するアクションを配置していないスコープ
フローを手動実行しました。各スコープの処理結果を見ていきましょう。
スコープ1ではスコープ内のアクションでエラーが発生しました。子フローのエラー処理によってそのエラー情報が取得されました。
後続の分岐アクション(分岐条件はエラーの有無)がTrue を通っているため、フローが期待通り「エラーが発生した」ことを認識できていることが分かります。
スコープ2ではアクションを何も配置していません。そのため、当然何もエラーは発生していません。この場合は子フローによるエラー処理は「何もエラーが発生していない」旨の情報を呼び出し元の親フローに返します。
そのため、後続の分岐アクションでも期待通り false を通っています。
フローの最後には、親フローでエラーが1回でも発生したかどうかを判定する分岐アクションを配置しています。スコープ1でエラーが発生したため、True のアクションが実行されました。
処理内容については解説編で説明します
このエラー処理の内容については解説編で説明します。サンプルの親フローと子フローも公開予定です。
今回は以上です。
追記:解説編を投稿しました。