並列実行と並行処理によるフローの最適化

ワークフローの実行を最適化することは、その効率化にとって極めて重要です。 並列実行と並行処理により、複数の処理を同時に実行することができるため、実行時間を大幅に短縮できます。

並列実行

並列実行では、フローは 2 つ以上のステップを同時に実行します。 すべての並列処理が完了すると、ワークフローが再開されます。 この機能により、特に非同期タスクにおいて処理効率が向上します。

互いに依存せず、個別に処理できるタスクや、実行に 5 秒以上かかるタスクについては、並列実行を検討してください。 このアプローチでは、システムに負荷をかけることなくフローのパフォーマンスを最適化できます。

並列実行の使用例を次に示します。

  • 他の操作を妨げない承認リクエストを送信する。

  • 過半数に基づく承認プロセスを設定し、最多の回答に基づいて決定を下すようにします。

  • 複数のシステムで同時にレコードを作成または更新します。

  • 複数のソースから同時にデータを取得し、それらを単一のデータセットに統合して、その後の処理に活用します。

  • 順次実行による遅延を避けるため、複数の変数を並行して初期化します。

    並列分岐を持つクラウドフローを表示した Power Automate デザイナーのスクリーンショット。

スキップされるアクションを最小化する

並列実行を使用する場合は、スキップされるアクションに注意してください。 スキップされたアクションとは、条件が満たされず、アクションが実行されなかった場合を指します。 アクションを省略すると、混乱を招き、フローの論理を理解しにくくなる可能性があります。 また、実行されなくてもリソースを消費し続けるため、パフォーマンスの問題を引き起こす可能性があります。

スキップされるアクションは、分岐処理で発生するケースが多いです。 分岐とは、単一の変数や式の複数の取り得る値に対して、それぞれ異なる処理を定義する方法です。 各分岐に多くのアクションがある場合、スキップされるアクションが大量に発生する可能性があります。

個別のアクションを多数追加するのではなく、スイッチ分岐から子フローを呼び出します。 無関係な子フローをスキップすることで、個々のアクションを大量に処理するよりも、メイン フローが簡素化され、メンテナンスが容易になります。

並行処理の制御

各ループに適用するは、既定では順番に実行されます。 ループ内の項目を順番に実行する必要がない場合、並行処理により複数の項目を同時に処理することができます。 作成者は、並行度 (並列処理の度合い) を 1 から 50 の間で設定します。

作業の分割、追加のスレッドのキューイング、呼び出されるエンドポイントからの遅延は、オーバーヘッドとなることに注意してください。 また、数値を大きくしたとしても (50 など)、必ずしも処理が速くなるわけではありません。

それぞれに適用アクションにおける同時実行制御を示す、Power Automate デザイナーのスクリーンショット。

並行処理を使用する場面の例をいくつか挙げます:

  • 多数の受信者に対して個別にメールを送信する。
  • Dataverse、SharePoint リスト、SQL のレコードを更新します。
  • Microsoft Entra ID のユーザーを一括で作成します。
  • 並列化された承認の作成。

次の表は、それぞれに適用のループにおける配列処理に対する並行制御の影響を比較したものです。

配列の長さ ​ 並列処理の次数 ループの実行時間
4 オフに切り替え 21 秒
4 2 11 秒
4 4 6 秒
4 6 6 秒

それぞれに適用アクションの同時実行制御は、クラウド フローの最上位レベルでのみ有効です。 それぞれに適用アクションをネストすると、内側のアクションは常に順次実行されます。