salesforce.com‎ > ‎code‎ > ‎

トリガと実行の順序

2013/03/23 15:03 に Makoto Fukasu が投稿   [ 2013/03/23 15:03 に更新しました ]
  1. 元のレコードがデータベースから読み込まれるか、upsert ステートメント用にレコードが初期設定されます。
  2. 要求から新しいレコード項目の値が読み込まれ、古い値を上書きします。要求が標準 UI 編集ページから行われた場合、Salesforce はシステム検証を実行して、レコードについて次の点を確認します。
    •  レイアウト固有のルールへの準拠
    •  レイアウトレベルおよび項目定義レベルで必要な値
    •  有効な項目形式
    •  最大項目サイズ
    1. Salesforce は、要求がApex アプリケーションやSOAP APIコールなどの他のソースから送信されている場合、このステップでシステム検証を実行しません。
  3. すべてのbefore トリガが実行されます。
  4. すべての必須項目にnull 以外の値が入力されていることの確認や、ユーザ定義の入力規則の実行など、システム検証のほとんどの手順がもう一度実行されます。Salesforce が標準 UI + 編集ページから要求が行われた場合に再度実行しない唯一のシステム検証は、レイアウト固有のルールの適用です。
  5. レコードはデータベースに保存されますが、まだ確定されません。
  6. すべてのafter トリガが実行されます。
  7. 割り当てルールが実行されます。
  8. 自動応答ルールが実行されます。
  9. ワークフロールールが実行されます。
  10. ワークフロー項目自動更新が存在する場合、レコードが再度更新されます。
  11. レコードがワークフロー項目自動更新により更新された場合、標準検証のほかに、beforeトリガおよびafterトリガがもう一度だけ実行されます。カスタム検証ルールは実行されません。
  12. エスカレーションルールが実行されます。
  13. レコードに積み上げ集計項目が含まれる場合、またはレコードがクロスオブジェクトワークフローの一部である場合、計算が実行され、親レコードの積み上げ集計項目が更新されます。親レコードに対して保存手順が実行されます。
  14. 親レコードが更新され、さらにその親レコードに積み上げ集計項目が含まれるか、その親レコードがクロスオブジェクトワークフローの一部である場合、計算が実行され、親レコードの積み上げ集計項目が更新されます。親レコードのさらに親レコードに対して保存手順が実行されます。
  15. 条件に基づく共有の評価が実行されます。
  16. すべての DML 操作がデータベースで確定されます。
  17. メール送信など、確定後のロジックが実行されます。
Comments