はじめに
Power Automate の制御部品は、基本パーツのようなイメージでラインナップされているので、望むフローを構成するときは「アイデア勝負」になってくることが多いです。
今回は、Do-Until制御によるループを途中で離脱・脱出したい、プログラムだとbreak
に相当する制御について、アイデアを記載します。
要件
次のような単純化したフローを例にします。必要な処理を(カウントダウン)が完了するまで繰り返し、終了したら(カウントが0になったら)Do-Until制御のループが終了します。
ここで、次のような仕様が増えたとしましょう。
ループ内でApprovalsによる承認申請を行い、一度でも拒否されたらループを終了する。
となると、承認アクションを追加した後、そこにループを脱出するステップが欲しくなるわけです。
実現例
「ほしいアクションがない!」となるわけなんですが、よくよく動作を整理すると、次のように考えることができます。
「10回繰り返すあいだループを継続する」+「途中で拒否されたらループを終了する」
=「10回繰り返す、もしくは拒否されない、あいだループを継続する」
というわけで、次のようにします。
一行で解説しますと
「ループを継続するか否か or ループを脱出するか否か」をそのままブール変数として定義し、Do-Until制御の条件にしてしまいます。
そして、お好きなタイミングでフラグを立ててしまえばいいわけです。
今回の場合、2か所。まずはApprovalsで拒否されたときにフラグを立てます。
もう1か所、10回ループを繰り返し終わったらフラグを立てます。
これで、複数の場合、好きな時に脱出するような構成ができるようになります。
注意点
注意点として途中離脱する条件が揃ったら、ループ内の処理を行わないようにする必要があります。
ここには制御によっていろいろなテクニックがあります。
今回の場合、拒否されたら、ループカウントのカウントダウンを行わないようにする必要があります。今回は制御による「はい」「いいえ」がありますので、そこで分離できましたね。
拒否されたら、もうカウントダウンはされません。安心してループを脱出することができます。
ただし、後続処理がさらに複雑になったりするときがありますので、そのときは**「スコープ」や「実行条件の構成」**を活用しましょう。こんなことができるようになります。
スコープについては、次の記事を参考にしてください。
実行条件の構成については、こっちなどを。
おわりに
大事なのは「目的にフォーカスすること」「細目にとらわれないこと」です。
Power Automate で、日々の手作業をもっとサボりましょう!!!