[Salesforce]リードと取引先にまたがってユニークなコードを持たせ、検索やレポートで抽出する方法はありますか?
・リード
・取引先
上記2つのオブジェクトへ共通のコードを付与して検索をした際に、リード/取引先2つのオブジェクト情報を表示させる方法はありますでしょうか?
ご認識の通り、「リードだけ」「取引先だけ」でしたら、グローバル検索やレポートで容易に抽出が可能です。しかし「リードと取引先にまたがってユニークなコードを持たせ、検索やレポートで抽出する」となりますと、実現には少々アプリケーションの作りこみが必要となってまいります。
Apex トリガなどの開発メソッドを使わず、Salesforce の標準カスタマイズ機能のみで実現する例を以下に記しますので、ご参考にしていただきたく存じます。
1.リードと取引先にそれぞれカスタムテキスト項目「顧客コード」を作成します。
2.カスタムオブジェクト「顧客コード管理用」を作成します。
> 名前項目(Name 項目)は自動採番形式にします。
>「レポートの許可」には必ずチェックを入れます。
3. 「顧客コード管理用」オブジェクトに、リードと取引先への参照項目を作成します。
4. 「顧客コード管理用」オブジェクトに、リードと取引先の顧客コードを
そのまま引用するカスタム数式項目を作成します。
項目の参照名は、仮に AccountID (取引先の場合)LeadID(リードの
場合)とします。この参照名は 6. のワークフロー項目自動更新の
数式で使用します。
5. 「顧客コード管理用」オブジェクトに、カスタムテキスト項目
「リード&取引先顧客コード」を作成します。
> ユニーク(重複を許可しない)チェックをオンにしておきます。
これは「一意の顧客コードを持ったリードや取引先が存在する場合に、
同じコードでリードや取引先が新たに作られるの防ぐ」意味合いがあります。
6. ワークフロールールの機能を使用して、リードまたは取引先の顧客
コードを、カスタム項目「リード&取引先顧客コード」にコピーする
ロジックを作成します。
・ 評価条件:「レコードが作成または保存されたとき」
・ ルール条件:数式で "true" とだけ入力 (全レコードでワークフローが
動くようにする)
・ アクション:項目自動更新(「リード&取引先顧客コード」)
項目値:数式
IF (NOT( ISBLANK( AccountID__c ) ) , AccountID__c , LeadID__c )
(⇒ 取引先が指定されている場合は取引先の顧客コードを優先してコピー
するという意味です。)
7. リードレコードを作成した際に、レコード画面下部の「顧客コード管理用」
関連リストで、新規レコードを作成して、何も編集しないで保存します。
⇒ ワークフローが働いて、リードの顧客コードが、顧客コード管理用
レコードの「リード&取引先顧客コード」にコピーされます。
8. 同じように、取引先レコードを作成した際に、「顧客コード管理用」レコードを
作成し、そのまま保存することで、取引先顧客コードが、「リード&取引先顧客
コード」にコピーされます。
9. 「顧客コード管理用」オブジェクトのレポートを作成することで、リードと
取引先に共通して振られた顧客コードの一覧を参照することが出来ます。
なお、顧客コードが振られたリードについて「取引の開始」を行った場合、 取引開始時の項目の紐付けによって、リードの「顧客コード」を取引先に移行することはできますが、リードに関連づいた「顧客コード管理用」レコードは、移行先の取引先には自動で紐付け変更されませんので、手動で変更する必要があります。
併せて、リードや取引先が作成および編集されたタイミングで、「顧客コード管理用」レコードを「自動で」作成するロジックについては、標準機能では実現できず、Apex トリガという開発メソッドを組み合わせる必要がございます。
コメント