tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:自動化ルールやApex トリガーなどの実行順序

いつも忘れるのでメモ。
f:id:tyoshikawa1106:20160326205213p:plain

Salesforce Developers

  1. 古いレコードをデータベースからロード(または、新しい挿入の初期化)
  2. 新しいレコードの値で古い値を上書き
  3. システムの入力規則(商談商品を挿入する場合、システムの入力規則に加えてカスタム入力規則が実行されます)
  4. すべての before トリガを実行(EE / UE のみ)
  5. カスタム入力規則
  6. レコードをデータベースに保存(しかし、コミットされていない)
  7. レコードをデータベースから再ロード
  8. すべての after トリガを実行(EE / UE のみ)
  9. 割り当てルール
  10. 自動応答ルール
  11. ワークフロールール
  12. プロセス
  13. エスカレーション ルール
  14. 積み上げ集計数式の値の更新(存在する場合)
  15. データベースのコミット
  16. コミット後のロジック(メールの送信)

意識すること

ワークフロー項目自動更新でレコードが更新された場合、標準の入力規則に加えて、before update トリガおよび after update トリガがもう一度 (さらに 1 回のみ) 実行されます。カスタム入力規則、重複ルール、およびエスカレーションルールは再実行されません。


入力規則→トリガ→ワークフローの順番。


割り当てルールや自動応答ルールもワークフローの前に実行されるので、ワークフロールールはほぼ最後。ただし、以下の内容はワークフロールールの後に実行される。

  • エスカレーションルール
  • エンタイトルメントルール
  • 積み上げ集計項目が更新
  • クロスオブジェクトワークフローの実行