取引先の所有者移行と商談の所有者移行の関係の検証を試してみました。
検証用のユーザとして下記の2つを用意しました。(どちらも管理者権限ユーザ)
ユーザA
ユーザB
検証用の取引先と商談はこちら。
Apexコードによる所有者移行
はじめにApexコードによる所有者の移行での検証です。開発者コンソールに下記のコードを実行して所有者を更新してみます。
// ユーザ取得 User userTypeA = [SELECT Id FROM User WHERE LastName = 'Yoshikawa']; // ユーザ取得 User userTypeB = [SELECT Id FROM User WHERE LastName = 'SF']; // 取引先取得 Account account = [SELECT Id FROM Account WHERE Name = '株式会社セールスフォース・ドットコム' LIMIT 1]; // アサインフラグ Boolean isAssignTypeA = true; // ここで切り替え // アサインフラグ判定 if (isAssignTypeA) { // 所有者指定 = Yoshikawa account.OwnerId = userTypeA.Id; } else { // 所有者指定 = Saasy account.OwnerId = userTypeB.Id; } // 取引先UPDATE update account;
Yoshikawa → Sassyへ移行
先程のコードで「isAssignTypeA = false;」と変更して処理を実行します。結果として取引先の所有者のみ更新されて商談は変更されないことを確認できました。
Sassy → Yoshikawaへ移行
もとに戻しても商談の所有者への影響はありません。
Apexでの取引先所有者更新は既存商談への影響はありませんでした。
標準機能での所有者更新 (オプションのチェックなし)
続いて標準機能での所有者更新です。標準の場合は下記のオプションが用意されています。今回はチェックなしで移行を行います。
- 他のユーザが所有する進行中の商談を移行
- 取引先所有者の完了した商談を移行
所有者をYoshikawaからSassyに変更してみました。
完了フラグがオンの商談は所有者そのままで、それ以外の商談の所有者は更新される結果となりました。
所有者をYoshikawaに戻して「取引先所有者の完了した商談を移行」にチェックをつけて更新します。
この場合は完了フラグがオンの商談も移行されました。
上記のとおり、システム管理者権限のユーザが所有者更新を行うと「他のユーザが所有する進行中の商談を移行」のチェックがオフでも進行中の商談の所有者は更新されました。
また、一般ユーザで所有者更新を行う場合、権限によっては「他のユーザが所有する進行中の商談を移行」自体が表示されません。
所有権の一括変更画面
こちらの画面でも所有者の更新が可能です。移行時のオプションも同じように用意されています。
取引先ページの所有者更新と同じくオプションにチェックをつけない場合は完了フラグがオフの商談所有者は更新されませんでした。
まとめ
今回一番確認したかったのは所有者の移行作業実施時にクローズされた過去の商談の所有者が更新されるかを確認したかったのが目的でした。標準機能はもちろん、Apexによる取引先の所有者更新は、クローズ後の商談には影響がないことを確認しました。またApexの場合は進行中の商談所有者への影響もありません。
管理者ユーザの場合のみだと思いますが、「他のユーザが所有する進行中の商談を移行」はあまり意味がなく移行されたのはちょっと気づけてよかったかもしれません。
取引先の所有者移行と商談の所有者移行の関係の検証はこんな感じでした。