Power Automate のエラーの監視・通知とエラーハンドリングの方法

向井です。
本記事ではPower Automate のエラーの監視・通知機能と、フロー内でエラーハンドリングする方法をご紹介します。

#1. エラーの監視
Power Platform 管理センターから Power Automateの監視が可能です。
その中で**どのフローでいつエラーが発生したか**確認できます。

##確認の手順
###①Power Platform管理センターにアクセスする

Power Automateの画面からだと下の画像のように歯車マーク＞管理センターでアクセス可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/a9dbf1c0-2bfe-6079-f973-8f06ace98977.png)


###②該当の環境を選択する

該当の環境の名前をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/19e9f733-775a-b4ad-047f-bf78dc72d18e.png)


###③Power Automate の分析画面に移動する

下の画像のように、分析＞Power Automate をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/bade139d-a266-bdfc-f0e1-cf5b33148d39.png)


###④エラーの分析結果を表示する

③の時点では下の画像のように、**Power Automate をいつどのくらい実行し、結果はどうだったのか**が表示されています。

エラーをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/df5847dd-ff7b-463f-7168-7a05325942ab.png)


下の画像のように過去28日間のエラーが表示されます。
「フィルターの変更」から表示させる期間を変更することもできます。
また、「デスクトップフロー」をクリックすることで、Power Automate Desktop のエラーも確認することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/57ac44c5-4e60-6f9a-b9bd-401783466296.png)

※ロールによって表示できるレポートが異なります。
　環境管理者 ― 管理者がアクセスできる環境のレポートを表示できます。
　Power Platform 管理者 – すべての環境のレポートを表示できます。
　Dynamics 365 管理者 – すべての環境のレポートを表示できます。
　Dynamics 365 グローバル管理者 ― すべての環境のレポートを表示できます。


#2. エラーの監視（デフォルト）
フローの所有者には週１回メールでエラーの通知が届きます。

フロー名をクリックすると、そのフローの実行結果のページが開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/71f4c455-2fd5-8f48-6278-317c621d70ba.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/bff670a4-0157-8904-9dc3-e5479dbe8e77.png)

この通知は**フローの所有者宛に週１回**送られます。
**送り先や頻度を変更することはできません。
フロー所有者以外に、エラーが発生した都度通知を送るには次項の方法を試してください。**


#3. エラーハンドリング
Power Automate では、アクションに実行条件を設定することが可能です。

フローのアクションの右にある…から「実行条件の構成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/6e02afa3-4556-2caf-3116-5eb6ba485116.png)

初期設定では「に成功しました」にチェックが入っています。
ここを**「に失敗しました」にチェックを変更することで、前のアクションが失敗したときにこのアクションを実行するように設定できます。**

下の画像では、ひとつ前のアクションである「IDで行を取得する」が成功した場合は左のアクションを、失敗した場合は右のアクションを実行するように設定しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/991f61fd-0eb3-9432-5bfa-b8899b396f6d.png)

ちなみに、「がスキップされます」は2つ前のアクションが失敗したときに、1つ前のアクション（2つ前のアクションが成功したときのみに実行される）がスキップされる設定です。


#4. Try, Catch, Finally テンプレート
前項の仕組みを利用した[Try, Catch, Finallyテンプレート](https://japan.flow.microsoft.com/ja-jp/galleries/public/templates/e8e028c6df7b4eb786abdf510e4f1da3/try%E3%80%81catch%E3%80%81finally-%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88/)も用意されています。

このテンプレートは「スコープ」という複数のアクションを1つにまとめる仕組みと前項で紹介した実行条件の構成を合わせることで、実際に実行したいアクションと、エラー時に実行したいアクションをわかりやすく設定できるテンプレートとなっています。

右のアクションにフローが失敗したときに通知をできるようなアクション(Teamsの投稿、メールの送信など)を設定することで、フローが失敗するたびに任意の人に通知を送ることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/bb208626-5096-66ca-530e-e6d9ffe0eb5d.png)

各スコープの中にはそれぞれ複数のアクションを入れることができます。
まず、「Try」に「実行したいアクション」を入れます。
次に「Catch」に「Tryに入れたアクションが失敗したときに実行してほしいアクション」を入れます。
最後に「Finally」に「Tryにいれたアクションが成功、失敗にかかわらずに実行してほしいアクション」を入れます。