Flexcard の内部データを結合する
学習の目的
この単元を完了すると、次のことができるようになります。
- 管理パッケージ用 Omnistudio の Flexcard のデータソースについて説明する。
- JSON ノードとサブノードについて説明する。
- JSON 出力で複数のノードを使用した構築を行う。
Flexcard のデータソース
ほとんどの場合、Flexcard も Omniscript と同じ方法で Omnistudio のデータツールと連動させることができます。さらに、Integration Procedure や Data Mapper は Omnistudio の複数のコンポーネントに接続することが可能です。この単元では、こうした Omnistudio のデータツールで 2 つ以上の Flexcard のデータを結合させる方法を紹介します。
以下は Account Flexcard で、取引先の名前、主取引先責任者、電話番号、Web サイト、郵便番号が表示されています。
次は Contact Flexcard で、取引先の取引先責任者の名前、メールアドレス、電話番号が表示されています。
1 つの Integration Procedure を使用して、この 2 つの Flexcard のデータを取得するにはどうすればよいでしょうか?
では、Flexcard で使用できるデータソースから見ていきましょう。Flexcard には数通りのデータ入力オプションがあります。データの入力におけるベストプラクティスは Integration Procedure を使用することです。Integration Procedure ではデータの設定が Flexcard の設定と区別されているためです。詳細は、「管理パッケージ用 Omnistudio の Integration Procedure」モジュールを参照してください。
ただし、データソースとして Integration Procedure の使用が推奨されないシナリオがいくつかあります。
データソース |
このデータソースを使用する状況 |
---|---|
ストリーミング API |
データの変更時の自動更新 |
Salesforce Object Search Language (SOSL) |
Salesforce オブジェクト全体のテキスト項目の検索 |
サンプル |
静的データの表示またはテスト |
取引先ベースの Flexcard がコンソールに表示されると、取引先の RecordId が {recordId} という変数で Flexcard に渡されます。ユーザーがこの ID を AccountId という変数で Integration Procedure に渡します。上記の変数名はすべて任意ですが、データを適切にフローさせるためには変数名が一致している必要があります。
Integration Procedure から Data Mapper Extract に AccountId が渡されます。すると、Data Mapper Extract がこの AccountId を使用して一意の Salesforce レコードを識別し、一連の SOQL (Salesforce Object Query Language) クエリで Salesforce にデータを要求します。このクエリで AccountId と、取引先レコードの他の項目や関連付けられている取引先責任者レコードの他の項目が返されます。
Data Mapper がデータを対応付けて Integration Procedure に返し、Integration Procedure がそのデータを元の Flexcard に渡します。この JSON が Flexcard と子 Flexcard (ある場合) に入力され、コンソールでエンドユーザーにこのデータが表示されます。
JSON ノードとサブノードとは?
JSON のデータはノード (と場合によってはサブノード) に分割されます。
この JSON データには、取引先データ (1) と取引先責任者データ (2) という 2 つのノードがあります。各ノードは、コロン (:
) と中括弧 ({ }
) で区切られます。さらに、取引先責任者ノードには、取引先責任者の各人に対応する 2 つのサブノード (3) があります。サブノードごとに中括弧で囲まれています。
複数の Flexcard の使用を最も効果的にサポートする JSON の構造は、各 Flexcard に親ノードを使用するものです。Result JSON Path を絞り込むと、データがトリミングされ、関連性の高いデータのみが Flexcard に取り込まれます。
JSON 出力で複数ノードを使用して構築する
Flexcard のデータソースや JSON ノードとサブノードについて詳しく説明しました。次は、複数のノードを使用して構築する必要がある Data Mapper Extract の例を見ていきましょう。
Data Mapper の抽出では別の手順のデータを参照するため、この順序で実行することが重要です。この Data Mapper の [Extract (抽出)] タブで、次の手順を実行します。
- 取引先データを取得します。
- この取引先に関連する取引先責任者データを取得します。
- 取引先の特定の項目 (この例では [Primary Contact (主取引先責任者)] 項目) を使用して絞り込みます。Data Mapper では、前の抽出ステップで使用したオブジェクトの検索条件を使用できます。
[Output (出力)] タブで、取引先オブジェクトと取引先責任者オブジェクトと両方の Extract Step JSON から Output JSON への対応付けを作成します。
サブノードを作成する場合は、Output JSON Path を対応付けるときにコロンを使用します。たとえば、Account:AccountName
と Account:AccountWebsite
から、AccountName 項目と AccountWebsite 項目をリストする取引先ノードが作成されます。
次に、Integration Procedure の設定方法を見ていきましょう。
Integration Procedure を作成するときは、Data Mapper Extract Action (1) を [Structure (構造)] パネルに追加します。[Data Mapper Interface (Data Mapper インターフェース)] 項目 (2) を使用して、Integration Procedure と Data Mapper を結び付けます。
この Integration Procedure を Account Flexcard と Contact Flexcard のデータソースに設定すると、1 つの Integration Procedure で Account Flexcard と Contact Flexcard の両方のデータが取得されます。
これで、Omnistudio のデータツールで内部データを処理する方法を習得することができました。こうしたツールで外部ソースのデータを処理する方法を学習したい方は、「Omnistudio のデータツールと外部データ」モジュールに進んでください。
リソース
- Salesforce ヘルプ: Flexcard で Integration Procedure のデータソースを設定する (管理パッケージ用 Omnistudio)
- Trailhead: 管理パッケージ用 Omnistudio の Flexcard
- Salesforce ヘルプ: Omnistudio Data Mapper
- Salesforce ヘルプ: Omnistudio Integration Procedure
- Trailhead: Omnistudio のデータツールと外部データ