自分を活かして 相手を活かして 今を活かす

【新デザイン対応】Power Automateでエラー処理をする方法について~スコープを活用する~

こんにちは、おかちゃんせんせいです!

Power Automateに限らず、開発言語を扱う際によく登場する処理の一つとしてエラー処理があります。

try~catch(~finally)で書かれることが多いエラー処理ですが、
同じような挙動をする機能がPower Automate(PA)の標準機能では実装されておりません。

同じような扱いができるように、PAではちょっと工夫する必要があります。
そこで今回は、PAでエラー処理をする方法について備忘もかねて整理します。

※ネットで検索して上位でヒットするのが旧デザインのものばかりですので、
この記事では新デザインバージョンでの設定方法について共有します。

◆お知らせ◆

【マインドマップ公開講座】

<マインドマップ講座ステージ1:創造編>

《日時》 10月26日(土) 10:00~16:00

《場所》 道場kirari

広島市安佐南区八木8-9-33

《受講料》 33,000円

《参加特典》めちゃくちゃ描きやすいマインドマップのノートとペンがもらえます!

詳しくはこちらから


【まとめ記事】

現在、これまで書いてきた記事をテーマ別にまとめています。

詳しくはこちらから

try~catchの仕組みをPAでも実装する

そもそもエラー処理とは?

エラーが発生した際に、処理を途中で中断することなく続ける処理のことをエラー処理といいます。

どんなシーンで活用するのかというと、通常エラーが発生した場合にはその時点で処理が中断してしまいます。
つまり、何も処理を加えなければ、エラーが発生しても処理自体はそのまま続けたいケースや、エラーが発生したことをメールやSlackなどで通知したいケースには対応できない、ということになります。

そこで、エラー処理(try~catch)を用いて、tryの箇所にはエラーが発生するかもしれない処理。catchの箇所にはエラーが発生した場合に発生する処理を記述することによって、処理を中断させることなく完結させることができるのです。

PAでエラー処理をするためには『スコープ』を用いる

先述の通り、PAにはエラー処理(try~catch)の動きをするアクションはありません。

そこで、『スコープ』というアクションを集約するものを活用して、try部分のスコープとcatch部分のスコープの2つを用意することで、try~catchと同様な動作が可能になります。

まずは、「アクションを追加」をクリックして、検索窓で「スコープ」と検索し、ランタイムを「組み込み」として『スコープ』を選択します。
すると、フロー内にスコープカードが追加されます。

「スコープ」のままですと、何の処理を集約しているのかが分かりにくいため、名前を変更しておきます。
スコープカードをクリックすると、左側にプロパティが表示されます。
左上の「スコープ」という文字列を、今回は「try」と変更しておきます。
※同様の操作方法でcatchについても作成します。

各スコープが実行される条件を設定する

次に、tryにはエラーが発生するかもしれない処理(アクション)を。catchにはエラーが発生した場合の処理(アクション)を組んでいきます。

このときに、ただ、それぞれのスコープにアクションを加えるだけでは、try~catchのような動作はしないため、今回のケースではcatchのプロパティを変更します。
tryスコープ内の処理が「タイムアウトになりました」または「Has failed」の場合に、catchスコープに処理が続くように下図のように設定します。
※「スキップされます」については意図的に実施する可能性があるため、ここではcatch候補から外しております。

こうしておくことによって、tryスコープ内でタイムアウトになったり、失敗した場合に処理が中断されることなく、catchスコープに処理が続くようになります。

catchの最後に「失敗」のステータスで終わるようにする

あとは、catch内にエラーが発生した場合のアクションを追加すれば完成――といきたいところですが、実は一つ問題が出てきます。

このまま処理を続けてしまうと、実は実行したフローが「成功」したというステータスで完了するため、後で履歴を確認したときにどこでエラーになっているのか分かりにくくなってしまいます(下図参照)。

そこで、catchスコープの最後に『終了』アクションを追加します。
『終了』アクションは、検索窓で「終了」と検索し、ランタイムを「組み込み」として「終了」を選択することで追加できます。

終了アクションのプロパティで、Statusが「Failed」になっていることを確認します。

こうすることによって、エラーが発生した場合には実行ステータスが「失敗」として終了することができます。

まとめ

PAでエラー処理をする方法
  • アクション『スコープ』を使って処理をまとめる
  • catchの最後にはアクション『終了』で、失敗のステータスで処理を終えるようにする

【特集】独学では開発言語の習得が難しいと感じている方向け

一つ目は、
侍エンジニア塾
です。


VBAやJavaScript関連でネット検索したことがある方であれば、一度は見かけたことある名前かと思います。
JavaやPython、C言語、VBA、JavaScriptなど、様々なプログラミング言語をオンラインで習得するためのサービスを提供しているところなので、自分が習得したい言語がもしありましたら、無料体験レッスンを受けてみると良いかもしれません。

そこでプロ講師に相談をして、習得するプログラミング言語に対して直接質問するのがベストです。

二つ目は
ストアカ
です。


こちらはあえてプログラミング学習専門ではなく、もっと手軽に学ぶ機会を得るサービスをチョイスしてみました。
VBAやJavaScriptなどのワンツーマンレッスンを開催している講師が多数登録しているので、まずは出費を抑えて学習したいと考えている方にお勧めです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA