【Power Automate】「ブロックエラー発生時」アクションのスコープについて

村瀬 俊昭

DX推進

■内容
 デスクトップ版Power Automate(以下、PAD)で作成したフロー内にエラー制御を組み込んでいる開発者の方は多いのではないかと思います。PADではエラー制御が比較的簡単に行える「ブロックエラー発生時」というアクションが用意されています。しかし、アクションの動きや仕組みを理解していないと、想定したエラー制御がなされず、フローで発生したエラー原因を特定することが難しくなる場合があります。今回は「ブロックエラー発生時」アクションを使用する際のポイントを紹介したいと思います。

■「ブロックエラー発生時」アクションについて
 「ブロックエラー発生時」アクションは、以下のようにブロックで囲んだ範囲内のアクションでエラーが発生した場合にエラーを認識し、パラメータに応じたエラー制御を処理してくれるアクションです。「フローコントロール」カテゴリの中に用意されています。

図1:「ブロックエラー発生時」アクション設定例

図2:「ブロックエラー発生」発生時アクション入力パラメータ

 エンジニア経験のある方だと要求された機能を開発するよりもエラー制御機能の開発の方がどれほど大変かわかるのではないかと思います。例えば、図1のようにMainフローからサブフローを呼び出すようなフローの場合だと、Mainフロー内のアクションを「ブロックエラー発生時」アクションで囲み、図2のパラメータにエラー発生時どのような動きをさせるか設定するだけでエラー制御の実装が完了します。サブフロー内のアクションでエラーが発生した場合でもエラーを認識してくれます。しかしMainフローで「ブロックエラー発生時」アクションを設定した場合、エラー取得のスコープが広すぎるため、サブフローで発生したエラー原因の特定が難しくなります。次にその一例を紹介します。

■フローに応じた適切なエラースコープの設定
まずは、以下のサンプル構成について考えてみましょう。この構成をもとに、エラー発生時の挙動を見ていきます。
「ブロックエラー発生時」アクションの動きは「次のアクションに移動」としています。

サンプル構成(図3~5)

図3:Mainフロー

図4:「ブロックエラー発生時」アクション設定

図5:サブフローA

問題 
サブフローA(図5)の 1行目 でエラーが発生した場合、次に実行されるのはどちらでしょうか?
①サブフローA内の2行目の「メッセージを表示」アクション
② Mainフロー内の3行目の「サブフローの実行」アクション

正解
正解は②となります。図4の設定では、Mainフロー内で「ブロックエラー発生時」アクションを設定しているため、2行目の「サブフローの実行」アクションでエラーが発生した場合、その次の3行目のアクションに移動するという動きを行うためです。このような実装を行った場合、サブフローAの2行目以降のアクションが実行されないままサブフローBが実行されることになり、サブフローA内に潜んでいる他のエラーを特定することができない可能性があります。回避策として、「ブロックエラー発生時」アクションのスコープをサブフローA内に設定することで、サブフローAでの詳細なエラー原因の特定が可能です。

■まとめ
 「ブロックエラー発生時」アクション使用の際のポイントとエラースコープについて紹介しました。エラー制御は想定されるエラーケースを検討する必要があり、実装が難しい機能だと思います。ただ、エラー制御を実装しておくことで迅速なエラー原因の特定につながり、円滑なフロー運用が可能になると思われます。現状運用しているフローでエラー制御を実装されたことがない方など、簡易的なものでもいいのでエラー制御実装にチャレンジしてみください。

2025年4月24日

著者紹介

村瀬 俊昭
DX推進支援部 ICT活用推進課

制作者の直近の記事

コラム一覧に戻る
お問い合わせ

PAGE TOP