はじめに
BizOptimars のいのうえです。
皆さんは、エラーが発生した場合を考慮してフローの作成をしていますでしょうか?
初めはなかなかそこまで考えるのは難しいとは思いますが、よりよいシステム開発につなげるためには必要です。
エラーハンドリングとは
エラーハンドリングとは、プログラムやシステムがエラー(問題や障害)に遭遇した際、それを適切に処理する方法のことです。主な要素は以下の 4 つになります。
- エラーの検出 : プログラムが正常に動作していないことを見つけること
- エラーの報告 : エラーが発生したことをユーザーや開発者に知らせること
- エラーの処理 : エラーが発生したときに、プログラムがクラッシュしないように対策を講じること
- エラーの記録 : エラーの詳細をログファイルに記録して、後で問題を解決するために役立てること
例えば、システムがクラッシュしたり、データが失われたり...
こういったことが起こらないようにしたいですよね!
エラーハンドリングを行うことで、ユーザーにとって使いやすく、信頼性の高いシステムを提供できます。
今回は、Power Automate のエラーハンドリングの方法について紹介いたします。
実行条件
以下手順で、各アクションの実行条件を設定することができます。
-
アクションが実行されるタイミングについてのチェックボックスが表示される
ここで、実行条件を設定することができます。
例えば以下画像の場合、「項目の作成」アクションが成功または失敗した際に「チャットまたはメッセージを投稿する」アクションが実行されます。
- 成功しました:前のアクションが成功した時に実行
- タイムアウトになりました:フロー自体のタイムアウト、またはアクションごとのタイムアウトに該当した場合実行
- スキップされます:前のアクションがスキップされたときに実行
- 失敗しました:前のアクションがエラーになったときに実行
実行したフローの情報を取得できる workflow 関数を使うと、
例えば、失敗した際の情報を取得して、メールで通知を行うことが可能です。
Wrokflow 関数についてはこちらをご覧ください。
Power Automate の Workflow 関数
スコープ
先ほどの実行条件の設定では、アクション単位でのエラー検知ですが、スコープを用いることで、フロー全体を監視することができます。
スコープは、以下手順で追加できます。
スコープには、複数のアクションを格納することができるアクションです。
スコープを使うことで、エラーが発生した場合の処理を明確に分けることができます。
以下のように、Try、Catch、Finally の 3 つのスコープを設定します。
Try:エラーが発生する可能性のあるアクションを含めます
Catch::Try スコープでエラーが発生した場合に実行されるアクションを含めます
Finally:エラーの有無にかかわらず、必ず実行されるアクションを含めます
おわりに
エラーハンドリングは、プログラムが予期しない状況に対しても安定して動作するために非常に重要です。最初は難しく感じるかもしれませんが、エラーは学びのチャンスです。失敗を恐れず、試行錯誤を楽しんでください!