getContactパイプラインの拡張
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
オンラインプレビューモードでカスタムパーソナライズトークン を置き換えたい場合は、getContactパイプラインを拡張してください。
!注このトピックはSitecoreのバージョン9.0.1以降に適用されます。
getContactパイプラインを拡張するには:
- 新しいパイプラインプロセッサを作成します。以下の例を参照してください。
- パイプラインプロセッサでアセンブリをすべてのCMおよびDDSインスタンスにデプロイしてください。
- \App_Config\Sitecore\EmailExperienceディレクトリに移動してください。
- 設定パッチファイルを作成し、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); } } }