PowerAutomateでワークフローを運用しているとしばしば問題となるエラー対応問題。
とくに組織的にワークフローを運用する場合、「いつのまにかエラーが起きていた」「エラー検知はしたが対応を失念してしまった」「エラー通知の実装がフローによりまちまちで一元管理できない」「エラー対応の担当を交代したいのだが個別フローの修正が必要」というもろもろの問題が生じます。
今日はその問題への対処の一例のご紹介です。
Problem
PowerAutomateには一応エラー通知の仕組みはあるし、個別ワークフローにエラー処理の仕組みを実装することもできる。しかし、いずれも信頼性や生産性の観点で満足できない:
- 通知メール (例えばの件名:
6 of your flow(s) have failed
)は通知タイミングがまちまち、重大性を判断しにくく、リマインドも期待できない(埋もれる・流れる)し、通知はあくまでもフロー全体が「失敗」となったときのもの。 - 個別フローに通知の仕組みをいれるのも、「何で送るのか」「どんな情報を送るのか」そもそも「誰宛て送るのか、それはいつも同じか」と一々自由度高く考えるのはとても手間。一元管理も難しい。
求められる(私が求めた)要件:
- エラーが起きたら数分以内に通知がほしい
- 一定期間のエラー発生をフロー表示名で集約したりせず、どのフローでいつエラーが起きたかを明らかにしてほしい
- エラー対応の期限を設定しリマインドもしてほしい
- フロー全体「失敗」でなくフローの一部「失敗」でも通知してほしい
- 個別フローに極力「何も考えず」通知を実装したい
- エラー対応担当者は必要に応じてワークフローを運用するチーム内で適宜交代できるようにしたい(フロー修正なしに)
Solution
要件に基づいて検討しまとめた仕様:
- ワークフロー運用のためにM365ユーザーを作成
- エラー検知したい対象のフローには 固定内容の Plannerタスク追加アクションを挿入(コピペで追加)
- 当該タスクの担当者として前述のM365ユーザーを設定
- 当該ユーザーで「自身がタスクの担当に割り当てられた」時に起動するワークフローを作成
- 当該ワークフローでエラー対応担当者をタスクの担当として割り当て
- エラー対応担当者の情報は ExcelテーブルやSharePointリストなど外部データソースから 取得する
図にするとこんな感じ:
エラー検知したい対象フローに追加したPlannerタスク追加アクション:
エラー対応担当割り当てフロー:
ここでは「タスクが自分に割り当てられるとき」でキャッチされたタスクをそっくりそのまま別の担当者に割り当ててしまっています。言うまでもないことですが、割り当てられたタスク内容に即して担当割り当て先を変えたり、割り当てそのものをスキップしたりと、柔軟なロジックを組むことも可能です。