Quip終了に伴うデータエクスポートでお困りの方へ

フローの中で選択リストの値を使用する方法

入力値を制限できる選択リストはSalesforceの便利な機能の1つですが、フローの中で使用する際は「PicklistValueInfo」というオブジェクトから取得する必要があります。

本記事では、選択リストの情報がどのように格納されているか、フローの中でどのように使用するかご紹介します。

目次

フローの中で選択リスト項目を変数に割り当てるとどうなるのか?

フローの中で「割り当て」要素で、選択リスト型の項目を変数値に設定すると、どうなるかご存じですか?

結論、該当項目で選択したリストの値ではなく、選択したリストのAPIが変数に設定されます。

以下の場合、選択リストの値ではなくAPIが割当てられる

選択リストの値ではなくAPIが割当てられる

そのため、レコードの選択リスト項目で指定した値をフローの中で使う場合は、選択リスト値の情報が格納されているPicklistValueInfoを活用する必要があります。

PicklistValueInfoとは

次にPicklistValueInfoについてご説明します。

PicklistValueInfoは、直訳すると「選択リスト値情報」ですね。その名の通り、Salesforce内で選択リストの情報を格納しているオブジェクトです。

例えば、取引先オブジェクトに「業界」という選択リスト型の項目があり、そのリスト値の1つに「IT」という値があるとします。この場合、「IT」という1つの選択リスト値に対して1つのレコードが存在します。

そのためフローの中で選択リストの値を取得する際は、どのオブジェクトのどの項目のどの値なのか指定する必要があります。

続いてPicklistValueInfoのレコードを取得するために必要なデータを2つご紹介します。

  1. エンティティパーティクル
    エンティティパーティクルは項目の定義に関するメタデータを格納しているオブジェクトです。
    1つの項目につき1レコードが保存されているので、エンティティパーティクルから全オブジェクトにおける項目特有のID値を取得できます。フローでは、PicklistValueInfoのレコードを絞り込むために使います。
  2. エンティティ定義
    エンティティ定義はオブジェクトなどの定義に関するメタデータが格納されているオブジェクトです。
    1つのオブジェクトに対し、1レコードが保存されています。エンティティ定義からオブジェクト特有のID値を取得することで、エンティティパーティクルのレコードをオブジェクトごとに絞り込むことができます。

実際にフローを作ってみた

ここまで記載した内容を踏まえてフローを作りました。

取引先オブジェクトの選択リスト型の項目Aで選択した値を、他の項目に割り当てます。

(通常は数式項目の方が適していますが、今回はフローで実装します。)

全体の流れは以下のようになります。(検索条件が複数ある場合はすべてANDです)

  1. レコードで選択した選択リスト型項目Aの値を変数Pに設定(選択リスト値のAPIが選択リストに格納される)
  2. エンティティ定義から、取引先オブジェクトを示すレコードを取得
    1. 検索条件①:QualifiedApiName = “取引先オブジェクトのAPI”
  3. エンティティパーティクルから、項目Aを示すレコードを取得
    1. 検索条件①:QualifiedApiName = “項目AのAPI”
    2.  検索条件②:EntityDefinitionId = Get.エンティティ定義.DurableId
  4. PicklistValueInfoから、項目Aで選択した選択リスト値を取得
    1. 検索条件①:EntityParticleId = Get.エンティティパーティクル..DurableId
    2. 検索条件②:Value = “変数P”
  5. テキスト項目Bに“Get.PicklistValueInfo.Label”を割り当てる

以下が実際に作成した画面です。

レコードトリガーフロー
Salesforce一体型の名刺管理「SmartVisca」

Salesforce一体型の名刺管理「SmartVisca」

SmartViscaはSalesforce上に構築されているので、取り込んだ名刺をそのまま取引先・取引先責任者・リードに登録。ツールの二重管理や同期の待ち時間も発生しません。
もちろん、Salesforceへの連携費用は一切かかりません。

SlackやTeamsからの名刺取り込みも可能です。Salesforceのライセンスがない方もどなたでもご利用いただけます。

最後に

いかがだったでしょうか。本記事では、選択リストの値をフローで使用する方法をご紹介しました。

Salesforceの開発は、選択リストのようにユーザーには見えない裏側のデータ構造への理解が必要な場合があります。

Salesforceの開発で悩んだときは、インターネットで他の方が既に質問していることが多いので、どんどん検索するようにしましょう。

本記事が、Salesforceの開発業務をしている方々の参考になれば幸いです。

それ、サンブリッジなら解決できます!
Salesforceで解決するビジネス課題

サンブリッジがこれまでにご支援してきたSalesforce構築・実装において、お客様の課題がどのように解決したのかを実際の事例やお客様からの評価などを全16ページにまとめました。

サービス・ソリューションに関するお問い合わせ

Salesforce・AWSなど、ご支援に関してご不明な点やご相談はこちらからお問い合わせください。

貴社のビジネス課題を発見し、解決にむけてコンサルタントがご提案いたします。

この記事を書いた人

2024年にサンブリッジに新卒で入社し、Salesforceの導入支援・改修に従事しています。
私がこれまでの業務で直面した「Salesforceの実装でリアルに困るポイント」とその解決策を中心に、エンジニア・管理者目線での実践的なノウハウを発信していきます。

<保有資格>
Salesforce 認定 Platform デベロッパー
Salesforce 認定 Sales Cloud コンサルタント

目次