チュートリアル: カスタム連絡先ファセットの作成

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore Experience Platformでは、コンタクト ファセットを使用してコンタクトのデータを保存します。このチュートリアルでは、カスタム連絡先ファセットを作成するプロセスと、Salesforce CRMからのデータをファセットに入力するための同期プロセスを設定するプロセスについて説明します。

この例では、取引先担当者が関連付けられている取引先企業の名前を格納するカスタム取引先担当者ファセットを作成します。従う必要がある手順は次のとおりです。

Visual Studioプロジェクトを作成する

コンタクトにカスタムデータを保存するには、コンタクトファセットが必要です。コンタクトファセットはコードで実装されます。カスタム連絡先ファセットを実装する前に、Visual Studioプロジェクトが必要です。

  1. Visual Studioで、次のプロジェクトを作成します。

    プロジェクトの種類

    クラス ライブラリ (.NET Framework)

    .NETバージョン

    .NET Framework 4.6.2 (英語)

    プロジェクト名

    Examples.Connect.Salesforce (英語)

  2. 次のNuGetパッケージへの参照を追加します。

    • Sitecore.DataExchange.Tools.SalesforceConnect.NoReferences

    • Sitecore.XConnect.NoReferences

メモ

Sitecoreの公開NuGetフィードはhttps://nuget.sitecore.com/resources/v3/index.jsonで入手できます。

コンタクトファセットを実装する

各Salesforceの取引先責任者は、取引先に関連付けられています。取引先担当者に取引先企業名を保存するには、取引先担当者ファセットが必要です。

  • Visual Studioで、次のクラスを追加します。

    using Sitecore.XConnect;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Examples.Connect.Salesforce
    {
        [FacetKey(DefaultFacetKey)]
        [Serializable]
        public class SalesforceAccountInformationFacet : Facet
        {
            public const string DefaultFacetKey = "SalesforceAccount";
            public string AccountName { get; set; }
            public SalesforceAccountInformationFacet()
            {
            }
        }
    }

コレクション モデルを実装する

xConnectでは、コレクション モデルによって、使用可能なコンタクト ファセットが定義されます。カスタムコンタクトファセットにデータを保存する前に、カスタムコンタクトファセットを含むコレクションモデルが必要です。

  • Visual Studioで、次のクラスを追加します。

    using Sitecore.DataExchange.Tools.SalesforceConnect.Models;
    using Sitecore.XConnect;
    using Sitecore.XConnect.Schema;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Examples.Connect.Salesforce
    {
        public class SalesforceConnectCollectionModelEx
        {
            public SalesforceConnectCollectionModelEx()
            {
            }
            static SalesforceConnectCollectionModelEx()
            {
                _model = BuildModel();
            }
            private static XdbModel _model = null;
            public static XdbModel Model { get { return _model; } }
            private static XdbModel BuildModel()
            {
                var builder = new XdbModelBuilder(typeof(SalesforceConnectCollectionModelEx).FullName, new XdbModelVersion(1, 0));
                builder.DefineFacet<Contact, SalesforceAccountInformationFacet>(SalesforceAccountInformationFacet.DefaultFacetKey);
                builder.ReferenceModel(SalesforceConnectCollectionModel.Model);
                return builder.BuildModel();
            }
        }
    }

コレクション モデルを登録する

カスタムコレクションモデルは、使用する前に登録する必要があります。これには、いくつかのSitecoreサーバー ロールのコンポーネントと設定の更新が含まれます。

カスタムコンポーネントのデプロイ

カスタムのコンタクト ファセットとコレクション モデルを含むアセンブリは、Sitecoreサーバーにデプロイする必要があります。

  1. Visual Studioプロジェクトをビルドします。

  2. Examples.Connect.Salesforce.dllをSitecoreサーバーにコピーします。

コレクション モデル定義を追加する

コレクション モデルはSitecore内で定義する必要があります。

手記

