S.B.S. Salesforce技術ブログ

教えて921さん!

フローやトリガーなどの実行順序について

こんにちは!mkです!
Salesforce上ではフローやトリガー、プロセスビルダー、入力規則などの項目制御が行われていますが、これらには実行順序があります。 今回はその実行順序
についてざっくりと紹介していきたいと思います。

実行順序


実行順序は次のようになっています!
1.元のレコードの読み込み,upsert用のレコードの初期化
2.新しいレコードの項目の値の読み込み及び上書き
3.レコードを保存する前に実行されるように設定したレコードトリガフローの実行
4.すべてのbeforeトリガの実行
5.必須項目・入力規則のチェック
6.重複ルールの実行
7.レコードのデータベースへの保存(確定はしていない)
8.すべてのafterトリガの実行
9.割り当てルールの実行
10.自動応答ルールの実行
11.ワークフロールールの実行
12.ワークフロー項目自動更新が存在する場合、レコードが再度更新
13.ワークフロー項目自動更新でレコードが更新された場合、before updateトリガとafter updateトリガをもう一度だけ実行
14.プロセス及びプロセスによって起動されたフローの実行(順番の保証はなし)
15.エスカレーションルールの実行
16.エンタイトルメントルールの実行
17.レコードの保存後に実行されるように設定したレコードトリガフローの実行
18.積み上げ集計項目の更新
19.条件に基づく共有の評価の実行
20.すべてのDML操作がデータベースで確定
21.メール送信など確定後のロジックが実行

これでも一部端折っている部分があるので細かい部分が知りたい方はsalesforceのヘルプを確認してみてください。

developer.salesforce.com

まとめ


すべての順番を覚えて利用しようとすると難しいと思いますが、よく使うトリガなどの実行順序は意識しておくと便利だと思います!
トリガなどを正しく作ったはずなのに項目の更新がうまくいかない、どうしてだろう?って時は、この実行順序と見比べてみて、想定する実行順序と異なっていないか確認してみると原因解決につながるかもしれません!