crmprogrammer38の日記

主にDWHやSalesforceのプログラムメモです。

【Salesforce】ページレイアウトの関連リストに条件をつける。

Salesforceの標準ページレイアウトの関連リストは、参照可能なレコード全て表示されますが、条件に該当するレコードだけ表示したい時があります。

 

例えば、その顧客の仕掛中の商談だけ表示する、または、現在対応中のケースだけ表示するなどがあると思います。

 

現時点(APIバージョン39)では、ページレイアウトの関連リストに、条件を設定することはできないので次のように工夫することで対応できます。

 

関連リストに条件をつける方法

[手順概要]

参照関係、(もしくは主従関係)の項目に対応する参照関係項目をもう1つ用意します。

そして、表示する条件に合致した時に、トリガで用意した項目へ元の参照関係、および主従関係の項目の値をセットし、条件に合致しない時はnullをセットする処理を行います。

関連リストには用意した参照関係項目を使って表示します。

 

[手順詳細]

 例として、取引先と商談を使います。Salesforceの標準項目として、商談には、「取引先ID」があり、取引先への参照関係項目があります。

 

手順1.商談に、取引先への参照関係項目を作成します。仮に「取引先 ID(完了したものは除く)」項目とします。

 

手順2.商談にApexトリガを作成し、新規作成、更新時に、フェーズが"Closed Won" , "Closed Lost"以外のときに、「取引先ID」の値を、「取引先 ID(完了したものは除く)」にセットし、"Closed Won" , "Closed Lost"の時は、「取引先 ID(完了したものは除く)」にnullをセットします。

 

手順3.取引先のページレイアウトの関連リストに、取引先 ID(完了したものは除く)」の関連リストを表示します。(関連リストの表示ラベルを「商談 (完了したものは除く)」にします)

 

そうすると、次のように完了したもの以外で関連リストを表示できます。

(商談の関連リストは完了を含んでいて、商談(完了したものは除く)の関連リストは完了は除いています)

f:id:crmprogrammer38:20170405145126p:plain