1. トークン

getContactパイプラインの拡張

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

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

オンラインプレビューモードでカスタムパーソナライズトークン を置き換えたい場合は、getContactパイプラインを拡張してください。

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

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

  1. 新しいパイプラインプロセッサを作成します。以下の例を参照してください。
  2. パイプラインプロセッサでアセンブリをすべてのCMおよびDDSインスタンスにデプロイしてください。
  3. \App_Config\Sitecore\EmailExperienceディレクトリに移動してください。
  4. 設定パッチファイルを作成し、SitecoreのgetContactパイプラインのSitecore.Modules.EmailCampaign.Core.Pipelines.GetContact.GetContactプロセッサを置き換えます。EmailExperience.Core.configファイル。

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

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); } } }

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