最近、とあるお客様の案件でWeb上のフォームから申し込みを受けたら未使用のキャンペーンコードを引き当てて通知するという機能をPower Automateで実装する場面がありました。
このような場合、同時に複数人がフォームから申し込みを行うと重複してキャンペーンコードが引き当てられてしまう可能性があるためフローの同時実行を制御する必要があります。
同時実行を制御する方法
Power Automateのトリガーにはコンカレンシー処理を設定する箇所があり、ここで同時実行数を1にしておくことで、同時に同じフローが並行で実行させることを防ぐことができます。
1. 対象のフローにおけるトリガーを選び、設定を表示させる
2. コンカレンシー制御をOnにして次数を1にする
まとめ
Power Automateのコンカレンシー処理ですが、Apply to eachで設定できることは知っていたのですが、トリガーのほうでも制御できることは知りませんでした。
実務でPower Automateをつかう場合、マスタがあるかないかを調べてあったら更新/なかったら作成みたいな、いわゆるUpsert処理の実装が必要になることが多いのですが、そのようなケースでは同時処理させないように設定しておかないとマスタが重複してしまう可能性があるため、フロー単位で同時実行を制御できるのはとても有益ですね。