カスタムデータプロバイダは、コレクションモデルで定義されたファセットを公開します。これにより、利用可能なものをユーザーに表示し、ユーザーが誤って無効な値を入力する変更を減らすことで、xConnectエンティティを含むデータ マッピングを簡単に構成できます。

  1. Sitecoreのコンテンツ エディターで、Sitecore/System/Settings/Data Exchange/Providers/xConnect/Collection Modelsに移動します。

  2. 次の項目を追加します。

    Template

    コレクションモデルフォルダ

    Item name

    カスタムモデル

  3. 新しいアイテムに、次のアイテムを追加します。

    Template

    コンパイルされたコレクションモデル

    Item name

    Salesforceのカスタム収集モデル

  4. 新しい項目のContentタブのSettingsセクションで、次のフィールド値を設定します。

    価値

    Collection Model Type

    examples.connect.Salesforce.SalesforceConnectCollectionModelEx、examples.connect.Salesforce

  5. アイテムを保存します。

コレクション モデルのデプロイと変換

カスタム データをxConnectに送信する前に、コレクション モデルをxConnectにデプロイする必要があります。これは、コレクションモデルを記述するJSONファイルをコピーすることによって実現されます。

  1. カスタムコレクションモデルに移動します。リボンのConvert Model to Itemsをクリックします。次に、「 Convert Model to JSON」をクリックします。

    Convert model to JSON button
  2. モデルファイルを保存します。

  3. モデルファイルを次のサーバーにデプロイします。

    • xConnectコレクション

    • xConnectインデックス作成

xConnectクライアント エンドポイントの設定

xConnectに接続するには、コレクション モデルを指定する必要があります。これにより、xConnectとxConnectクライアントは、互いに何を期待すべきかを正確に把握できます。

  1. コンテンツ エディターで、Sitecore/System/Data Exchangeに移動します。

  2. テナントを選択します。

    Tenant selected in content tree
  3. Endpoints/Providers/xConnect/xConnect Client Endpointに移動します。

    xConnect client endpoint in content tree
  4. ContentタブのCollection Serviceセクションで、次のフィールド値を設定します。

    価値

    Collection Model

    Collection Models/Custom Models/Custom Collection Model for Salesforce

  5. アイテムを保存します。

構成をテストする

設定をテストすると、コレクション モデルがデプロイされ、xConnectクライアント エンドポイントが適切に設定されていることを確認できます。

  • リボンのRun Troubleshooterをクリックします。

    Run Troubleshooter button

xConnectコレクション サービスへの接続が確立されたことを知らせるメッセージが表示されます。

Connection successfully established message

Salesforceの連絡先からの読み取り方法を指定します

テナントは、Salesforceから読み取られるデータの構造を理解するように構成する必要があります。このセクションでは、この情報を組み込むためにテナントを更新する方法について説明します。

取引先担当者の取引先企業の値アクセサを追加する

値アクセサは、取引先がSalesforceの取引先責任者のプロパティであることを表すために使用されます。この値アクセサーには、次の2つの目的があります。

  • Salesforceから取引先責任者を読み取るときは、取引先責任者の取引先を含めるようにSalesforceに指示する必要があります。値アクセサ セット内の値アクセサは、連絡先オブジェクトのどのフィールドを読み取るかを決定するために使用されます。値アクセサを追加すると、Salesforceから追加のフィールドを読み取るように指定できます。

  • SalesforceからSitecoreへのデータのマッピングを設定するときは、valueアクセサーを使用して、Salesforceの連絡先から読み取る値を指定します。

取引先責任者の取引先に値アクセサを追加するには:

  1. コンテンツ エディターで、Sitecore/System/Data Exchangeに移動します。

  2. テナントを選択します。

  3. Data Access/Value Accessor Sets/Providers/Salesforce/Salesforce Contact Fieldsに移動します。

    Salesforce contact provider in content tree
  4. 次の項目を追加します。

    テンプレート

    Salesforceオブジェクト フィールド値アクセサ

    アイテム名

    Salesforce取引先責任者のアカウント

  5. 新しい項目のContentタブのFieldセクションで、次のフィールド値を設定します。

    価値

    フィールド名

    Account

    選択のフィールド名

    Account.Name 

  6. アイテムを保存します。

