PowerAutomateを使ってぼちぼちと業務を自動化しています。
いろいろな処理を自動化しているうちに、「エラー処理をしたい」という壁にぶつかるでしょう。
まさに私がその状態でした。
PowerAutomateでのエラー処理にはちょっとしたコツがあるので、メモを残しておきます。
お問い合わせ内容
Power Automateでメールアドレスからユーザーの表示名を取得してるんだけど。
社外のメールアドレスだとエラーが発生して、フローがうまく動かないんよ。
エラー処理の仕方をざっくり教えてくれない?
確認いたします。
(ノーモア問い合わせ! ノーコードツールめー!)
今回、利用者がやりたかった処理
メールが届いたよ。
以下のような処理をPowerAutomateで行おうとしていました。
1.共有メールボックスにメールを受信したら動作する。
2.メールの差出人と件名を取得する。
3.メールの差出人は表示名に変換する、変換できなければメールアドレスのままとする。
4.Teamsチャットに差出人と件名を添えてメールが届いたことを投稿する。
↓メールが来たら自動的にこのようなTeams投稿を自動的にさせたいそうです。
≪表示名が取得できた場合≫ ユーザの表示名を表示
≪表示名が取得できなかった場合≫ メールアドレスを表示
ポイントはメールの差出人をメールアドレスから表示名に変換する部分です。
変換できない場合はエラーになり、上手く処理が動きません。
問い合わせの詳細
メールアドレスからユーザの表示名を取得するのは、「ユーザープロフィールの取得」というアクションを使うのですが、M365のユーザ以外のメールアドレスからは値を取得できずエラーになります。
そして、その後の処理はキャンセルされてしまいます。
エラーが発生しても、エラーをうまくハンドリングして後続の処理を行いたいということです。
解決策:アクションの実行条件の構成と並列処理を組み合わせる
以外にも情報が少なかったのですが、アクションの実行条件の構成と並列処理をくみあわせることで、うまいことエラー処理ができます。
以下に実際にどのようにエラー処理をするか説明します。
エラーが起こるアクションの後に並列処理でアクションを増やす
エラーが起こるアクション「ユーザープロフィールの取得」の後に、並列処理でアクションを2つに増やします。
・片方が、エラー発生しない時のアクション
・もう片方が、エラー発生時のアクション。
並列処理のアクションに実行条件の構成を加える
アクションには「…」マークから、「実行条件の構成」というものを設定できます。
これにより、ひとつ前のアクションが成功した場合(成功)と失敗した場合(失敗、スキップ、タイムアウト)で処理の実行内容を分けることができます。
並列アクションを結合したアクションにも実行条件の構成を忘れずに
最後に忘れず行う必要があるのが、並列アクションを結合したアクションにも実行条件の構成が必要な点です。
下図のとおり、すべてチェックをつける必要があります。
エラー処理で並列アクションを設定した場合、片方のアクションは実行されず「スキップ」されるはずです。
そうなると、その後の結合アクションで実行条件を「成功」のみにしているとアクションが動かないのです。そのため、どのような条件であろうとアクションを実行させるために実行条件にすべてのチェックを入れておく必要があります。
まとめ
1.Power Automateでエラー処理を行うには、「実行条件の構成」と「並列処理」を組み合わせます。
2.並列処理を行った後の結合アクションにも「実行条件の構成」を行い、どのようなケースでもアクションが実行されるようにする必要があります。
エラー処理の方法を覚えて、良いPowerAutomateライフを!
コメント