2016-07-08 7 views

答えて

0

あなたは、挿入、更新、またはUPSERT文でレコードを保存すると、Salesforceは順番に次のイベントを行います。

  1. は、データベースから元のレコードをロードまたはUPSERT文のレコードを初期化します。
  2. 要求から新しいレコードフィールド値をロードし、古い値を上書きします。有効なレイアウト固有のルール
  3. 必要なレイアウトレベルでの値とフィールド定義レベル
    • コンプライアンス:要求が標準UI編集ページから来た場合、Salesforceはのレコードをチェックするために、システムの検証を実行しますフィールドフォーマット
    • 最大フィールド長

要求は、アペックス・アプリケーションまたはSOAP APのような他のソースから来ていますSalesforceは外部キーのみを検証します。トリガを実行する前に、Salesforceはカスタム外部キーがオブジェクト自体を参照していないことを確認します。

複数行アイテムが作成されている場合(たとえば、見積もりラインアイテムや案件のラインアイテムなど)、Salesforceはユーザ定義の検証ルールを実行します。

  1. beforeトリガをすべて実行します。
  2. すべての必須フィールドにnull以外の値があることを確認するなど、ほとんどのシステム検証手順を再実行し、ユーザー定義の検証規則を実行します。 Salesforceがもう一度実行しないシステム検証(標準UI編集ページからの要求の場合)は、レイアウト固有のルールの適用のみです。
  3. 重複ルールを実行します。重複ルールがレコードを重複として識別し、ブロックアクションを使用する場合、レコードは保存されず、アフタートリガーやワークフロールールなどのそれ以上のステップは実行されません。
  4. レコードをデータベースに保存しますが、まだコミットしません。
  5. すべてのアフタートリガーを実行します。
  6. 割り当てルールを実行します。
  7. 自動応答ルールを実行します。
  8. ワークフロールールを実行します。
  9. ワークフローフィールドの更新がある場合は、レコードを再度更新します。
  10. レコードがワークフローフィールドの更新で更新された場合、標準の検証に加えて、更新トリガおよび更新後のトリガがもう1回(1回以上)起動します。カスタム検証ルール、重複ルール、およびエスカレーションルールは再度実行されません。
  11. プロセスを実行します。

ワークフローフロートリガがある場合は、フローを実行します。

プロセスビルダは、以前はパイロットプログラムで利用可能なフロートリガワークフローアクションに取って代わりました。フロートリガワークフローアクションを使用している組織は、引き続き作成および編集できますが、フロートリガワークフローアクションは新しい組織では使用できません。

  1. エスカレーションルールを実行します。
  2. 資格ルールを実行します。
  3. レコードにロールアップサマリーフィールドが含まれている場合、またはクロスオブジェクトワークフローの一部である場合は、計算が実行され、親レコードのロールアップサマリーフィールドが更新されます。親レコードは、プロシージャの保存を行います。
  4. 親レコードが更新され、祖父母レコードにロールアップサマリーフィールドが含まれている場合、またはクロスオブジェクトワークフローの一部である場合は、祖父母レコードのロールアップサマリーフィールドの計算と更新が行われます。祖父母レコードは保存手順を経る。
  5. 条件ベースの共有評価を実行します。
  6. すべてのDML操作をデータベースにコミットします。
  7. 電子メールの送信など、コミット後のロジックを実行します。

詳細はSalesforce documentationを参照してください。

0

ワークフローフィールドの更新によって、実際には挿入操作が完了した後に新しい更新操作が実行されます。

ので、その場合の実行順序はこのようなものになるだろう:更新後に更新トリガー

  • 前に挿入トリガー
  • ワークフローフィールド更新
  • 後に挿入トリガー
    • トリガー
  • 1

    リコrdはtrigger.newの一部です。afterトリガーでレコードを変更/更新しようとすると、ロックされて例外がスローされます。 の実行が成功に

    トリガー後にレコードがロック解除で、ワークフロールールとトリガ後の最初の実行後に実行されます。 ワークフローフィールドの更新はレコードにロックがないためレコードを変更できます。

    希望、あなたの疑惑をクリアします! :)

    +1

    レコードとワークフローを挿入している場合評価基準は「レコードが作成されると」なので、レコードの更新方法は? –

    +1

    @NileshBorse、レコードが更新されない、w/fフィールド更新ルールはレコード挿入の同じフローでフィールド値を割り当て/変更します。 –

    関連する問題