ワークフローの実行を最適化することは、効率と生産性にとって非常に重要です。 Power Automate は並列実行と並行性のための堅牢な機能を備えており、複数のアクションを同時に実行し、実行時間を大幅に短縮することができます。
並列実行
Power Automate は並列実行をサポートしており、2 つ以上のステップを同時に実行することができます。 ワークフローは、すべての並列ステップが完了した後にのみ続行されます。 この機能により、特に非同期タスクの場合、より効率的な処理が可能になります。
複数のアクションを同時に実行すると、フローの全体的な実行時間が短縮されます。 並列実行は、相互に依存せず、独立して処理できるタスクに役立ちます。
並列分岐
並列分岐は、実行に 5 秒以上かかるアクションに使用します。 このアプローチでは、システムに負荷をかけることなくフローのパフォーマンスを最適化できます。
並列分岐のユース ケース:
- ブロックできない承認要求の送信: 並列分岐を使用して、他のアクションをブロックしない承認要求を送信します。
- Quorum ベースの承認の作成: ほとんどの応答に基づいて決定が行われる Quorum ベースの承認プロセスを実装します。
- 複数のシステムでレコードを作成または更新する: 異なるシステム間で同時にレコードを作成または更新することにより、データの一貫性を確保し、処理時間を短縮します。
- 複数のソースからのデータの統合: さまざまなソースからデータを並行して取得し、さらに処理するためにひとつのデータセットに統合します。
スケジューリングのオーバーヘッドの削減
エンジンでは、一連のアクションを順番に実行できます。 並列構造化は、フローをより適切に整理し、時間を節約するのに役立ちます。 複数の変数を並行して初期化すると、時間を節約できます。
フローでスキップされるアクションの数を最小限に抑えることが重要です。 各分岐に多数のアクションがある幅の広い switch ステートメントや、使用頻度の低いパスにより多くのアクションがある並列分岐は、フローの可読性と保守性に悪影響を及ぼす可能性があります。
スイッチ ブランチ内で多数のスキップされたアクションを使用する代わりに、スイッチ ブランチから子フローを呼び出します。 この方法では、多数の個々のアクションではなく、無関係な子フローをスキップします。 このアプローチにより、メイン フローが簡素化され、保守が容易になります。
各分岐内のアクションの数を減らすと、フローが読みやすく、理解しやすくなります。 子フローを使用すると、ワークフローの特定の部分を個別に管理および更新できるため、メンテナンス プロセス全体が簡素化されます。
同時実行管理
同時実行により、 各ループへの適用で並列実行ができるようになります。 既定では、各ループへの適用は順次実行され、大きなデータを処理する場合には長い時間がかかる場合があります。 ループ内の項目を順次に実行する必要がない場合、同時実行により X 個の項目を一度に処理できます。 並列処理の次数は 1 から 50 の間で設定できます。
100 レコードの状態フィールドを更新する必要があるシナリオを考えてみましょう。 レコードを 1 つずつ更新する代わりに、同時実行制御により、最大 50 個のレコードを同時に更新できます。
以下を設定する並列処理の次数に注意してください。
- 作業の分割、余分なスレッドのキュー登録、および呼び出されるエンドポイントからの遅延にはオーバーヘッドがあります。
- 数値が大きい (たとえば 50) と、必ずしも処理が速くなるとは限りません。
このアプローチが適用される可能性のあるその他の実際のシナリオ:
- 個々のメールを多数の受信者に送信する
- Dataverse、SharePoint リストのレコードの更新、SQL
- Microsoft Entra ID でユーザーを一括作成する
- 並列化された承認の作成
それぞれのループ内の配列処理における同時実行制御の影響の比較です。
配列の長さ | 並列処理の水準 | ループの実行にかかった時間 |
---|---|---|
4 | オフ | 21 秒 |
4 | 2 | 11 秒 |
4 | 4 | 6 秒 |
4 | 6 | 6 秒 |
それぞれに適用 アクションの同時実行制御は、クラウド フローの最上位レベルでのみ有効です。 各アクションへの適用にネストすると、内側のアクションは常に順番に実行されます。