この記事のポイント
- Power Automateの標準機能では、フローが失敗してもすぐには通知されず、失敗したフローの一覧がメールで届くだけ
- エラー処理用の「スコープ」を追加し、実行条件(実行後の処理)を「失敗・スキップ・タイムアウト」にすると、エラー時だけ動く処理を作れる
- workflow()関数とトリガーの出力から、フロー名・起動時刻・実行履歴のURLを取得して通知文に入れる
- 通知はTeamsでもOutlookでもよい
- 最後に状態「失敗」の終了アクションを置くと、実行履歴でもエラーが「失敗」として残る
小刀稱 知哉ことね ともや
得意領域
Power PlatformやSharePointを中心に設計・開発・アドバイス・教育まで幅広く担当しています。内製化をご希望の場合はお気軽にお問い合わせください!
保有資格
Power Automateのエラー通知とは、フローが失敗したときに、その内容を管理者へメールやTeamsで知らせる仕組みです。標準機能では失敗したフローの一覧がまとめて届くだけなので、失敗したその場で気づくには、スコープと実行条件を使ったエラー処理を自分でフローに組み込む必要があります。本記事では、フロー名・起動時刻・実行URLを含む通知を送る手順を紹介します。
フローが増えてくると、「どのフローが、いつ、なぜ止まったのか」を把握する仕組みが欠かせなくなります。エラー通知を含めたフローの運用ルールづくりや、既存フローの見直しについて相談したい場合は、以下もご参照ください。
Power Automateは、コーディングの知識がなくともお手軽に業務の自動化を行うことができる非常に有用なツールです。
しかし、誰でも簡単に始めることができるといえど、そこにはお作法が存在します。
お作法を守らずに作成すると、「他の人がメンテナンスできない」や「修正時のコストが大きい」といった問題が発生します。
そこで、Power Automateに関する案件を数多く対応してきた弊社が、現在までに蓄積した「Power Automate作成時のアンチパターン・ベストプラクティス」について紹介します。
本記事を読んでいただくことで、Power Automateを扱う際の「やるべきこと・やってはいけないこと」を知り、より保守性の高いフローを作るコツを掴めるかと思います。
内容としては、既にPower Automateでフローを作成したことがある方に向けた記事です。
また、これからPower Automateを作成したい方も、事前に一読していただくことをお勧めします。
Power Automate初心者の方は、以下の記事も参考にしてください。
第7回目の今回は「エラー発生時、管理者へ通知する方法」という内容についてお伝えしていきます。
前提:デフォルトのエラー通知機能
Power Automateの標準機能でエラーは通知される?
最初に、Power Automateの標準にて提供されているエラー通知機能について紹介します。
標準機能では、フローがエラー終了した際、即時的に通知する機能はありません。
その代わり、エラーとなったフロー一覧を週に1回メールにてお知らせしてくれます。

ただし、実際の運用時は「失敗したタイミングで管理者へ通知してほしい」という要望が多いのではないでしょうか。
そこで今回は、フローがエラー終了したタイミングで、すぐに管理者へ通知する方法について紹介します。
エラー通知の実装方法
最初に、今回作成したフローの全体を以下に示します。

エラー処理として追加したのは、「スコープ:catch」アクションの部分です。
※注意※
今回、フローの末尾にエラー処理を行うスコープアクションを追加しました。 追加する場所に関しては、フローごとに異なるかと思いますので、それぞれ適切な場所に配置してください。
(私の経験則では、フローの末尾に追加しておけば、ほとんどのフローに対応できるのではないかと思っています。)
実装手順は、以下となります。
スコープアクションを作成し、実行条件の構成を設定
フローの起動時刻・フロー名称・フローの実行URLを取得
通知処理
終了アクションの追加
以下にて詳細を説明していきます。
スコープアクションを作成し、実行条件の構成を設定
最初に、エラー処理を記載するためのスコープアクションを追加します。
その後、スコープアクションの「実行条件の構成」を以下のように設定します。
本設定を行うと、「1つ前のアクションが失敗・スキップ・タイムアウトされたタイミングでスコープアクションが実行」されます。
(「スコープアクションより上にあるいずれかのアクションで、正常終了以外が発生した際にスコープアクションが実行される」と同様の意味です。)

