Power Automate Desktopでエラー発生時の例外処理を実装する方法、ブロックエラーの使い方

error IT

Power Automate Desktopのアクション下部「エラー発生時」の設定についてです。読んで字のごとく、エラーが発生した時の処理をアクションごとに設定することができます。
本来の意図とは外れたケース、例外的な場面での処理なので、これを例外処理と呼びます。

スポンサーリンク

例外処理が起動しないエラー

pad error10
「エラー発生時」には一部対応できないエラーがあります。
例①開いてもいないExcelを閉じようとしている場合、
pad error11
これは指定したインスタンスが予め用意されていない、PADの構成に問題があるエラー(ランタイムエラー)となります。エラー内容で修正内容が指定されます。
この手のエラーの場合、エラー発生時の処理を設定しても何も起きません。
pad error12
例②ファイル名のまちがったExcelファイルを開こうとしている場合、
pad error13
インスタンス的には問題がない、PADの構成は間違っていないエラー(実行時エラー)となります。エラー内容はできなかったことが記述されます。
こうしたエラーでは、例外処理を走らせることが可能です。
pad error14
例③間違ったURLでブラウザを立ち上げている場合のように、
意図しない内容にもかかわらず、PAD的には問題なく処理が走ることもあります。この手のエラーの場合も、例外処理の対象外となります。

エラー発生時

power automate desktop エラー発生時 クリック1
エラー発生時はアクション左下に設置されています。
power automate desktop エラー発生時 クリック2
クリックするとダイアログの表示内容が切り替わり、アクションが失敗した場合は次のルールが適用される旨説明書きが出ます。
画面下部パラメーターに戻るをクリックすれば、元の画面に戻ることができます。

エラーが発生した場合にアクションを再試行する

power automate desktop エラー発生時 クリック3
再試行はデフォルトでOFFになっており、エラーが発生しても再試行しない設定になっています。
ONにすると、回数間隔を設定することができます(図の場合、2秒開けて1度再試行)。

すべてのエラー

エラーの種類にかかわらず、ひっかかった時に行う処理をまとめて設定することができます。
エラーの種類ごとに処理を分ける場合は、後述する詳細を使用します。

power automate desktop エラー発生時 クリック4
デフォルトでスローエラーになっていますが、これはエラー発生時は処理を中断する設定です。
power automate desktop エラー発生時 クリック5
フロー実行を続行するをクリックすれば、
power automate desktop エラー発生時 クリック6
それ以外の選択肢をプルダウンから選ぶことができます。

次のアクションに移動

power automate desktop エラー発生時 クリック7
エラーが起きた処理は無視して、次のアクションへ進みます。

アクションの繰り返し

power automate desktop エラー発生時 クリック8
エラーが解消するまで再試行し続けます。解消されないエラーの場合無限ループになります(手動で止めることは可能)。

ラベルに移動

power automate desktop エラー発生時 クリック9
エラーが起きた時に、フロー内の指定箇所までジャンプすることができます。
「使用できるラベルがありません」と出る場合、フロー内にラベルがありません。
power automate desktop エラー発生時 クリック10
ラベルはアクションペインのフローコントロール内から追加できます。
power automate desktop エラー発生時 クリック11
名前(日本語不可)をつけて任意の箇所に挿入すれば、
power automate desktop エラー発生時 クリック12
エラーが起きた時には、指定したラベルの位置までジャンプする=やり直したり処理を飛ばしたりすることが可能となります。

新しいルール

pad error1
新しいルールからは、変数の設定サブフローの実行が指定できます。
pad error3
変数の設定では、「設定」に変数名を指定(デフォルトで新しい変数を作成)し、「宛先」でその内容を変更できます。
pad error4
{x}を押すことで既定の変数を指定できます。
pad error5
宛先は直接値を入力してもいいし、他の変数の値を使用することもできます。
設定と宛先というととまどいますが、用語としては変数の設定と同一なので、そっちに慣れてるとわかりやすいかもしれません。下の例②でも実際にエラー処理をやってみるので、そちら見ていただいても参考になるかと思います。
pad error2
サブフローの実行を指定すると、エラー発生時に指定したサブフローを実行することができます。

