Office365(Microsoft365)で、ユーザーオペやスケジュールをトリガーに自動起動する連携処理を実装するのに便利なPowerAutomateですが、実際に業務の中で使おうとするといろいろな制約があります。
そのような制約を克服するため思いついたり調べたりした内容をご紹介していこうと考えています。
Problem
Power Automateでフローを構築するとき、たまにですが「期待したデータが得られたらその結果に基づき何かしら処理を実行してから後続処理に移る、得られなければすぐに後続処理に移る」というロジックを実装しなくてはならないことがあります。
ところで、SharePointリストの項目(要素)にせよ、ActiveDirectoryで管理されているユーザー情報にせよ、それらを取得するためにPower Automate に用意されているアクションは「該当する項目が存在しない」場合にエラーを発生させ、フローを中断させてしまいます。
Solution
このような時は空の「スコープ」アクションの出番です。
エラーになりうるアクションの後ろに「スコープ」を追加し:
「…」→「実行条件の構成」で、「…に失敗しました」のチェックボックスをONにしてあげます:
フローを実行すると・・・、このように「エラーに構わず後続実行」されました:
当初の目的である「期待したデータが得られたらその結果に基づき何かしら処理を実行してから後続処理に移る、得られなければすぐに後続処理に移る」を実現するには、さらに「スコープ」を追加します:
元からある「スコープ エラー無視」は空のままですが、フロー編集で「実行条件の構成」が初期化されてしまうので、やり直してあります。
新たに追加した「スコープ データ取得&データ処理」にはデータ取得処理と(もし取得できたら)実行したい処理を入れておきます。
これを実行すると、ご覧の通り、目的が達成できたことがわかります:
トリッキーと言えばトリッキー、微妙といえば本当に微妙ですが、こうした半ば単なる埋草としての「スコープ」は他にも活用シーンがありそうです。。