スコープアクションを使った例外処理の概要や実行条件の構成に関しては、以下ブログも参考にしていただけると、理解がより深まるかと思います。
フローの起動時刻・フロー名称・フローの実行URLを取得
続いては、管理者へ通知する内容を取得します。(本ブログのメインの内容です。)
今回は以下情報を取得します。
1. フローの起動時間
フローの起動時間は、トリガーアクションの「’x-ms-user-timestamp’」に記載されていましたので、こちらを用います。
ただし、UTCでの表記でしたので「タイムゾーンの変換」アクションによりUTCをJSTに変換しています。

数式
triggerOutputs()['headers']['x-ms-user-timestamp']2. フロー名称
実行されたフローの名称を取得します。 これはworkflow()関数を用いると取得可能です。

数式
workflow()?['tags/flowDisplayName']3. フローの実行URL
実行URLとは、フローの履歴画面を表示するためのURLを指します。 本画面で、エラーが発生した箇所やエラー内容を見ることができます。

こちらもworkflow()関数を用いると取得可能です。

数式
concat('https://flow.microsoft.com/manage/environments/',workflow()?['tags']['environmentName'], '/flows/',workflow()?['name'], '/runs/', workflow()?['run']['name'])通知処理
管理者へ通知します。
今回はTeamsにて通知していますが、Outlookへの通知でも問題ありません。 前項にて取得した各値を通知文面に記載してください。

終了アクションの追加
最後に、終了アクションを追加します。

終了アクションを追加しないとどうなる?
フローの最後なのに、わざわざ終了アクションを追加する必要があるのか?と思った方はいらっしゃいますでしょうか。
確かに終了アクションがなくても、エラー通知は問題なく行われます。
しかし終了アクションがない場合、エラーが発生しても、「スコープ:catch」アクションが正常終了するため、フロー全体が正常終了となってしまいます。 そのため、フローの履歴一覧を見た際に、エラーが発生した・しないにかかわらず、すべてが正常終了のように見えてしまいます。 こちらを防ぐために、あえて状態を「失敗」に設定した終了アクションを追加しています。
上記手順で、エラー発生時管理者へ通知することができるようになりました!
さいごに
実際の運用時において「失敗したタイミングで管理者へ通知してほしい」という要望が多いのではないでしょうか。
今回ご紹介した内容も、とても有用な内容ですので、是非覚えていただければと思います。
今回のポイントをまとめると、次のとおりです。
Power Automateの標準機能では、フローが失敗してもすぐには通知されない
エラー処理用のスコープを追加し、実行条件を「失敗・スキップ・タイムアウト」にすると、エラーが起きたときだけ通知処理が動く
通知文には、フロー名(workflow()関数)・起動時刻(トリガーの出力をJSTに変換)・実行履歴のURLを入れると、原因をすぐ確認できる
最後に状態「失敗」の終了アクションを置くと、実行履歴でもエラーが「失敗」として残り、正常終了と見分けられる
エラー通知のような「動いている間は目立たないけれど、止まったときに効いてくる」仕組みは、作る人によって入れ方がばらばらになりがちです。Power Automateの設計標準づくりや、保守しやすいフローを社内で作り続けるための内製化支援に興味がある方は、こちらからサービス内容をご覧いただけます。
【このシリーズの過去回一覧】
-
Power Automateアクション名は変更すべき?メリット・デメリットと設計のポイント
フロー設計ベストプラクティス vol.1 -
Power Automateで変数を使って類似アクションを共通化する方法
フロー設計ベストプラクティス vol.2 -
Power Automateのトリガー動的コンテンツをそのまま使うのがNGな理由と正しい対処法
フロー設計ベストプラクティス vol.3 -
Power Automateでアクションの入れ子(ネスト)が危険な理由と回避策
フロー設計ベストプラクティス vol.4 -
Power AutomateのApply to eachで並列処理(コンカレンシー)時に変数がNGな理由と回避策
フロー設計ベストプラクティス vol.5 -
Power AutomateでExcelを操作するときの注意点:「共有するためにロックしています」エラーと同時実行の対策
フロー設計ベストプラクティス vol.6 -
Power Automateのエラー通知:失敗時に管理者へすぐ通知するスコープと終了アクションの設定方法
フロー設計ベストプラクティス vol.7
