類似の取引先を一つにマージする標準機能「取引先のマージ」についてです。
取引先タブ画面の右下にあるツールのリンクから使用できます。
取引先名で対象の取引先を検索します。
検索後マージしたい取引先を2件または3件まで選択できます。
検索は%をつかったあいまい検索も可能みたいです。
対象を選択後、次へボタンでどの項目を残すか選択する画面が表示されます。
選択後、マージボタンをクリックすると確認メッセージが表示されます。
一度マージすると元に戻すことはできないので注意が必要です。
ここでOKボタンをクリックするとマージが実行されます。
取引先マージの基本的な使い方は以上です。
検証:関連レコードの扱い
取引先をマージした際にそれぞれの取引先に紐付く取引先責任者がどうなるか検証してみました。
取引先責任者①
取引先責任者②
取引先をマージします。
マージ後の取引先にそれぞれの取引先責任者が紐付いていることが確認できました。
マージ後に紐付き先が変更された取引先責任者のみ更新されるみたいです。
今回は取引先責任者のみで検証しましたがその他の関連レコードも同様に移行されると思います。
検証:取引先マージとApexトリガー
取引先のマージを実行したときにApexトリガーがどのように動作するか検証してみました。検証用コードはこんな感じです。
取引先と取引先責任者が更新されるようにマージした際に取引先トリガーと取引先責任者トリガーどのように実行されるか確認してみました。
実行結果のログです。
取引先のDELETEトリガーとUPDATEトリガーが実行されることが確認できました。
DELETEトリガー
マージによって削除された取引先によって実行されているみたいです。
UPDATEトリガー
マージ後に残った方の取引先によって実行されています。Trigger.newとTrigger.oldは両方とも残った取引先レコードがセットされていました。
このマージによって取引先責任者も更新されているのですがトリガーは実行されませんでした。取引先のマージでトリガーが実行されるのは取引先のみのようです。