2024.11.22
本シリーズでは、Power Automate Desktop※を活用して業務効率化に役立てる方法をご紹介しています。
今回は、フローの実行時に発生するエラーに対応する方法を解説していきます。
何の対策もしていない状態でエラーが発生すると、フローは作業の途中で止まってしまいます。編集中のファイルは保存されることなく終了してしまう上に、PADにはフローを途中から実行することが出来ないため、また最初からフローを実行することになってしまいます。このような状況に陥らないためにも、フロー作成時にはエラーへの対策をしていきましょう。
※Power Automate Desktop (PAD)とは?
MicrosoftがWindows10ユーザー向けに無償で提供しているPC自動化ツールです。
プログラミングなしでPCの操作を自動化できます。
本コラムでは当ツールの活用方法をご紹介しています。
https://powerautomate.microsoft.com/ja-jp/desktop/
1.例外処理とは?
2.PADでの例外処理
3.例外処理の実施例
4.まとめ
PADでフローを作成する際、あらゆる状況を想定し、条件分岐などを用いて適切な処理を定義することが重要です。
しかし、どれだけ入念に準備を進めても、予期せぬエラーが発生する可能性は常に存在します。
例えば、ファイルが存在しない、データベースへの接続が失敗する、あるいはWebサービスがタイムアウトするなど、多くのシステムで例外が発生する可能性があります。
このような予期せぬエラーからフローを守り、安定稼働を実現するのが例外処理です。
例外処理は、エラー発生時の処理をあらかじめ定義しておくことで、エラーによるフローの強制終了を防ぎ、処理を継続したり、適切なエラー処理を実行したりすることを可能にします。
例外処理を導入することで、以下のようなメリットがあります。
次の章では、Power Automate Desktop における例外処理の実装方法について詳しく解説していきます。
PADでは、「エラー発生時に実行」アクションを使って例外処理を実装します。
このアクションは、フロー実行中にエラーが発生した場合に、特定の処理を実行することを可能にする、いわば安全装置のような役割を果たします。
「エラー発生時に実行」アクションはフローデザイナのアクションカテゴリにはありません。
アクションのパラメーター設定ウインドウの左下の「エラー発生時」ボタンをクリックすることで使えます。
パラメーターを一つずつ解説していきます。
次にエラー発生時の設定について解説していきます。
エラーが発生した場合、処理を終わる「スロー エラー」とフローを続行する「フロー実行を続行する」から選択できます。
順番に解説していきます。
これらを使うことで、例外発生時の処理を設定できます。
それでは、実際にエラー発生時の処理を作っていきます。
今回は、「フロー実行を続行する」を使って例外発生時に意図せずフローが終了する事態を回避させます。
まずは、「次のアクションに移動」と「+新しいルール」を使用して例外処理を作成します。
アクションは画像のように配置します。
ファイルの内容を読み取り、その内容をメッセージボックスで表示するというものです。
まずは変数に初期値を設定します。
次に、指定したパスのファイルを読み取ります。
ここで「エラー発生時」をクリックし、例外処理を追加します。
「+新しいルール→{X}変数の設定」をクリックします。
変数に「FileText」、宛先に「ファイルが読み取れませんでした」と入力します。
こうすることで、エラー発生時に「FileText」の値が「ファイルが読み取れませんでした」に書き換わります。
例外処理モードは「次のアクションに移動」を選択します。
ここまでできたら「保存」をクリックしてダイアログを閉じます。
最後にメッセージボックスを表示する部分を作成します。
「メッセージを表示」アクションを配置し、以下のように設定します。
それでは、画像のようなファイルを指定したパスに保存してフローを実行してみます。
ファイルが読み込めた時はファイルの内容が表示されます。
次に、ファイル名を「サンプル2.txt」に変更して実行してみます。
ファイルが読み込めなかった場合は専用のメッセージが表示されます。
このように例外を防ぐことが出来ます。
因みに、この状態で例外処理を消した場合も実行してみます。
すると、「ファイルからテキストを読み取る」アクションで例外が発生し、フローの実行がキャンセルされます。
次はアクションの繰り返しを使って例外処理を作成します。
アクションは画像のように配置します。
このフローではYahooの天気予報を開き、横浜市の天気をメッセージボックスに表示します。
まずは「新しいChromeを起動する」アクションを下記のように設定します。
次に、「Webページからデータを抽出する」アクションで抽出するデータを設定します。
設定できたら「エラー発生時」をクリックします。
今回は変数の設定は使用しません。
例外処理モードを「アクションの繰り返し」に設定します。
最後に、「メッセージを表示」アクションを以下のように設定します。
ここまでできたらフローを実行してみます。
Yahooの天気予報が開いて、メッセージボックスに天気が表示されれば成功です。
次に、インターネットの接続を切断してフローを実行します。
ブラウザには「インターネットに接続されていません」と表示されます。
フローはここから先に進まなくなっています。
(何回もこのアクションを繰り返し実行しています。)
ここで、インターネットに接続します。
すると、ブラウザが再読み込みされ、データが抽出されます。
このように、一時的なネットワーク不良などで発生するエラーを防ぐことが出来ます。
しかし注意点として、自然に回復しない事象に対してこのエラー処理を設定してしまうと、延々と同じ処理を繰り返してしまいます。
例外処理を作るはずが、無限ループを作ることになりかねないので、取り扱いには注意しましょう。
最後にラベルに移動を使って例外処理を作成します。
アクションは画像のように配置します。
例外処理を設定したアクションが3つとラベルが3つ配置されています。
このフローでは、3つのファイルを開いて、その内容をメッセージボックスに表示します。
それでは一つずつアクションを見ていきます。
まずは、「ファイルからテキストを読み取る」アクションです。
ファイルのパスを指定して「エラー発生時」をクリックします。
「フロー実行を続行する」を選択し、例外処理モードを「ラベルに移動」、ラベルの選択を「READ_FILE_2」設定します。
このアクションでエラーが発生した場合は、「READ_FILE_2」というラベルまで処理をスキップします。
2つ目、3つ目のファイルを読み込む処理でも、例外処理モードを「ラベルに移動」に設定し、ラベルの選択を対象アクションの下にあるラベルを選択します。
ここまで出来たら、読込用のファイルを3つ用意してフローを実行してみます。
3つともファイルが読み込めた場合は、上画像のように3回メッセージが表示されます。
次に、ファイル2の読み込みに失敗させてみます。
ファイル2のメッセージだけ表示されませんでした。
ファイル2の読み込みに失敗したため、ラベル「READ_FILE_3」まで処理がスキップされました。
このように、エラーが発生した処理だけをスキップできるため、フローの中で複数のタスクを処理させる場合などに活躍します。
逆に、Excelやブラウザから読み込んだデータを加工していくようなフローにこの例外処理を使用すると、取得されるはずだったデータが空になってしまうなど、他のエラーが発生する原因を作ってしまうのであまりお勧めできません。
今回は「エラー発生時」アクションの中でも、「フロー実行を続行する」を使って例外処理を実装する方法を解説してきました。
フローの実行を止めないという点で、前回コラムで解説した条件分岐と役割が似ています。
違う点を挙げると、「条件分岐」はフロー設計者が想定しているエラーに対して強い効果を発揮しますが、意図しないエラーには対応できません。
「フロー実行を続行する」は、意図せず起きたエラーに対して素早く柔軟に処理を作ることが出来ます。
特に、運用中のフローで急に見つかったバグの1次的な対処としては非常に有効です。
まとめると、
というような活用ができるかと思います。
次回は、例外処理の中でも「スローエラー」について解説していきます。
記事を書いた人
株式会社ワイ・ビー・シー
営業部 開発チーム
白川
PADに関連する記事はこちら
第1回 入門編 業務を自動化して作業を楽に
第2回 活用事例 メールの添付ファイルを自動保存
第3回 活用事例 Webページからデータを抽出しエクセルに転記
第4回 活用事例 無償アカウントでもフローを共有してさらに便利に!
第5回 活用事例 フローの不具合を見つけて直す
第6回 活用事例 表形式データのDatatableを活用しよう!
第7回 活用事例 「データテーブル」アクションを使いこなそう!
第8回 活用事例 面倒な複数箇所への転記作業はまとめて自動化!
第9回 活用事例 【続】面倒な複数箇所への転記作業はまとめて自動化!
第10回 活用事例 【続々】面倒な複数箇所への転記作業はまとめて自動化!
第11回 活用事例 PADで四則演算!
第12回 活用事例 条件分岐を使いこなせ!エラーを減らすフロー設計
第13回 活用事例 フロー実行時のエラーには例外処理を!①