標準オブジェクトの『取引先』『取引先責任者』『リード』『商談』には、標準項目としてリードソース項目が用意されています。これは少し特殊な項目となっています。
[取引先] 取引先ソース (AccountSource)
[取引先責任者] リードソース (LeadSource)
[リード] リードソース (LeadSource)
[商談] リードソース (LeadSource)
これらの選択リストは共通の値が適用されます。なので次のようにリスト値を変更すると・・・
他オブジェクトのリスト値も自動で変更されます。
項目のリスト値は共通ですが、レコードの値は独立しています。そのため取引先レコードのリードソースの値が取引先責任者レコードのレコードソースの値に自動でセットされたりというようなことはありません。
リードソースとレコードタイプ
レコードタイプにはそれぞれのレコードタイプ毎に使用できる選択リスト値を設定できます。ここについても確認してみました。まずそれぞれのオブジェクトに新しいレコードタイプを追加する場合は特に意識することはありません。
注意が必要なのはレコードタイプ設定後に、リードソース項目に新しいリスト値を追加した場合です。この対応を行う場合はどのレコードタイプで利用できるようにするか手動で選択する必要があります。
既存レコードのリスト値とレコードタイプのリスト値制限
レコードタイプで選択リストを制限できますが、作成済みのレコードがレコードタイプ変更時に既にセットされている値はどうなるか確認してみました。
既に利用されている値はそのまま利用できるようになっています。
一度値を変更すると、指定不可の値は利用できなくなります。
レコードタイプでリスト値制限を追加しても既存レコードの値はそのままになることは覚えておくといいと思います。
レコードタイプ設定とリスト値の削除
リードソース項目のリスト値を削除する場合の動作についてです。このように既に利用されているリスト値を削除してみます。
共通のリスト値なので一つのオブジェクトで削除されれば他もまとめて反映されます。
選択リストのリスト値削除を行う場合まとめて別の値に置換できる仕組みが用意されています。
これで取引先や商談などのリードソース項目の値をまとめて置換できました。
この置換処理はレコードタイプのリスト値制限に関係なく実行できます。置換後の値で「なし」を選択した場合は削除されたりせずに元の値のまま残すことができるみたいです。
おまけ
選択リスト値削除による置換処理ですが、非同期で実行され実行後に完了メールが届きます。
実行状況は設定のバックグラウンドジョブで確認できます。
たしか...の話ですがこの置換処理によるApexトリガの実行はありませんでした。