技術情報ブログ
Power Platform
2024.11.06

Power Automateのベストプラクティス・アンチパターン(7)【エラー発生時、管理者へ通知する方法】

Power Automateのベストプラクティス・アンチパターン(7)【エラー発生時、管理者へ通知する方法】
小刀稱知哉

こんにちは。アーティサン株式会社の小刀稱(ことね)です。

Power Automateは、コーディングの知識がなくともお手軽に業務の自動化を行うことができる非常に有用なツールです。

しかし、誰でも簡単に始めることができるといえど、そこにはお作法が存在します。

お作法を守らずに作成すると、「他の人がメンテナンスできない」や「修正時のコストが大きい」といった問題が発生します。

そこで、Power Automateに関する案件を数多く対応してきた弊社が、現在までに蓄積した「Power Automate作成時のアンチパターン・ベストプラクティス」について紹介します。

本記事を読んでいただくことで、Power Automateを扱う際の「やるべきこと・やってはいけないこと」を知り、より保守性の高いフローを作るコツを掴めるかと思います。

内容としては、既にPower Automateでフローを作成したことがある方に向けた記事です。
また、これからPower Automateを作成したい方も、事前に一読していただくことをお勧めします。

Power Automate初心者の方は、以下の記事も参考にしてください。

第7回目の今回は「エラー発生時、管理者へ通知する方法」という内容についてお伝えしていきます。

前提:デフォルトのエラー通知機能

最初に、Power Automateの標準にて提供されているエラー通知機能について紹介します。

標準機能では、フローがエラー終了した際、即時的に通知する機能はありません。
その代わり、エラーとなったフロー一覧を週に1回メールにてお知らせしてくれます。

ただし、実際の運用時は「失敗したタイミングで管理者へ通知してほしい」という要望が多いのではないでしょうか。

そこで今回は、フローがエラー終了したタイミングで、すぐに管理者へ通知する方法について紹介します。

 

エラー通知の実装方法

最初に、今回作成したフローの全体を以下に示します。

エラー処理として追加したのは、「スコープ:catch」アクションの部分です。

    ※注意※

    今回、フローの末尾にエラー処理を行うスコープアクションを追加しました。 追加する場所に関しては、フローごとに異なるかと思いますので、それぞれ適切な場所に配置してください。

    (私の経験則では、フローの末尾に追加しておけば、ほとんどのフローに対応できるのではないかと思っています。)

実装手順は、以下となります。

  1. スコープアクションを作成し、実行条件の構成を設定
  2. フローの起動時刻・フロー名称・フローの実行URLを取得
  3. 通知処理
  4. 終了アクションの追加

以下にて詳細を説明していきます。

 

スコープアクションを作成し、実行条件の構成を設定

最初に、エラー処理を記載するためのスコープアクションを追加します。

その後、スコープアクションの「実行条件の構成」を以下のように設定します。

本設定を行うと、「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 Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当:小刀稱知哉

小刀稱知哉

大分県出身(温泉大好き)、現在は東京都在住

1990年生まれ

30才でメーカーの技術営業からIT業界にジョブチェンジ!!!

趣味は読書

主にMicrosoftのローコード(SharePoint・Power Platform)に関するに関する営業活動や設計、開発などを担当しております!

持ってる資格はPL-200/PL-300/PL-400/PL-600/MS-700/AZ-104/AZ-305/SC-200

シェアする
記事カテゴリ
最新記事
2024.12.04

【2024年12月更新】Power Automate 初心者 ~ 中級者 向けロードマップ

2024.11.20

【小ネタ】Power Automate×SharePoint:ファイルやフォルダを削除する方法(ゴミ箱・完全削除)

2024.11.06

Power Automateのベストプラクティス・アンチパターン(7)【エラー発生時、管理者へ通知する方法】

2024.10.23

【内製化支援ツール】Power Platform Advisor の紹介

2024.10.09

非エンジニア【(元)自治体職員】が自治体のDX推進リーダーに任命されたつもりで、Power Platformの活用を考えてみた

モデル駆動型アプリPower AppsPower PlatformSharePointExcelPower AutomateC#attributevalidationローコードAngularAccessInfoPathMatTableAngular Materialデータ構造SortByColumns関数TypeScriptHTMLEF CoreマイグレーションFramework CoreAttribute directivesO/Rマッパーazure sql databaseCase式HTTP RequestCSSxUnit.Net Core 3.1VSCode.Net Core Test ExplorerDataverse for Teamsitem関数Google MapsMarker ClustererRANK()関数Dynamics 365 SalesMicrosoft TranslatorマーカークラスタリングライブラリtailwindcssマルチテナントドロップダウンメニューBreakpointObserverメディアクエリスマホPCレスポンシブ入門初心者中級者キャンバスアプリDatePickerDropdownviewビューアクセス制限承認リマインドSetForAllUpdateContextロードマップ技術It情報技術メッセージIDメールfirst()関数nest入れ子動的リストcollectionコレクション複数の添付ファイル承認フローformエクスポートインポートカスタマイズcomponentダイアログコンポーネントdialogTips新機能変数検索Microsoft 365グループセキュリティグループ送信元メールの送信差出人インスタントクラウドフロー自動化したクラウドフロー委任VBAエラーエクセルerror復元restorePower BI個人列ユーザー列SharePoint Onlineリスト非表示アプリ[市民開発者構築自動化したクラウド フローフローの種類インスタント クラウド フロースケジュール済みクラウド フローレスポンシブ レイアウトresponsive layoutデータ行の制限引き継ぎ退職所有者を変更異動LoopMicrosoftdesignJSONデザイン運用選択肢列参照列ChatGPTOpenAIオープンAIチャットGPTgalleryギャラリースクロールコンテナショートカットキーshortcut keyconcat関数文字制限フロー実行開発環境環境本番環境ライセンス環境構築手順pipelineCI/CDパイプラインDevOpsMicrosoft 365簡易在庫管理時間外通知ファイルフィルター クエリドキュメント ライブラリfilter querysortソートmultiple item複数項目シェアポイント便利機能カレンダーCalendarTeamsローコード開発非エンジニア体験談勉強内製化市民開発管理ガバナンスerror notificationエラー通知削除フォルダゴミ箱完全削除
PageTop
ページトップに戻る