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(完了したものは除く)」の関連リストを表示します。(関連リストの表示ラベルを「商談 (完了したものは除く)」にします)
そうすると、次のように完了したもの以外で関連リストを表示できます。
(商談の関連リストは完了を含んでいて、商談(完了したものは除く)の関連リストは完了は除いています)