urashineのTechてくてく👣

アウトプットするための環境

Power Automate | スコープを使用した制御

Power Automate のフロー作成で便利だと思ったので備忘のため書きます。

今回は、コントロールコネクタの『スコープ』についてです。

 

『スコープ』は、散らばった変数宣言をどうにかまとめられないか調べていた時に、たまたま出会いました。
(結局、変数宣言をまとめることには使えませんでしたが。。。)

 

一部除いた複数のアクションをまとめることができるということで、フローの見やすさ重視で多用していましたが、別の使い方を学びました。

 

エラーの検知・処理です。

 

実際に使ってみた

いつも通り、Power Automateの画面から
アクションを追加して、コントロール から 『スコープ』を指定していきます。

『スコープ』のアクションは3つ追加して、名称をそれぞれ

  • スコープ | Try
  • スコープ | Catch
  • スコープ | Finally

としました。

コントロール > スコープアクションを追加(Try Catch Finally 計3つ)

 

スコープ | Try内には、フローの主となる目的を追加していきます。

スコープ | Catch内には、Try内のアクションが失敗した場合に実行するアクションを追加します。図例ではメールを送信するアクションを追加しています。

スコープ | Finally内には、Tryの成功可否に関わらず必ず実行するアクションを追加します。図例ではメールを送信するアクションを追加しています。

各スコープ内に処理を追加

各アクションの追加が終わりましたら、Catchスコープの「・・・」メニューをクリックし、表示された一覧から『実行条件の構成』をクリックします。

 

Catchスコープの「・・・」メニューから『実行条件の構成』

 

Catch内のアクションは、Tryのアクションが失敗した場合に実行したいため
『(スコープ | Try)に失敗しました』に✅を入れて、完了します。

『に失敗しました』のみに✅を入れる

 

Finally内のアクションは、Tryの成功可否に関わらず必ず実行したいため
『(スコープ | Catch)に成功しました』、『(スコープ | Catch)に失敗しました』、『(スコープ | Catch)がスキップされます』に✅を入れて、完了します。
タイムアウトも入れてよい??

FinallyもCatch同様の手順で✅を編集。設定はお好み?

 

設定が完了すると、各アクションを繋いでいる線の種類が変わり、一目でわかるようになっています。

各アクションを繋ぐ線種別が変わっている

 

これで想定している、動きになるかテスト等で確認します。
Tryスコープ内でエラーが発生すれば、Catchスコープ内、そしてFinallyスコープ内に処理が移りました。
Tryが正常に処理されれば、Catchはスルーし、Finally処理に移りました。

 

さいごに

このスコープでできる制御はMicrosoftのテンプレートで用意はされているものの、その認知度は社内では低いようでしたので、今後は新入社員へ教育する際は忘れずにお伝えしていきたいです。

実際のテンプレート
Try、Catch、Finally テンプレート | Power Automate

 

※そもそもテンプレートをあまり使っていないので、時間あるときに触ってみようかなーと思う1日でした。また発見があるかも!