コラム - お役立ち情報

2024.11.22

【無料RPA】Power Automate Desktop(PAD)活用事例 備えあれば患いなし!フロー実行時のエラーには例外処理を!①

本シリーズでは、Power Automate Desktop※を活用して業務効率化に役立てる方法をご紹介しています。
今回は、フローの実行時に発生するエラーに対応する方法を解説していきます。
何の対策もしていない状態でエラーが発生すると、フローは作業の途中で止まってしまいます。編集中のファイルは保存されることなく終了してしまう上に、PADにはフローを途中から実行することが出来ないため、また最初からフローを実行することになってしまいます。このような状況に陥らないためにも、フロー作成時にはエラーへの対策をしていきましょう。

※Power Automate Desktop (PAD)とは?
MicrosoftがWindows10ユーザー向けに無償で提供しているPC自動化ツールです。
プログラミングなしでPCの操作を自動化できます。
本コラムでは当ツールの活用方法をご紹介しています。
https://powerautomate.microsoft.com/ja-jp/desktop/

目次

1.例外処理とは?
2.PADでの例外処理
3.例外処理の実施例

4.まとめ

1.例外処理とは?

PADでフローを作成する際、あらゆる状況を想定し、条件分岐などを用いて適切な処理を定義することが重要です。
しかし、どれだけ入念に準備を進めても、予期せぬエラーが発生する可能性は常に存在します。
例えば、ファイルが存在しない、データベースへの接続が失敗する、あるいはWebサービスがタイムアウトするなど、多くのシステムで例外が発生する可能性があります。
このような予期せぬエラーからフローを守り、安定稼働を実現するのが例外処理です。
例外処理は、エラー発生時の処理をあらかじめ定義しておくことで、エラーによるフローの強制終了を防ぎ、処理を継続したり、適切なエラー処理を実行したりすることを可能にします。

例外処理を導入することで、以下のようなメリットがあります。

・フローの安定性向上: エラー発生によるフローの停止を防ぎ、安定した処理を実現します。
・デバッグの容易さ: エラーが発生した際の情報を詳細に取得できるため、問題の特定と修正が容易になります。
・柔軟な対応: エラーの種類に応じて異なる処理を行うことができ、状況に応じた柔軟な対応が可能になります。
・ビジネスロジックの保護: 重要な処理が中断されることを防ぎ、ビジネスロジックの完全性を保護します。

次の章では、Power Automate Desktop における例外処理の実装方法について詳しく解説していきます。

2.PADでの例外処理

PADでは、「エラー発生時に実行」アクションを使って例外処理を実装します。
このアクションは、フロー実行中にエラーが発生した場合に、特定の処理を実行することを可能にする、いわば安全装置のような役割を果たします。
「エラー発生時に実行」アクションはフローデザイナのアクションカテゴリにはありません。
アクションのパラメーター設定ウインドウの左下の「エラー発生時」ボタンをクリックすることで使えます。

 

パラメーターを一つずつ解説していきます。
 

・再試行ポリシー
エラーが発生した際に、このアクションを再試行するかどうかを設定できます。
再試行する場合は、その回数と再試行までの間隔を設定します。

 

・すべてのエラー
このアクションで発生する全てのエラー発生時共通の設定が出来ます。
エラーが発生した場合、処理を終わる「スロー エラー」とフローを続行する「フロー実行を続行する」から選択できます。
デフォルトは「スロー エラー」が選択されています。
この他に、「新しいルール」をクリックすると、エラー発生時に独自の処理を追加することが出来ます。
出来ることは、「サブフローの実行」「変数の設定」です。
この機能を活用することで、ログの保存などさらに堅牢なフローの作成が可能になります。

 

・詳細
このアクションで発生する各エラーに対する設定が出来ます。
設定できる内容は「すべてのエラー」と同じです。
この機能を使うと、特定のエラーが発生したときだけ処理を設定できるので、より柔軟なフローを作成することが可能です。

 
次にエラー発生時の設定について解説していきます。
エラーが発生した場合、処理を終わる「スロー エラー」とフローを続行する「フロー実行を続行する」から選択できます。
 

