PowerAutomate

【Power Automate入門】エラー対処の方法~スコープを使った例外処理~

Power Automateでエラー発生時の対処方法

ミムチ

Power Automateフローが時々エラーで失敗するのですが、どうしたらよいのですかな…?

パワ実

フローが失敗したときは、実行履歴でエラーの詳細を確認しましょう。

この記事では、Power Automatフロー失敗時に、エラーの原因を確認する方法と、エラーが出る可能性のあるアクションについて、スコープを使った例外処理の実装方法についても解説します。

この記事でわかること
  1. Power Automateフロー失敗時の実行履歴の確認方法
  2. エラーの詳細、入力/出力の確認方法
  3. スコープを使った例外処理の実装方法

YouTube動画で見たい方は、こちらからどうぞ!

エラー発生時の対処方法の基本

Power Automateでエラー発生時の対処方法について簡単に解説します。

Power Automateのフロー実行が成功したか、失敗したかはフローの「実行履歴」から確認できます。

フローが失敗した場合、基本的には以下の手順で対処します。

フロー失敗時の対応
  1. 実行履歴から失敗したフローを開く
  2. エラー文や出力等から失敗の原因を確認する
  3. フローの修正をしてテスト実行で適切に動くことを確認する
パワ実

それでは実際に、Power Automate画面でエラー対処をしてみましょう!

具体的なエラー対処方法

1.Power Automateで対象のフローを選択し、実行履歴を見ると、「状況」欄に”成功”、”失敗”等が表示されています。

2.各フローの「開始」欄の日時を選択すると、フローの実行履歴をが開きます。

3.フローを実行結果が開き、一番上の赤いポップアップで、エラーの詳細を確認できます。

またここでは、実際にどのような処理が実行され、どのようなデータが入力/出力されたかも確認できます。

フローが失敗したとき、まずはエラーメッセージを確認しましょう。

エラーメッセージにはエラーの原因が書かれているので、これをみるだけで解決する場合も多いです。

ちなみにこのフローは、毎週SharePointリストアイテムをCSVにコピーするというテンプレートを使い、少し編集したフローになります。

4.まずはエラーがどのアクションで起きたかを確認します。

各アクションが成功したか、失敗したかは、以下のアイコンで見分けられます。

5.赤いビックリマーク(❗)のアクション(新しいフォルダーの作成)を選択すると、左側にアクションの実際の入力/出力データや、エラーメッセージも確認できます。

今回の場合、「ファイルまたはフォルダーの名前に使用できない文字が含まれています。名前を変更してください」と書かれています。

6.「未加工出力の表示」や「未加工入力の表示」から、そのアクションの入力/出力の詳細や、エラーメッセージの内容を確認できます。

実際の入力/出力が、どのようなデータかを確認するには、ここを見ましょう。

7.入力データの「parameters」で、フォルダーパスの入力値(parameters/path)を見ています。

パスは「Back/September 21:MealPlan」となっており、コロン(:)が怪しそうです。

8.ネット検索でSharePointの制限事項を確認すると、以下のような特殊文字はファイル名や、フォルダ名に使用できないことが分かります。

9.原因が分かったので、Power Automateの編集画面からフローを修正します。

新しいフォルダーの作成から、コロン(:)の部分を削除して、保存すればOKです。

10.再度テスト実行すると、今度はフローが成功しました!

このような感じで、フローのエラーの確認、修正を行っていきます。

エラーの通知について

Power Automateフローの実行が失敗した場合、フローの所有者へメールでの通知が届きますが、これは失敗直後には通知されないことが多いです。

メール通知でフローを実行が失敗したことが分かりますが、1週間分のフローの実行失敗がまとめて通知されるため、すぐに失敗に気づくことはできません。

このような問題を解消するため、フローを実行が失敗した際には最後にメールやTeams通知をする等の処理を入れると安心です。

スコープを使った例外処理の実装方法

フローでエラーが起こった場合にTeams通知する等、例外処理の実装方法について解説します。

スコープを使った例外処理の基本

例外処理の実装に便利なアクションが「スコープ」です。

スコープとは、複数のアクションをまとめることができるアクションです。

このスコープを3つ用意し、それぞれTry、Catch、Finallyという名前を付け、それぞれのスコープの中に、以下のようにアクション群を入れます。

パワ実

それでは実際にPower Automateで、例外処理の実装をしてみましょう!

スコープを使った例外処理の実装方法

先ほどのフローに、スコープを使った例外処理を実装していきます。

