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