すべてクリア

power automate desktop エラー発生時 クリック13
すべてクリアをクリックすることで、
power automate desktop エラー発生時 クリック14
「すべてのエラー」内の設定をすべて初期化する(スローエラーに戻す)ことができます。

詳細

pad 詳細1
エラーの内容に関わらず対応を設定できる「すべてのエラー」とは別に、詳細ではエラーの種別ごとにルールの作成が可能です。
「詳細」に表示される内容はアクションごとに異なります。
pad 詳細2
新しいルールをクリックし、サブフローの実行ないしは変数の設定をすることで、エラーごとに特殊な対応を設定することができます。
エラー発生時
また、「詳細」の各項目名をクリックすることで、フロー実行を続行するを選択することも可能です。

エラー処理例①サブフローを起動

サブフローの作成

pad error6
サブフローから新しいサブフローをクリックし、
pad error7
エラー時に実行するサブフローを作成しておきます。
pad error8
サブフローはメインフローの中で指定することで実行できる補助的なフローです。

エラー時にサブフローを起動

pad error20
メインフローで何かエラーの起きる処理(ここでは存在しないExcelを開く)を作成し、エラー発生時をクリックします。
pad error21
新しいルールで作成したサブフローを指定し、保存を押します。
これでエラー時にサブフローが実行されるようになります。

最後のエラーを取得

pad error15
サブフローに、フローコントロールにある最後のエラーを取得を追加します。
pad error16
「最後のエラーを取得」は文字通り、一番最後に発生したエラーの内容を取得できます。
保存をクリックします。

Excelに書き出し

pad error19
Excelの起動書き込みをサブフローに追加し、取得した最後のエラーを書き込む値に指定します。
pad error17
「最後のエラーを取得」では、エラーの具体的な内容をテキストとして取得できます。
pad error18
メインフローを実行するとエラーが発生し、Excelにエラー内容が記述されます。

エラー処理例②エラー発生時のみ変数を渡す

pad エラー処理1
今度はサブフローを使わずに、メインフロー内でふたつExcelを立ち上げます。
pad エラー処理2
ひとつ目のExcelのエラー発生時に入り、
pad エラー処理3
「すべてのエラー」でフロー実行を続行する次のアクションに移動を選択した状態にしておきます。

変数の設定

pad エラー処理4
新しいルール変数の設定をクリックします。
pad エラー処理5
「宛先」に直接文字列を記入すると、変数NewVarにそのまま代入されます。保存をクリックします。

エラー時のみ変数を出力

pad エラー処理6
Excelへ書き込む内容を、先ほど作成した変数へ差し替えます。
変数の選択をクリックし、
pad エラー処理7
変数名選択保存とクリックします。

実行

pad エラー処理8
ひとつ目のExcelが問題なく開ける場合、変数NewVarには何も代入されないので、ふたつ目のExcelには何も書き込まれません。
pad エラー処理9
しかしひとつ目のExcelが開けない(存在しない)場合は、
pad エラー処理10
ふたつ目のExcelだけが開き、セルに変数に代入された値が書き込まれます。

なお、試した感じエラー発生時に作成した変数は、サブフローに渡すことができないようです。Excelに変数を書き込む処理をサブフローで行っても、セルに何も出力されなくなります。

ブロックエラー(ブロックごとにエラー処理)

pad ブロックエラー1
処理が膨大になってくると、「ここからここまではこのエラー処理、その先はこのエラー処理」とブロックごとにエラー処理を振り分けたい場面も出てきます。
そうした時に使えるのがフローコントロールにあるブロックエラー発生時です。
pad ブロックエラー2
名前はつけてもつけなくても良いです。
「エラー発生時」同様にエラー時の処理を指定することができます。
pad ブロックエラー3
保存するとブロックの開始位置と終了位置が作成されるので、
pad ブロックエラー4
処理をその中に配置してやると、中でエラーが発生した場合のみ「ブロックエラー発生時」の処理が実行されます。
Microsoft Power Automate Desktop(PAD)アクション、使い方一覧
Power Automate Desktopの使い方を機能・分類別に参照できるまとめです。

コメント