tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:取引先のマージについて

類似の取引先を一つにマージする標準機能「取引先のマージ」についてです。
取引先タブ画面の右下にあるツールのリンクから使用できます。

f:id:tyoshikawa1106:20130915155229p:plain


取引先名で対象の取引先を検索します。

f:id:tyoshikawa1106:20130915155249p:plain


検索後マージしたい取引先を2件または3件まで選択できます。

f:id:tyoshikawa1106:20130915155524p:plain


検索は%をつかったあいまい検索も可能みたいです。

f:id:tyoshikawa1106:20130915155546p:plain


対象を選択後、次へボタンでどの項目を残すか選択する画面が表示されます。

f:id:tyoshikawa1106:20130915155822p:plain


選択後、マージボタンをクリックすると確認メッセージが表示されます。

f:id:tyoshikawa1106:20130915155854p:plain

一度マージすると元に戻すことはできないので注意が必要です。
ここでOKボタンをクリックするとマージが実行されます。

取引先マージの基本的な使い方は以上です。

検証:関連レコードの扱い

取引先をマージした際にそれぞれの取引先に紐付く取引先責任者がどうなるか検証してみました。

取引先責任者①
f:id:tyoshikawa1106:20130915163822p:plain

取引先責任者②
f:id:tyoshikawa1106:20130915163835p:plain

取引先をマージします。
f:id:tyoshikawa1106:20130915164209p:plain

マージ後の取引先にそれぞれの取引先責任者が紐付いていることが確認できました。
f:id:tyoshikawa1106:20130915164546p:plain

マージ後に紐付き先が変更された取引先責任者のみ更新されるみたいです。
f:id:tyoshikawa1106:20130915164619p:plain

今回は取引先責任者のみで検証しましたがその他の関連レコードも同様に移行されると思います。

検証:取引先マージとApexトリガー

取引先のマージを実行したときにApexトリガーがどのように動作するか検証してみました。検証用コードはこんな感じです。

取引先と取引先責任者が更新されるようにマージした際に取引先トリガーと取引先責任者トリガーどのように実行されるか確認してみました。


実行結果のログです。
f:id:tyoshikawa1106:20130915165848p:plain


取引先のDELETEトリガーとUPDATEトリガーが実行されることが確認できました。

DELETEトリガー

マージによって削除された取引先によって実行されているみたいです。

UPDATEトリガー

マージ後に残った方の取引先によって実行されています。Trigger.newとTrigger.oldは両方とも残った取引先レコードがセットされていました。


このマージによって取引先責任者も更新されているのですがトリガーは実行されませんでした。取引先のマージでトリガーが実行されるのは取引先のみのようです。