1. Sitecore Connect for Salesforce CRMの使用

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

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

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

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

このチュートリアルでは、次の方法について説明します。

  • カスタム接触ファセット アセンブリを作成してデプロイする

  • コレクションモデルの定義

  • コレクション モデルのデプロイと構成

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

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

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

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

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

カスタム接触ファセット アセンブリを作成してデプロイする

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

カスタムコンタクトファセットを作成してデプロイするには:

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

    Project type

    Class Library (.NET Framework)

    .NET version

    .NET Framework 4.6.2

    Project name

    Examples.Connect.Salesforce

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

    • Sitecore.DataExchange.Tools.SalesforceConnect.NoReferences

    • Sitecore.XConnect.NoReferences

    メモ

    Sitecoreの公開NuGetフィードはhttps://sitecore.myget.org/gallery/sc-packagesで入手できます。

  3. Salesforceの連絡先アカウント名を保存する連絡先ファセットを作成するには、次のクラスをプロジェクトに追加します。

    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()
            {
            }
        }
    }
  4. 使用可能なコンタクト ファセットを定義するxConnectコレクション モデルを作成するには、次のクラスをプロジェクトに追加します。

    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();
            }
        }
    }
  5. アセンブリをSitecoreサーバーにデプロイするには、Visual Studioプロジェクトをビルドし、結果のExamples.Connect.Salesforce.dllファイルをSitecoreサーバーにコピーします。

コレクションモデルの定義

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

カスタムコレクションモデルは、使用する前に登録する必要があります。

コレクションモデルを定義するには:

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

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

    Template

    Collection Model Folder

    Item name

    Custom Models

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

    Template

    Compiled Collection Model

    Item name

    Custom Collection Model for Salesforce

  4. 新しいCustom Collection Model for Salesforceアイテムを選択します。右側のペインのContentタブのSettingsセクションで、次のフィールド値を設定します。

    価値

    Collection Model Type

    Examples.Connect.Salesforce.SalesforceConnectCollectionModelEx, Examples.Connect.Salesforce

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

コレクション モデルのデプロイと構成

コレクションモデルをデプロイするには:

  1. モデルをxConnectにデプロイするには、カスタム コレクション モデルに移動します。リボンのData Exchangeタブで、Convert Model to Itemsをクリックします。次に、「 Convert Model to JSON」をクリックします。

    Convert model to JSON button
  2. モデル・ファイルを保存し、モデルを次のサーバーにデプロイします。

    • xConnectコレクション

    • xConnectインデックス作成

  3. コレクション モデルを使用するようにxConnectクライアント エンドポイントを設定するには、コンテンツ エディターでSitecore/System/Data Exchange/<your Salesforce tenant>/Endpoints/Providers/xConnect/xConnect Client Endpointに移動します。

  4. 右側のペインのContentタブのCollection Serviceセクションで、次のフィールド値を設定します。

    価値

    Collection Model

    Collection Models/Custom Models/Custom Collection Model for Salesforce

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

  6. 構成をテストするには、リボンのData ExchangeタブでRun Troubleshooterをクリックします。

    Run Troubleshooter button

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

    Connection successfully established message

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

Salesforceから連絡先データを読み取るようにテナントを構成する必要があります。これを行うには、値アクセサと値リーダを使用してSalesforceデータ構造を表します。

Salesforceの連絡先からの読み取り方法を指定するには:

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

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