アカウントの名前の値アクセサを追加する

Salesforceでは、取引先責任者の読み取り時に取引先名を含めるように指定すると、Salesforceは取引先オブジェクトを返します。この取引先オブジェクトには、取引先名を表す項目があります。値アクセサは、アカウントオブジェクトの名前を読み取るために必要です。この値アクセサーが直接使用されることはありません。これは、次の手順で作成する値リーダーが使用できるように作成されます。

  1. コンテンツ エディターで、Data Access/Value Accessor Sets/Providers/Salesforceに移動します。

    Salesforce provider in content tree
  2. 次の項目を追加します。

    テンプレート

    Salesforceオブジェクト値アクセサセット

    アイテム名

    Salesforceアカウント フィールド

  3. 新しいアイテムに、次のアイテムを追加します。

    テンプレート

    Salesforceオブジェクト フィールド値アクセサ

    アイテム名

    Salesforceアカウントの名前

  4. 新しい項目のContentタブのFieldセクションで、次のフィールド値を設定します。

    価値

    フィールド名

    名前

  5. アイテムを保存します。

アカウント名の値リーダーを追加する

このバリューリーダーの目的は、後の手順で明らかになります。今のところ、以下の手順に従ってください。

  1. コンテンツ エディターで、Data Access/Value Readers/Providers/Salesforceに移動します。

    Salesforce value reader provider in content tree
  2. 次の項目を追加します。

    テンプレート

    Value Accessor Value Reader

    アイテム名

    アカウント名の値アクセサの値のリーダー

  3. 新しい項目のContentタブのSettingsセクションで、次のフィールド値を設定します。

    価値

    値アクセサ

    Value Accessor Sets/Providers/Salesforce/Salesforce Account Fields/Name on Salesforce Account

  4. アイテムを保存します。

Contactファセットへの書き込み方法を指定します

  1. コンテンツ エディターで、Sitecore/System/Data Exchangeに移動します。

  2. テナントを選択します。

  3. Data Access/Value Accessor Sets/Providers/xConnectに移動します。

    xConnect value accessor sets provider in content tree
  4. 次の項目を追加します。

    テンプレート

    xConnectエンティティ ファセット値アクセサ セット

    アイテム名

    xConnect Contact Salesforceアカウント情報ファセット

  5. 新しいアイテムに、次のアイテムを追加します。

    テンプレート

    xConnectエンティティ ファセット プロパティ値アクセサー

    アイテム名

    xConnect ContactのSalesforceアカウント情報ファセットのアカウント名

  6. 新しい項目のContentタブのSettingsセクションで、次のフィールド値を設定します。

    価値

    ファセットプロパティ

    Collection Models/Custom Models/Custom Collection Model for Salesforce/Facets/Contact/SalesforceAccount/AccountName

  7. アイテムを保存します。

Salesforceデータを取引先担当者ファセットにマッピングする

  1. コンテンツ エディターで、Sitecore/System/Data Exchangeに移動します。

  2. テナントを選択します。

  3. Value Mapping Sets/Salesforce to xConnect Contact Mappingsに移動します。

    Salesforce to xConnect contact mappings in content tree
  4. 次の項目を追加します。

    テンプレート

    値マッピングセット

    アイテム名

    Salesforce Contact to xConnect Contact Salesforce Account Informationファセット

  5. 新しいアイテムに、次のアイテムを追加します。

    テンプレート

    バリューマッピング

    アイテム名

    アカウント名

  6. 新しい項目のContentタブで、次のフィールド値を設定します。

    価値

    ソース アクセサー

    Data Access/Value Accessor Sets/Providers/Salesforce/Salesforce Contact Fields/Account on Salesforce Contact

    ターゲット

    ターゲット アクセサー

    Data Access/Value Accessor Sets/Providers/xConnect/xConnect Contact Salesforce Account Information Facet/Account Name on Salesforce Account Information Facet on xConnect Contact

    準則

    ソース値トランスフォーマー

    Value Readers/Providers/Salesforce/Value Reader for Account Name Value Accessor

    手記

    「Salesforceの連絡先からの読み取り方法の指定」セクションで、取引先企業名の値リーダーが作成されました。この値リーダーは、値マッピングのソース値トランスフォーマーとして設定されます。ソース値トランスフォーマーは、ソース値アクセサーによって読み取られたオブジェクトから値を読み取る値リーダーです。この場合、ソース値アクセサはSalesforce取引先責任者から取引先オブジェクトを読み取ります。ただし、アカウント名が必要であり、アカウントオブジェクト自体は必要ありません。したがって、ソース値トランスフォーマーはアカウントオブジェクトから名前を読み取ります。

  7. アイテムを保存します。

