FIXER cloud.config Tech Blog
Power Automateで「Apply to each」を避けるべき場面と対処方法
2022年04月22日 10時00分更新
本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「Power AutomateでApply to eachを避けるべき場面と対処方法」を再編集したものです。
こんにちは、あおいです。
最近、ICL(眼内コンタクトレンズ)に興味があるので治療を前向きに検討中です。
さて、Power Automate「コントロール」コネクタの「Apply to each」アクションは、配列及びそれに準ずるデータの各要素をFor-eachで処理します。
このApply to eachアクションの主な活用方法は、各要素を文字列処理をして、OutlookやSlack等で通知をしたり、SQLServerやDataverseにCRUD操作、またはExcelファイルに書き込む等が挙げられます。
とても便利なアクションですが、ループ対象のデータ要素があまりにも多いとかなりの処理時間を要します。
可能な限り、Apply to eachの多用は避けるべきです。
そんな時に役立つのが「データ操作」コネクタの「選択」「アレイのフィルター処理」アクションです。
そこで、今回はApply to eachの適用を避けるべき場面と対処方法を紹介させていただきます。
配列の作成
例えば、配列変数に各要素(100個)を追加して配列を作成します。
「Apply to each」の場合
フロー実行で処理時間を確認すると25秒です…
「選択」アクションの場合
フロー実行で処理時間を確認すると0秒です!
また、余分なフローステップがなくなるので可読性も向上します!
配列から要素を抽出
例えば、配列(100個)から条件に合った要素のみ処理をします。
「Apply to each」の場合
フロー実行で処理時間を確認すると18秒です…
「アレイのフィルター処理」アクションの場合
フロー実行で処理時間を確認すると0秒です!
また、余分なフローステップがなくなるので可読性も向上します!
今回はApply to eachの適用を避けるべき場面と対処方法を紹介させていただきました。
「選択」「アレイのフィルター処理」アクションを使う上で、注意すべき点があります!
それはApply to eachでどんな処理をしているかをきちんと理解していることです。
何も考えずにとりあえずApply to eachを無理矢理なくそうとすると、返って複雑なフローになってしまう可能性もあります。考えなしでフローを組むのは絶対に避けるべきです。
Apply to eachが必須な処理か、Apply to eachをなくす以外に改善すべきところはないか、これらを考慮した上で使うようにしましょう!
あおい/FIXER
「初心者の方にも分かりやすく」をモットーにBlog執筆。趣味は米株取引とK-POP。最近、Pythonで株価分析をしています。