タグ別アーカイブ: try catch

Power Automateのフローがもし失敗したら~エラー対策~

【フローが失敗しても、気づかないまま・そんなことがないように対策を打ちましょう!】

エラー対策はPower Automateのようなローコードの開発でも重要です

Power Automateの場合は、トリガーが「ボタンを押す」以外のケースがほとんどなのでエラーが起こったことに気づきにくいです

今回は簡単な方法でエラー発生時に通知が来るようにしましょう!

ポイント

アクションの右上の三点リーダをクリックすると「実行条件の構成」というのが選べるのをご存じでしょうか?

実行条件の構成では、前ステップがエラーの場合のみアクションを動かすように設定を行うことができます

1段階目⇒単独実行

まず最初に、敢えてエラーを出すアクションを作成しましょう

データ操作コネクターの「作成」アクションで1÷0を指定します

数式はdivを使用します

割り算した時に分母が0なので必ずエラーになります

ここでポイントで解説した「実行条件の構成」を調整したフローを追加します

ここでは「メール通知を受け取る」アクションを使用します

このアクションは該当フローを作成したアカウントにメールを送信します

こちらのアクションの実行の構成を調整し、一つ前の「作成」アクションがエラーになった場合はメールの通知を行うようにします

これで「作成」アクションがエラーになったら「メール通知を受け取る」アクションが実行されます

逆に作成アクションをエラーにならないように中身を変えたらどうなるでしょうか?

この場合は、そもそもアクションが実行されません

2段階目⇒並列実行

前述のフローだと、エラーが発生しなければアクションは実行されません

ただ大抵の場合は、エラーが発生しない場合は後続処理を実行する必要があるケースが大半のはずです

その場合は「並列分岐の追加」を行います

これで、エラーが発生しない場合の後続処理を続けることができます

3段階目ー対象を複数アクションに拡大

前述の内容は、特定のアクションにてエラーが発生した場合のみエラー対策が実行されます

実際のフローではどこのアクションでエラーが発生するか分かりません

エラー対策のアクションを拡大する場合は「スコープ」アクションを使用します

こちらのアクションでは複数のアクションをまとめて活用できます

このスコープアクションを「実行条件の構成」の対象にすれば、スコープの中のどれか一つがエラーになるとエラー対策として設定したアクションが実行されます

エラー内容を知りたい場合

通知内容の中に「エラー内容」を入れたい場合は「actions関数」を使用します

上の画像のように()の中にエラー検知対象のアクションの名前を設定することにより、エラーの中身が取得できます

こちらが「メール通知を受け取る」アクションで通知された中身です

こちらだと情報が多すぎるという場合には、下の画像の黄色の部分に絞ってエラーの中身を抽出することができます

前述のactions関数に?を2つ続けます

actions(‘スコープ’)?[‘error’]?[‘message’]

これによりエラーメッセージの中身を絞り込むことができます

<まとめ>

今回は「実行条件の構成」を軸にPower Automateにおけるエラー対策について解説を行いました

Power Automateはローコードとはいえ、システム開発にエラー対策はつきものです

常にエラー対策は意識しておきましょう

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

Power automate desktopでエラーをうまく扱う方法

【RPAにエラーは付き物です。エラーをうまく扱えばRPAの扱いそのものを向上させることができます】

今回の記事では、エラーが発生した時の対象方法について複数解説します

エラー対策のツボである「原因を突き止めやすくしておく」、「エラーが発生した場合の影響を軽微にとどめる」工夫に活かしていただきたいと思います!

リトライを行う

Power automate desktopの各アクションでは下の画像のように、エラーが発生した時の対処が指定できるようになっています

上の画像の箇所をクリックすると下の画像の画面が開きます

デフォルトでは「エラーが発生した場合にアクションを再試行する(リトライ)」はオフになっています

リトライをオンに設定することで、エラー発生後も指定回数・間隔にて該当アクションを再実行できます

別ルートの実行

ラベルアクションを使用することで、エラー発生時の処理の流れを事前に指定した内容に変えることができます

まずはラベルをフローの適切な場所に設定しましょう

今回はラベルを「エラー発生」のメッセージを表示するアクションの前に置きます

こうすることで「Excelの起動アクション」がエラーになった場合、こちらのラベル:myErrorにフローが飛び、メッセージを表示できるようします

ラベルを設定したので、今度は「Excelの起動アクション」のエラー発生時の設定を変えます

「フロー実行を続行する」を選択したうえで、「ラベルに移動」を選択します

上の画像の「ラベルの選択」は先ほど設定したラベルを選択します

これでフローを実行してみます

本来は「エクセルの起動」アクションの箇所でエラーメッセージが出て止まります

今回はラベルを事前に仕込んであるので、フローの流れが変わり、ラベルから下が実行されるようになっています

エラーメッセージ表示

エラーメッセージそのものをフローの流れの中で表示したいときには「最後のエラーを取得」アクションを使用します

「最後のエラーを取得」アクションにてエラー内容を変数に格納することができます

こちらの変数(上記画像ではLastError)をメッセージボックスに格納すればOKです

これで前述のラベルと組み合わせればエラーメッセージがエラー発生時に表示できるようになります

まとめてエラー対策

今までの解説で「いちいちフローごとにエラー対策はできない・・・」と感じた方もいらっしゃると思います

その場合には「ブロックエラー発生時」アクションを使用します

このアクションで下の画像のように「End」の箇所までをまとめてエラー対策を行えます

まとめてエラー対策を行う方法としては「サブフロー」を実行する方法がおすすめです

まず事前にサブフローを作成しておきます

次に「ブロックエラー発生時」アクションの編集をクリックします

次に開いた画面では、以下の箇所をクリックします

ここで「サブフローの実行」を指定できるようになります

こちらで事前に作成したサブフローを指定してください

これでEndで囲んだブロック内でエラーが発生した場合は一括で同じ処理が適用されます

ログファイル作成

エラー対策を実行するのに有効な手段として、エラー発生履歴を管理しておくというのもあります

先ほどのブロックでのエラー対策にてサブフローを実行しました

こちらのサブフローに、上記の画像のような発生時間をファイル名にした「ログファイル」を出力するフローを作成します

ログファイルに入れる内容としては「エラー内容」「発生日時」になります

ですので「最後のエラーを取得」「現在の日時を取得」アクションで「エラー内容」と「現在時刻」を取得します

取得した現在時刻は「datetimeをテキストに変換」アクションでファイル名に盛り込める形に変換しておきます

取得した「エラー内容」、変換した「現在時刻」はリストに格納しておきます

次に空のCSVファイルを作成します

「Excelの起動アクション」で新規にファイルを作成し、変換した「現在時刻」を盛り込んだファイルパスにてCSVファイル形式で保存します

最後に「CSVファイルに書き込む」アクションで先ほど作成したリストを空のCSVファイルに書き込みます

これでエラー発生都度、ログファイルを作成するフローが完成です

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