・スロー エラー
デフォルトではコチラが選択されています。
スロー エラーとは、「緊急事態発生のサイン」を出すことです。
サインを出してその後の処理をストップします。
また、サインを受取ってエラー発生時専用の処理を実行することも可能です。これについては次回詳しく解説する予定です。

 

・フロー実行を続行する
その名の通り、エラーが発生してもフローを続行させます。
その際、選択肢が3つあります。
1.次のアクションに移動
2.アクションの繰り返し
3.ラベルに移動
それぞれの使い道は、
1.エラーを無視する
2.もう一度実行する
3.処理をスキップする
です。

順番に解説していきます。
 

1.次のアクションに移動
これは最もシンプルな選択肢です。
エラーを無視して、フローは単純に次のアクションに進みます。
例えば、ファイルの読み取りに失敗しても、その後のアクションを続行したい場合に使用します。
しかし、変数を生成するアクションでエラーが発生した場合、次のアクションに進んでも繰り返しエラーが発生してしまいます。
そのため、「新たなルール」を追加し、「変数の設定」で生成されるはずだった変数に値を入力して使うことが多いです。

 

2.アクションの繰り返し
このオプションを選ぶと、エラーが発生したアクションを再度実行します。
一時的なネットワークエラーなど、再試行で解決する可能性がある場合に便利です。

 

3.ラベルに移動
フロー内の特定の位置(ラベル)にジャンプします。
これは、エラーが発生した際にその後の処理を飛ばして特定の処理から再開したい場合に便利です。
まず、フロー内の任意の位置にラベルを設置し、エラー時にそのラベルへ移動するよう設定します。

 
これらを使うことで、例外発生時の処理を設定できます。

3.例外処理の実施例

それでは、実際にエラー発生時の処理を作っていきます。
今回は、「フロー実行を続行する」を使って例外発生時に意図せずフローが終了する事態を回避させます。
 

(1)次のアクションに移動

まずは、「次のアクションに移動」と「+新しいルール」を使用して例外処理を作成します。
アクションは画像のように配置します。

ファイルの内容を読み取り、その内容をメッセージボックスで表示するというものです。

まずは変数に初期値を設定します。

次に、指定したパスのファイルを読み取ります。
ここで「エラー発生時」をクリックし、例外処理を追加します。

 
「+新しいルール→{X}変数の設定」をクリックします。

 
変数に「FileText」、宛先に「ファイルが読み取れませんでした」と入力します。
こうすることで、エラー発生時に「FileText」の値が「ファイルが読み取れませんでした」に書き換わります。

 
例外処理モードは「次のアクションに移動」を選択します。

ここまでできたら「保存」をクリックしてダイアログを閉じます。

最後にメッセージボックスを表示する部分を作成します。
「メッセージを表示」アクションを配置し、以下のように設定します。

 
それでは、画像のようなファイルを指定したパスに保存してフローを実行してみます。

 
ファイルが読み込めた時はファイルの内容が表示されます。

 
次に、ファイル名を「サンプル2.txt」に変更して実行してみます。

 
ファイルが読み込めなかった場合は専用のメッセージが表示されます。

このように例外を防ぐことが出来ます。
 
因みに、この状態で例外処理を消した場合も実行してみます。
すると、「ファイルからテキストを読み取る」アクションで例外が発生し、フローの実行がキャンセルされます。


 

(2)アクションの繰り返し

次はアクションの繰り返しを使って例外処理を作成します。
アクションは画像のように配置します。

このフローではYahooの天気予報を開き、横浜市の天気をメッセージボックスに表示します。

まずは「新しいChromeを起動する」アクションを下記のように設定します。

 
次に、「Webページからデータを抽出する」アクションで抽出するデータを設定します。
設定できたら「エラー発生時」をクリックします。

 
今回は変数の設定は使用しません。
例外処理モードを「アクションの繰り返し」に設定します。

 
最後に、「メッセージを表示」アクションを以下のように設定します。

 
ここまでできたらフローを実行してみます。
Yahooの天気予報が開いて、メッセージボックスに天気が表示されれば成功です。

 
次に、インターネットの接続を切断してフローを実行します。

 
ブラウザには「インターネットに接続されていません」と表示されます。
フローはここから先に進まなくなっています。
(何回もこのアクションを繰り返し実行しています。)

 
ここで、インターネットに接続します。
すると、ブラウザが再読み込みされ、データが抽出されます。

