1. ファセット

ファセット・マージ・ハンドラーの作成

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

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

ファセット・マージ・ハンドラーは、2つのコンタクトがマージされたときに特定のファセットに何が起こるかを決定します。ファセット マージ ハンドラーはxConnect Collectionサービスで設定され、マージ操作が送信されたときに実行されます。

大事な

すべての値ファセットは自動的にマージされます - デフォルトの動作をオーバーライドしたい場合を除き、すべてのカスタムファセットに対して独自のハンドラを作成する必要はありません。

次の場合は、独自のマージ ハンドラーを作成する必要があります。

  • 計算ファセットが作成されました。計算されたファセットは自動的にマージされません。

  • 特定のファセットをデフォルトとは異なる方法でマージしたい場合 - 例えば、ソース値が常にターゲット値を上書きするようにしたい場合など。

値ファセットの作成

using Sitecore.XConnect;

namespace Documentation
{
    public class CyclistProfile : Facet
    {
        public string BikeBrand { get; set; }
        public string StravaID { get; set; }
        public string NumberOfBikeRides { get; set; }
    }
}

マージ ハンドラーを実装する

示されているようにMergingCalculatedFacetHandlerを実装します。

メモ

UpdateFacet()メソッドからfalseを返します。この方法は、計算されたファセット計算にのみ使用されます。

using Sitecore.ContentTesting.Collection.Model.Plugins.Utils;
using Sitecore.ContentTesting.Model.xConnect;
using Sitecore.XConnect;
using Sitecore.XConnect.Service;

namespace Sitecore.Documentation.Plugins
{
    /// <summary>
    /// A processor to merge custom facet handler
    /// </summary>
    public class MergeCustomFacetHandler : MergingCalculatedFacetHandler<CyclistProfile>
    {
        public MergeCustomFacetHandler() : base("CyclistProfile", null)
        {
        }

        protected override bool UpdateFacet(CyclistProfile currentFacet, Interaction interaction)
        {
            // For calculated facets only
            // Return false as contact not changed by this method
            return false;
        }

        protected override bool Merge(CyclistProfile source, CyclistProfile target)
        {
            if (source == null || target == null)
            {
                // No contacts changed - return false
                return false;
            }

            // Add source and target values together
            target.NumberOfBikeRides += source.NumberOfBikeRides;

            // Return true if contact was changed
            return true;
        }
    }
}

ファセット・マージ・ハンドラーの構成

  1. scという名前のファイルを作成します。 c:\path_to_xconnect\root\App_data\config\sitecore\Collection\年にCustomPlugins.xml。

  2. 次の設定を貼り付け、強調表示された行を独自のハンドラーに置き換えます。

    <Settings>
        <Sitecore>
            <XConnect>
                <Collection>
                    <Services>
                        <IContactMergeHandler.MergeTestCombinationsHandler>
                            <Type>Sitecore.Documentation.Plugins.MergeCustomFacetHandler, Sitecore.Documentation</Type>
                            <As>Sitecore.XConnect.Service.IContactMergeHandler, Sitecore.XConnect.Service</As>
                            <LifeTime>Singleton</LifeTime>
                        </IContactMergeHandler.MergeTestCombinationsHandler>
                    </Services>
                </Collection>
            </XConnect>
        </Sitecore>
    </Settings>
  3. scをコピーします。すべてのxConnect CollectionインスタンスとSearchインスタンスにファイルをCustomPlugins.xmlします。

    手記

    デフォルトのマージ ファセット ハンドラーは、c:\path\toxconnect\root\App_data\config\sitecore\Collection\scで設定されます。XConnect.Collection.Model.Plugins.xmlファイル。

連絡先のマージとトラッカー

コンタクト マージはxConnectが所有し、匿名のコンタクトがすでに存在するコンタットとして自身を識別したときにトラッカーによって呼び出されます。 xConnectクライアントAPIを使用して、マージ ハンドラーをテストできます。

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