コンタクトファセットをコンタクトにマッピングします

  1. コンテンツ エディターで、Sitecore/System/Data Exchangeに移動します。

  2. テナントを選択します。

  3. Data Access/Value Accessor Sets/Providers/xConnect/xConnect Contactに移動します。

    xConnect Contact provider in content tree
  4. 次の項目を追加します。

    テンプレート

    xConnectエンティティ ファセット値アクセサー

    アイテム名

    xConnect ContactのSalesforceアカウント情報ファセット

  5. 新しい項目のContentタブのSettingsセクションで、次のフィールド値を設定します。

    価値

    ファセットの定義

    Collection Models/Custom Models/Custom Collection Model for Salesforce/Facets/Contact/SalesforceAccount

    マッピングセット

    Value Mapping Sets/Salesforce to xConnect Contact Mappings/Salesforce Contact to xConnect Contact Salesforce Account Information Facet

  6. アイテムを保存します。

  7. テナントを選択します。

  8. Value Mapping Sets/Salesforce to xConnect Contact Mappings/Salesforce Contact to Contact Modelに移動します。

    Salesforce contact to contact model value mapping set in content tree
  9. 次の項目を追加します。

    テンプレート

    バリューマッピング

    アイテム名

    Salesforceアカウント情報ファセット

  10. 新しい項目のContentタブで、次の値を設定します。

    価値

    ソース アクセサー

    Data Access/Value Accessors/Common/Value Accessor with Raw Value Reader Set

    ターゲット

    ターゲット アクセサー

    Data Access/Value Accessor Sets/Providers/xConnect/xConnect Contact/Salesforce Account Information Facet on xConnect Contact

  11. アイテムを保存します。

パイプラインに新しいファセットを追加する

新しいファセットの情報を処理するには、Read Contacts from SalesforceステップとProcess Single Contact from Salesforceパイプライン ステップに情報を追加する必要があります。

フィールドをRead Contacts from Salesforceパイプライン ステップに追加するには、次のようにします。

  1. コンテンツ エディターで、Sitecore/System/Data Exchangeに移動します。

  2. テナントを選択します。

  3. Pipelines/Salesforce Contacts to xConnect Sync Pipelines/Read Contacts from Salesforce Pipeline/Read Contacts from Salesforceに移動します。

  4. ContentタブのObject SettingsセクションのFields to Readフィールドで、Selected列にSalesforce Account Fieldsを追加します。

  5. パイプライン ステップを保存します。

ファセットをProcess Single Contact from Salesforceパイプライン ステップに追加するには、次のようにします。

  1. コンテンツ エディターで、Sitecore/System/Data Exchangeに移動します。

  2. テナントを選択します。

  3. に移動します Pipelines/Salesforce Contacts to xConnect Sync Pipelines/Process Single Contact from Salesforce Pipeline/Resolve Contact Model by Id from xConnect.

  4. ContentタブのxConnect SettingsセクションのFacets to Readフィールドで、Collection Models/Custom Models/Custom Collection Model for Salesforce/Facets/Contact/SalesforceAccountを見つけます。 Selected列に追加します。

  5. パイプライン ステップを保存します。

この記事を改善するための提案がある場合は、 お知らせください!