このように、一時的なネットワーク不良などで発生するエラーを防ぐことが出来ます。
しかし注意点として、自然に回復しない事象に対してこのエラー処理を設定してしまうと、延々と同じ処理を繰り返してしまいます。
例外処理を作るはずが、無限ループを作ることになりかねないので、取り扱いには注意しましょう。
 

(3)ラベルに移動

最後にラベルに移動を使って例外処理を作成します。
アクションは画像のように配置します。

 
例外処理を設定したアクションが3つとラベルが3つ配置されています。
このフローでは、3つのファイルを開いて、その内容をメッセージボックスに表示します。
それでは一つずつアクションを見ていきます。
まずは、「ファイルからテキストを読み取る」アクションです。
ファイルのパスを指定して「エラー発生時」をクリックします。

 
「フロー実行を続行する」を選択し、例外処理モードを「ラベルに移動」、ラベルの選択を「READ_FILE_2」設定します。

 
このアクションでエラーが発生した場合は、「READ_FILE_2」というラベルまで処理をスキップします。

2つ目、3つ目のファイルを読み込む処理でも、例外処理モードを「ラベルに移動」に設定し、ラベルの選択を対象アクションの下にあるラベルを選択します。

 
ここまで出来たら、読込用のファイルを3つ用意してフローを実行してみます。


 
3つともファイルが読み込めた場合は、上画像のように3回メッセージが表示されます。

次に、ファイル2の読み込みに失敗させてみます。


 
ファイル2のメッセージだけ表示されませんでした。
ファイル2の読み込みに失敗したため、ラベル「READ_FILE_3」まで処理がスキップされました。

 
このように、エラーが発生した処理だけをスキップできるため、フローの中で複数のタスクを処理させる場合などに活躍します。
逆に、Excelやブラウザから読み込んだデータを加工していくようなフローにこの例外処理を使用すると、取得されるはずだったデータが空になってしまうなど、他のエラーが発生する原因を作ってしまうのであまりお勧めできません。

4.まとめ

今回は「エラー発生時」アクションの中でも、「フロー実行を続行する」を使って例外処理を実装する方法を解説してきました。
フローの実行を止めないという点で、前回コラムで解説した条件分岐と役割が似ています。
違う点を挙げると、「条件分岐」はフロー設計者が想定しているエラーに対して強い効果を発揮しますが、意図しないエラーには対応できません。
「フロー実行を続行する」は、意図せず起きたエラーに対して素早く柔軟に処理を作ることが出来ます。
特に、運用中のフローで急に見つかったバグの1次的な対処としては非常に有効です。

まとめると、

・「条件分岐」アクションで想定されるエラーを回避する作りにする
・運用開始後のエラーには1次対応としてエラー発生時の「フロー実行を続行する」で業務を止めない対策をする
・エラーの発生原因を調べて、「条件分岐」アクションで同様のエラーが発生しないフローに修正する

というような活用ができるかと思います。

次回は、例外処理の中でも「スローエラー」について解説していきます。

 記事を書いた人
記事を書いた男性アイコン
 株式会社ワイ・ビー・シー
 営業部 開発チーム
 白川
 



PADに関連する記事はこちら
第1回 入門編 業務を自動化して作業を楽に
第2回 活用事例 メールの添付ファイルを自動保存
第3回 活用事例 Webページからデータを抽出しエクセルに転記
第4回 活用事例 無償アカウントでもフローを共有してさらに便利に!
第5回 活用事例 フローの不具合を見つけて直す
第6回 活用事例 表形式データのDatatableを活用しよう!
第7回 活用事例 「データテーブル」アクションを使いこなそう!
第8回 活用事例 面倒な複数箇所への転記作業はまとめて自動化!
第9回 活用事例 【続】面倒な複数箇所への転記作業はまとめて自動化!
第10回 活用事例 【続々】面倒な複数箇所への転記作業はまとめて自動化!
第11回 活用事例 PADで四則演算!
第12回 活用事例 条件分岐を使いこなせ!エラーを減らすフロー設計
第13回 活用事例 フロー実行時のエラーには例外処理を!①


関連記事

エラーを減らすフロー設計

PADで四則演算

【続々】複数個所への転記はまとめて自動化