getContact パイプラインの拡張

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

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

カスタム パーソナライゼーション トークンをオンライン プレビュー モードで置き換えるには、getContact パイプラインを拡張します。

注記

このトピックは、Sitecore バージョン 9.0.1 以降に適用されます。

getContact パイプラインを拡張するには:

  1. 新しいパイプライン プロセッサーを作成します。以下の例を参照してください。

  2. パイプライン プロセッサーを使用してアセンブリをすべての CM および DDS インスタンスにデプロイします。

  3. \App_Config\Sitecore\EmailExperience ディレクトリに移動します。

  4. 設定パッチ ファイルを作成します。このファイルで、Sitecore.Modules.EmailCampaign.Core.Pipelines.GetContact.GetContact パイプライン プロセッサーを Sitecore.EmailExperience.Core.config ファイルの getContact パイプラインに置き換えます。

次の例は、getContact パイプラインを拡張する方法を示しています。

RequestResponse
using System;
using System.Linq;
using Sitecore;
using Sitecore.Data;
using Sitecore.Framework.Conditions;
using Sitecore.Modules.EmailCampaign.Core.Contacts;
using Sitecore.Modules.EmailCampaign.Core.Pipelines.GetContact;

namespace MyNamespace
{
    public class GetContact
    {
        private readonly IContactService _contactService;

        public GetContact([NotNull] IContactService contactService)
        {
            Condition.Requires(contactService, nameof(contactService)).IsNotNull();

            _contactService = contactService;
        }

        public void Process([NotNull] GetContactPipelineArgs args)
        {
            Condition.Requires(args, nameof(args)).IsNotNull();

            if (args.ContactIdentifier == null && ID.IsNullOrEmpty(args.ContactId))
            {
                throw new ArgumentException("Either the contact identifier or the contact id must be set");
            }

            string[] facetKeys = args.FacetKeys.Concat(new[]
            {
                "CustomFacetName" // the custom facet name
            }).ToArray();

            args.Contact =
                args.ContactIdentifier != null ?
                    _contactService.GetContact(args.ContactIdentifier, facetKeys)
                    :
                    _contactService.GetContact(args.ContactId, facetKeys);
        }
    }
}

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、