Power Automate のサポート担当しーちゃんです。その手軽さと無償化が相まって、いまや多くの方がPower Automateを利用してフロー(ロボット)を作成・実行されているのではないでしょうか。おかげさまでお問い合わせの数も日々増えてきて、嬉しい悲鳴です!! Show とくにクラウドフロー(クラウドフローって何?という方は、『Power Automate クラウドフローとデスクトップフローの違いとは?』をご覧ください)は業務でありがちな作業を自動化するためのフローをあらかじめテンプレートとして用意しており、大変便利です。(ただし、いかにPower Automateが簡単かということは多くのメディアでご紹介されておりますので、、、)本ブログではそんな手軽なクラウドフローをもう一段便利に、そしてもう一歩先行く使い方をご紹介すべく、”例外処理”についてまとめました。Power Automate活用の次のステップとして本記事をお届けできれば幸いです。 もしかすると最初は少しハードルを感じるかもしれませんが、ご安心ください。本ブログでは例外処理の組み込み方を一つ一つスクショとコメントで丁寧に解説しました。ちょっとしたことですが、例外処理が組み込まれることでフローの効率が確実に上がります。皆さんもぜひお試しください。 目次1. 例外処理とは 1. 例外処理とはWebで「例外処理とは」と検索すると様々な解説がされていますが、今回ご紹介するのは想定外のアクションエラーが発生した時の処理です。例えば、以下のようなケースです。 ・フロー内で使用するExcelシートが存在しなかった。 ちなみにこの2つのエラーは、私が実際にフローを運用していた中で遭遇したものです。クラウドフローはRPAとは違いAPIを使用して処理されるため、基本的には安定した運用ができます。とは言え、もちろん想定外のエラーは発生します。例に挙げたExcelアクションのように、人間による編集が頻繁に加わるものなどは例外が発生しやすいケースと言えます。 フローの運用を安定させる方法はいろいろあると思いますが、その一つが例外処理です。 例外処理のメリットは、エラーが発生したタイミングでリアルタイムに検知できることです。残念ながら例外処理を組み込んでいないクラウドフローは、エラーが発生してもすぐにエラーの通知は来ません。 2. 例外処理をしていないと、どうなる?さて、ではクラウドフローを利用時に想定外のアクションエラーが発生したとき、どのようなことが起きるのでしょうか? たとえば・・・、 忘れた頃に届くエラー通知実は、全く通知が来ないわけではありません。忘れたころに突然メールが届きます。今まで私が把握できているのは以下の3つです。何かの条件によってメールが届くようですが、現状ではエラー通知の頻度や条件を設定することはできないようです。 上記の業務の例だと、「参加者リスト通知が来てない!」と営業さんからクレームが飛んできそうですね。。。 (エラーを知らせるメール1)(エラーを知らせるメール2)(エラーを知らせるメール3)エラーにすぐに気付くためには?例外処理を組まなくてもエラーに早く気づく方法はあります。 その① 定期的に実行履歴を確認するこれはちょっとしんどいですよね・・・。 その② フローの最後に自分宛てにメールなどの通知アクションを設定しておくこうすればエラーの場合は通知が飛んでこないので気づくことができます。 でも、正常に完了しているのに毎回いちいちメールが飛んでくるのも鬱陶しいし、フローが増えると把握しきれなくなります。 動作しているフローが数個しかない場合や、業務に関係ないフローであればこの方法でも問題ないでしょう。ただ、そうでない場合は例外処理を入れることをお勧めします。 3. Power Automate での例外処理の組み込み方では、フローに簡単な例外処理を組み込んでみましょう。(実行履歴確認画面のところで時間が一致しないところがありますが、ご容赦ください。) 今回はテストをシンプルに行うために、下図のような簡単なエクセルのテーブルを作成し、そのデータを3分おきに取得して処理をする、という架空のフロー(ロボット)を例に作成していきます。(3分おきの処理なんて現実ではなかなかありえませんが。) 通常のフローを組む(簡単なクラウドフローを組む)(2)トリガーは3分間隔で実行されるように設定しておきます。 (3分間隔で実行させるように設定)例外処理を組み込む(3)Excelの「表内に存在する行を一覧表示」アクションでエラーを発生した場合を想定した例外処理を設定します。Excelの「表内に存在する行を一覧表示」アクションの下の矢印にマウスカーソルを移動し、「+」ボタン、「並行分岐の追加」の順にクリックします。 (例外処理のためのアクションを設定)(4)このように分岐が追加されます。 (分岐が追加される)(5)右側のアクションを設定します。検索欄に「email」と入力し、検索結果から「Send me an email notification」をクリックします。 (send me an email notificationをクリック)(6)このアクションは、フローの所有者にメール通知するアクションです。メールのタイトルと本文を設定します。
(7)エラー時に実行するように条件を設定します。「…」をクリックし、「実行条件の構成」をクリックします。 (右上から実行条件の構成をクリック)(8)表示が下図のように変化します。この画面で「前のアクションがどういう状態だった時に実行するか」を設定できます。 (デフォルトの設定画面はこちら)(9)エラー時(成功時以外)に実行させたいので、次のように設定を変更します。 (チェックを編集)(10)設定が完了すると、右側のアクションに繋がる矢印がこのように赤い破線に変化します。フローを保存して下さい。 (実線矢印が赤い破線に変化)※左右の「実行条件の構成」画面を開くとこんな感じです。 (「実行条件の構成」を展開)(10)テストをしてみます。正常時の処理(処理1)が実行されています。当然、エラー通知のメールは届きません。 (無事、処理1が実行された)その後も予定通り、フローは3分間隔で正常に実行されていることが履歴からわかります。 (正常時の実行履歴はすべて”成功”のステータス)エラーを起こして例外処理を行うそれではここで、「表内に存在する行を一覧表示」アクションのテーブルにアクセスできないようにして、エラーを発生させてみましょう。 (11)「表内に存在する行を一覧表示」アクションで使用しているテーブルの設定を解除(範囲に変換)します。 (テーブル設定の解除方法が分からない場合はExcelブックの削除でもOK。) (よくあるExcel)(12)エラーが発生する状況を仕込んでから間もなく、エラーメールが届きます。 (エラー時に届くメール)(13)実行履歴をみると、(当然ですが)「失敗」になっています。 (実行履歴の画面)(14)実行履歴の日時リンクをクリックし、実行履歴の詳細を確認します。 (日時リンクをクリック)(15)Excelのアクションがエラーになっていて、エラー時の処理(メール通知)が実行されています。 (Excelのアクションがエラーとなる)(16)確認が終わったら、もうメールが届かないようフローをオフにしましょう。 (忘れずに!)先ほど例に挙げたイベント事務局の業務(イベント参加者人数通知)で考えた場合、もしフローが失敗したとしても、エラー通知をリアルタイムに受信することで営業担当からのクレームを受ける前にリカバリー対応し、円滑に業務を進めることができるようになります! 4. Power Automate 中上級者の方におすすめ情報上記では初歩的な例外処理の一例をハンズオン形式でご紹介しました。以下は自習派の中上級者におすすめのお役立ち情報です。 |無償!Microsoft 公式 オンライン講座Microsoftのラーニングサイトでは、自学習コンテンツが無償で用意されています。 Power Automate フローでのエラー処理のベスト プラクティス - Learn | Microsoft Docs |Power Automate のテンプレート実は例外処理のテンプレート「Try、Catch、Finally テンプレート」も提供されています。 (Power Automateの画面>テンプレートから検索)「Try」スコープの中に実行したいアクションを追加して使います。 (「Try、Catch、Finally テンプレート」の編集画面)| Power Automate のエンジニア向け!例外処理に関するドキュメントさらに高度な例外処理に関するドキュメントもあります。 いきなり高度な処理は難しいと思いますので、まずは初歩的なものから少しずつトライしてみてください。 5. まとめPower Automateに携わるようになってもうすぐ1年が経ちます。以前はBlue PrismなどのRPA製品でロボットを製作していたため、SaaSツールの勝手の違いになかなか馴染めませんでした。 挫折しそうな時期もありましたが、今ではPower Automateでのフロー製作を楽しいと思うようになれました。少し手の込んだことを実現しようとすると問題にぶち当たりますが、諦めずに取り組むことが大きな成長に繋がります。 まだまだ分からないことばかりですが、私と同じように最初の壁にぶつかっている方の助けになるような情報を一人でも多くのお客様にお伝えしたいと思っています。 ※イチからPower Automateを学びたい!という方はぜひ、下記弊社のデジタルレイバーアカデミーをご活用ください。 |