【Salesforce】複数選択項目を子オブジェクトに参照する方法

目次

はじめに

Salesforceでは、親オブジェクトの複数選択項目を、子オブジェクトでそのまま使うことができません。

標準機能だけで参照するのは難しく、「あれ?表示されない…」と戸惑う方も多いはずです。
しかし、これはSalesforceの仕様によるもので、回避方法を知っていれば対応することができます。

この記事では、数式項目を使用して、複数選択項目の値を子オブジェクトでも見られるようにする方法を紹介します。Salesforceにまだ慣れていない方にもわかりやすく解説していきます。ぜひ活用して見てくださいね。

課題:複数選択項目は参照できない?

冒頭で触れましたが、Salesforceでは複数選択リストの項目を他のオブジェクトでそのまま参照することができません。

たとえば、親オブジェクト(取引先など)に複数選択リストがあり、その項目を子オブジェクト(取引先責任者など)にも表示させたいとします。
しかし、単純に参照関係を作っても、複数選択リストの中身はそのままでは引き継げないのです。

これは、複数選択リストの値がセミコロン(;)で区切られた1つの文字列として保存されているためです。
Salesforceの仕組み上、これを子オブジェクトで直接扱うことができないのです。
せっかく入力した情報が活用されない、あるいは手作業で転記するしかないという課題が生まれてしまいます。

この問題を解決するには、少し工夫して「数式項目」を活用する必要があります。

解決策:数式項目で値を参照する

この制限を回避するために今回は、取引先責任者側で数式項目を作成し、INCLUDES関数を活用して参照元の複数選択リスト値を一つずつ評価し、該当する値を文字列として連結する方法をご紹介します。

実装手順

取引先オブジェクトの設定を確認

項目ラベル:提供サービス
項目名Services__c
:複数選択リスト(選択肢:コンサルティング、開発、保守)

取引先責任者オブジェクトに数式フィールドを作成

項目ラベル:提供サービス
項目名Services__c
:数式(テキスト)

数式の入力内容

IF(INCLUDES(Account.Services__c, “コンサルティング”), “コンサルティング; “, “”) +
IF(INCLUDES(Account.Services__c, “開発”), “開発; “, “”) +
IF(INCLUDES(Account.Services__c, “保守”), “保守; “, “”)

数式の実行結果

先程の数式を作成することで、親オブジェクトである取引先に設定された複数の提供サービスが、子オブジェクトの取引先責任者に連結して表示されます。実行すると以下の形で、画面に表示されます。

応用編

少し表示方法を工夫して、見え方を変更してみたいと思います。今度は以下の数式を反映します。

LEFT(
TRIM(
IF(INCLUDES(Account.Services__c, “コンサルティング”), “コンサルティング, “, “”) &
IF(INCLUDES(Account.Services__c, “開発”), “開発, “, “”) &
IF(INCLUDES(Account.Services__c, “保守”), “保守, “, “”)
),
LEN(
TRIM(
IF(INCLUDES(Account.Services__c, “コンサルティング”), “コンサルティング, “, “”) &
IF(INCLUDES(Account.Services__c, “開発”), “開発, “, “”) &
IF(INCLUDES(Account.Services__c, “保守”), “保守, “, “”)
)
) – 1
)

結果は以下の通りです。

取引先:

取引先責任者:

注意点とベストプラクティス

・表示順は数式内の記述順に依存します
・値の末尾にセミコロンが残るため、見た目の調整が必要なら応用編のように、他の関数を組み合わせてみましょう。
・値の追加や変更があった場合は、数式の更新も必要になります(メンテナンス性に注意)

まとめ

Salesforceでは、複数選択リストの参照に制限があるため、子オブジェクト側でその値を直接取得することはできません。
しかし、数式項目とINCLUDES関数を活用することで、親オブジェクトの選択内容を条件判定し、子オブジェクト側で適切に表示させることができます。実際の業務を行う中で、取引先の特性や提供サービスに応じて子オブジェクトの表示内容を変えたいケースは多く、今回の方法はそうした場面における実用的な解決策になります。
メンテナンス性や見た目にも配慮しながら、ビジネス要件に合った柔軟なデータ活用を実現しましょう。

ぜひ業務の中で活用してみてくださいね。それでは今回はここまでになります。また次回の記事をお楽しみに!

目次