Power Automateの例外処理は「スコープ」で行う

予期できるエラー(Blankへの参照など)は事前チェックで防ぐべきだけど、どうしても予期せぬエラーは発生してしまう。

そんなエラーの発生を受け取るために、Power Automateでは「スコープ」を使用するみたい。

2021/3/26追記:
try-catch-finallyのテンプレートがいつのまにかできてるw
Microsoft Power Automate
スポンサーリンク

スコープとは

アクションのブロックをカプセル化し、アクション内部の最後のターミナル状態 (成功、失敗、キャンセル) を継承します。

とあるようにスコープはフローを1つのまとまりとして見せてくれる。

フローがかなり見やすくなるのでとても便利だが、スコープは例外の受け取りにも使用できる。

例外処理の書き方

一言で表すと
「エラーが発生しそうな処理をスコープで囲い、後ろにエラー発生時の分岐を追加する」
だ。

エラーが発生しそうな処理をスコープで囲う


こんな感じで処理をスコープで囲う。
もちろん2つ以上の処理を入れることも可能で、意味を持った単位で処理をくくるとフローが見やすくなるのでおすすめ。

スコープの下に並列で失敗した際の処理を追加する

PowerAutomate 分岐処理をいれる
スコープ内の処理が成功したときの処理と、失敗したときの処理を並列で追加する。

実行条件の構成


失敗したときの処理の設定を開いて、「実行条件の構成」を選ぶ。

実行条件の成功を外し、失敗を設定する


実行条件の成功を外し失敗を設定することで、スコープ内の処理が失敗したときにこの処理が呼ばれるようになる。
今回はスキップされた(フローのさらに上のほうでエラーが発生した)ときや、タイムアウトのときも呼ばれるようにしている。

フローを終了する


フローを終了し、必要に応じてエラーを呼び出し元に知らせる。
これで呼び出し側でどんなエラーが発生したか予測できるようになる。

まとめ

ちゃちゃっと作れるのがPower Automateとかの利点だから例外処理を書くことは少ないかもしれないけど、こんな方法もあるって知っておくのも大事かなと。もちろんエラーが起きないのがベスト。

コメント

タイトルとURLをコピーしました