【 Power Automate Tips】クラウドフロー に “例外処理”を組み込む

Power Automate のサポート担当しーちゃんです。その手軽さと無償化が相まって、いまや多くの方がPower Automateを利用してフロー(ロボット)を作成・実行されているのではないでしょうか。おかげさまでお問い合わせの数も日々増えてきて、嬉しい悲鳴です!!

とくにクラウドフロー(クラウドフローって何?という方は、『Power Automate クラウドフローとデスクトップフローの違いとは?』をご覧ください)は業務でありがちな作業を自動化するためのフローをあらかじめテンプレートとして用意しており、大変便利です。(ただし、いかにPower Automateが簡単かということは多くのメディアでご紹介されておりますので、、、)本ブログではそんな手軽なクラウドフローをもう一段便利に、そしてもう一歩先行く使い方をご紹介すべく、”例外処理”についてまとめました。Power Automate活用の次のステップとして本記事をお届けできれば幸いです。

もしかすると最初は少しハードルを感じるかもしれませんが、ご安心ください。本ブログでは例外処理の組み込み方を一つ一つスクショとコメントで丁寧に解説しました。ちょっとしたことですが、例外処理が組み込まれることでフローの効率が確実に上がります。皆さんもぜひお試しください。

目次

1. 例外処理とは
2. 例外処理をしていないと、どうなる?
3. Power Automate での例外処理の組み込み方
4. Power Automate 中上級者の方におすすめ情報(難易度:★★☆)
5. まとめ

1. 例外処理とは

Webで「例外処理とは」と検索すると様々な解説がされていますが、今回ご紹介するのは想定外のアクションエラーが発生した時の処理です。例えば、以下のようなケースです。

・フロー内で使用するExcelシートが存在しなかった。
・フロー内で使用するExcelシートの列が非表示になっていた。

ちなみにこの2つのエラーは、私が実際にフローを運用していた中で遭遇したものです。クラウドフローはRPAとは違いAPIを使用して処理されるため、基本的には安定した運用ができます。とは言え、もちろん想定外のエラーは発生します。例に挙げたExcelアクションのように、人間による編集が頻繁に加わるものなどは例外が発生しやすいケースと言えます。

フローの運用を安定させる方法はいろいろあると思いますが、その一つが例外処理です。

例外処理のメリットは、エラーが発生したタイミングでリアルタイムに検知できることです。残念ながら例外処理を組み込んでいないクラウドフローは、エラーが発生してもすぐにエラーの通知は来ません。

2. 例外処理をしていないと、どうなる?

さて、ではクラウドフローを利用時に想定外のアクションエラーが発生したとき、どのようなことが起きるのでしょうか?

たとえば・・・、
あなたがイベント事務局で、毎日決まった時間にイベント参加者リストを集計し、担当営業に参加人数を連携するという業務を自動化するため、フローを組んだとします。もしそこで、気づかないうちにエラーが発生していたらどうなるでしょうか。

忘れた頃に届くエラー通知

実は、全く通知が来ないわけではありません。忘れたころに突然メールが届きます。今まで私が把握できているのは以下の3つです。何かの条件によってメールが届くようですが、現状ではエラー通知の頻度や条件を設定することはできないようです。

上記の業務の例だと、「参加者リスト通知が来てない!」と営業さんからクレームが飛んできそうですね。。。

(エラーを知らせるメール1)
(エラーを知らせるメール2)
(エラーを知らせるメール3)

エラーにすぐに気付くためには

例外処理を組まなくてもエラーに早く気づく方法はあります。

その① 定期的に実行履歴を確認する

これはちょっとしんどいですよね・・・。

その② フローの最後に自分宛てにメールなどの通知アクションを設定しておく

こうすればエラーの場合は通知が飛んでこないので気づくことができます。

(最後にメール通知のアクションを設定)

でも、正常に完了しているのに毎回いちいちメールが飛んでくるのも鬱陶しいし、フローが増えると把握しきれなくなります。

動作しているフローが数個しかない場合や、業務に関係ないフローであればこの方法でも問題ないでしょう。ただ、そうでない場合は例外処理を入れることをお勧めします。

3. Power Automate での例外処理の組み込み方

では、フローに簡単な例外処理を組み込んでみましょう。(実行履歴確認画面のところで時間が一致しないところがありますが、ご容赦ください。)

今回はテストをシンプルに行うために、下図のような簡単なエクセルのテーブルを作成し、そのデータを3分おきに取得して処理をする、という架空のフロー(ロボット)を例に作成していきます。(3分おきの処理なんて現実ではなかなかありえませんが。)

(テストデータ.xlsxのテーブルからデータを読み取る)

通常のフローを組む

(1)まずは右図のような簡単なフローを作成します。

※注意:事前にExcelの「表内に存在する行を一覧表示」アクションで使用するためのテスト用ブックとテーブルを作成しておく必要があります。
(参照)Excel でテーブルを作成する (microsoft.com)

(簡単なクラウドフローを組む)

(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 のエンジニア向け!例外処理に関するドキュメント

さらに高度な例外処理に関するドキュメントもあります。
スコープ別にアクションをグループ化して実行する - Azure Logic Apps | Microsoft Docs

いきなり高度な処理は難しいと思いますので、まずは初歩的なものから少しずつトライしてみてください。

5. まとめ

Power Automateに携わるようになってもうすぐ1年が経ちます。以前はBlue PrismなどのRPA製品でロボットを製作していたため、SaaSツールの勝手の違いになかなか馴染めませんでした。

挫折しそうな時期もありましたが、今ではPower Automateでのフロー製作を楽しいと思うようになれました。少し手の込んだことを実現しようとすると問題にぶち当たりますが、諦めずに取り組むことが大きな成長に繋がります。

まだまだ分からないことばかりですが、私と同じように最初の壁にぶつかっている方の助けになるような情報を一人でも多くのお客様にお伝えしたいと思っています。

※イチからPower Automateを学びたい!という方はぜひ、下記弊社のデジタルレイバーアカデミーをご活用ください。

この記事をシェアする

前の記事

Power Automate Desktopで作成したフローの管理

次の記事

MS Power Automate で文字列の一部を編集してPlanner のタスクを作成…