Salesforceの連絡先からの読み取り方法を指定するには:

  1. 取引先企業の値アクセッサを取引先責任者に追加するには、コンテンツ エディタで <your Salesforce tenant>/Data Access/Value Accessor Sets/Providers/Salesforce/Salesforce Contact Fieldsに移動します。次の項目を追加します。

    Template

    Salesforce Object Field Value Accessor

    Item name

    Account on Salesforce Contact

  2. 新しいAccount on Salesforce Contactアイテムを選択します。右側のペインのContentタブのFieldセクションで、次のフィールド値を設定します。

    価値

    Field Name

    Account

    Field Name for Select

    Account.Name 

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

  4. アカウント名にアクセスするための値アクセサを作成するには、コンテンツ エディタで<your Salesforce tenant>/Data Access/Value Accessor Sets/Providers/Salesforceに移動します。次の項目を追加します。

    Template

    Salesforce Object Value Accessor Set

    Item Name

    Salesforce Account Fields

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

    Template

    Salesforce Object Field Value Accessor

    Item name

    Name on Salesforce Account

  6. 新しいName on Salesforce Account項目の右側のペインのContentタブのFieldセクションで、次のフィールド値を設定します。

    価値

    Field name

    Name

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

  8. 値リーダーを作成するには、コンテンツ エディターで <your Salesforce tenant>/Data Access/Value Readers/Providers/Salesforceに移動します。次の項目を追加します。

    Template

    Value Accessor Value Reader

    Item Name

    Value Reader for Account Name Value Accessor

  9. 新しいValue Reader for Account Name Value Accessor項目の右側のペインのContentタブのSettingsセクションで、次のフィールド値を設定します。

    価値

    Value Accessor

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

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

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

値アクセサ セットを設定するには、次のようにします。

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

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

    Template

    xConnect Entity Facet Value Accessor Set

    Item name

    xConnect Contact Salesforce Account Information Facet

  3. 新しいxConnect Contact Salesforce Account Information Facetアイテムに、次のアイテムを追加します。

    Template

    xConnect Entity Facet Property Value Accessor

    Item name

    Account Name on Salesforce Account Information Facet on xConnect Contact

  4. 新しいAccount Name on Salesforce Account Information Facet on xConnect Contact項目の右側のペインのContentタブのSettingsセクションで、次のフィールド値を設定します。

    価値

    Facet Property

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

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

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

データをコンタクトファセットにマッピングするには:

  1. コンテンツ エディターで、<your Salesforce tenant>/Value Mapping Sets/Salesforce to xConnect Contact Mappingsに移動します。

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

    Template

    Value Mapping Set

    Item name

    Salesforce Contact to xConnect Contact Salesforce Account Information Facet

  3. 新しいSalesforce Contact to xConnect Contact Salesforce Account Information Facetアイテムに、次のアイテムを追加します。

    Template

    Value Mapping

    Item name

    Account Name 

  4. 新しいAccount Name  項目の右側のペインのContentタブで、次のフィールド値を設定します。

    価値

    Source

    Source Accessor

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

    Target

    Target Accessor

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

    Rules

    Source Value Transformer

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

    手記

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

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

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

ファセットをマッピングするには:

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

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

    Template

    xConnect Entity Facet Value Accessor

    Item name

    Salesforce Account Information Facet on xConnect Contact

  3. 新しいSalesforce Account Information Facet on xConnect Contactアイテムの右側のペイン、Contentタブ、Settingsセクションで、次のフィールド値を設定します。

    価値

    Facet Definition

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

    Mapping Set

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

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

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

  6. <your Salesforce tenant>/Value Mapping Sets/Salesforce to xConnect Contact Mappings/Salesforce Contact to Contact Modelに移動します。

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

    Template

    Value Mapping

    Item name

    Salesforce Account Information Facet

  8. 新しいSalesforce Account Information Facet項目の右側のペインのContentタブで、次の値を設定します。

    価値

    Source

    Source Accessor

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

    Target

    Target Accessor

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

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

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

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

パイプラインステップにファセットを追加するには:

  1. ファセットのフィールドをパイプライン ステップに追加するには、コンテンツ エディターで <your Salesforce tenant>/Pipelines/Salesforce Contacts to xConnect Sync Pipelines/Read Contacts from Salesforce Pipeline/Read Contacts from Salesforceに移動します。

  2. 右側のペインのContentタブ、Object SettingsセクションのFields to Readフィールドで、Selected列にSalesforce Account Fieldsを追加します。パイプライン ステップを保存します。

  3. ファセットをProcess Single Contact from Salesforceパイプライン ステップに追加するには、コンテンツ エディターで <your Salesforce tenant>/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. パイプライン ステップを保存します。

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