この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Newer Version Available

This content describes an older version of this product. View Latest

トリガと Merge ステートメント

マージイベントでは、独自のトリガイベントは実行されません。その代わりに、delete イベントと update イベントが実行されます。
無効となるレコードの削除
1 回のマージ操作により、そのマージ削除されるすべてのレコードに対して 1 つの delete イベントが実行されます。マージ操作の結果として削除されたレコードを判別するには、Trigger.oldMasterRecordId 項目を使用します。マージ操作によりレコード削除されると、そのレコードの MasterRecordId 項目には、保持されるレコードの ID が設定されます。MasterRecordId 項目は after delete トリガイベントでのみ設定されます。アプリケーションで、マージの結果削除されたレコードに特別な処理が必要な場合、after delete トリガイベントを使用する必要があります。
保持されるレコードの更新
1 回のマージ操作により、保持されるレコードに対してのみ 1 つの更新イベントが実行されます。マージ操作の結果、親が変更される子レコードではトリガは実行されません。

たとえば、2 人の取引先責任者がマージされる場合、取引先責任者の削除トリガと更新トリガのみが実行されます。取引先責任者に関連する取引先や商談などのレコードのトリガは実行されません。

マージが行われる場合、次の順にイベントが発生します。
  1. before delete トリガが実行されます。
  2. マージによって無効となるレコードが削除され、新しい親レコードが子レコードに割り当てられ、削除されたレコードの MasterRecordId 項目が設定されます。
  3. after delete トリガが実行されます。
  4. マスタレコードに必要な特定の更新を実行します。通常の更新トリガが適用されます。