1.新しいアクションで、「コントロール」の「スコープ」を3つ追加します。

2.それぞれ名前を「スコープTry」、「スコープCatch」、「スコープFinally」に変更します。

Try-Catch-Finallyの使い分け
  • Try:エラーが起こる可能性のあるアクション
  • Catch:エラーが起こった際に実行するアクション
  • Finally:エラーの有無に関わらず実行されるアクション

3.「スコープCatch」を選択し、設定>Run afterで、「スコープTry」が「タイムアウトになりました」と「失敗しました」にチェックを入れます。

スコープTry(エラーになる可能性のあるアクション群)が失敗か、タイムアウトしたときに、スコープCatch内のアクションが実行されます。

4.同様の操作で「スコープFinally」の実行条件の構成も設定します。

FinallyはCatchが実行されたか否かにかかわらず、必ず実行するアクション群のため、全てにチェックを入れます。

これでTry、Catch、Finallyの実行条件の設定ができました。

5.「スコープTry」の中に、トリガー以外のアクションを全て入れます。

Tryの中に入れたアクションで、エラーが起こった時Catchが実行されます。

ミムチ

「スコープCatch」の中には、どのようなアクションを入れておけば良いですかな?

6.エラーが起こった場合、すぐに通知が欲しいので、今回はTeamsの「チャット又はチャネルでメッセージを投稿する」アクションを入れてみます。

7.一旦これで、フローにはあえてエラーを入れて動作確認してみます。

「スコープTry」内のアクションでエラーが起きます。

「スコープTry」内でエラーが起きた場合、「スコープCatch」が実行され、最後に「スコープFinally」も実行されます。

以下のように、エラーの通知がTeamsに届きました。

しかし実行履歴を見てみると、先ほどエラー通知が来たフローも成功になっていることがわかります。

パワ実

何故かというと、Catchの処理が無事終了すると、フローの結果が成功となってしまうためです。

ミムチ

これだとエラーが出たフローの判別がしにくいですな…もう少しフローの修正が必要ですかな?

フローの結果を失敗とするアクションとして、「コントロール」の「終了」というアクションがあります。

「終了」アクションを実行すると、フローが途中でも強制的に終了することができます。

またその際、フローの実行が「成功」か「失敗」か「取り消し済み」かを選ぶことができます。

ただしCatchの最後に実行すると、その時点でフローが終了し、Finallyが実行されなくなってしまうため、条件分岐を利用して、Finallyに終了アクションを追加します。

8.最初に「変数の初期化」アクションを追加し、変数Resultに、ブール値でtrueという値を入れます。

9.Catchの最後に、変数の設定アクションを追加し、変数「Result」を「false」に設定します。

このようにすることで、Tryの処理が成功した時は、変数「Result」が「true」、失敗した時は「false」になります。

10.あとはFinallyで「コントロール」の「条件」を追加して、変数「Result」が「false」の場合、「終了アクション」で「失敗」を設定します。

11.処理の成功、失敗に関わらずメールを通知したい場合は、以下のようにOutlookメール送信アクション等を追加します。

12.これで実装は完了なので、もう一度テストしてみます。

フローを実行し、処理が失敗した場合は、Teamsとメールに通知が来て、処理が成功した場合は、メールのみに通知が来ます。

今回は処理が成功したので、このようにメールの通知のみ届きました。

このような感じで、スコープを使ったTry、Catch、Finallyの例外処理が実装できます。

パワ実

スコープは、例外処理以外でも単純にアクションをまとめて、可読性を良くするという使い方もできるようなので、是非皆さんも活用してください!

最後に

この記事では、Power Automatフロー失敗時の対処方法と、スコープを使った例外処理の実装方法について解説しました。

Power Automateでエラーになったフローは、実行履歴から見ることができ、フローを開くとエラーの原因を確認することができます。

Power Automateのスコープを使うと、複数のアクションをまとめることで、例外処理の実装をすることができます。

パワ実

Power AutomateやRPAでは、エラーの対処や、例外処理の実装はとても重要なので、是非皆さんも活用してみてください!

ABOUT ME
パワ実
DX推進担当(IT部門) 2021年からPower Platform(Power BI、Power Apps、Power Automate)を勉強中。 Power Platformを使っていく中で、知りえた情報を発信している。 Youtube、Twitterでの情報発信もしています!

Power Platformのご依頼・ご相談について

Power Platformについてのご相談、お仕事のご依頼については、
こちらのお問い合わせページをご確認ください。