側面とサービスへのアクセス

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

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

このトピックでは、インタラクションファセッツ、インタラクションファセット、xConnect Client APIなどのサービスにアクセスする方法をインタラクションアグリゲーションプロセッサの文脈で説明します。

荷重面

インタラクション集約処理パイプラインは 、xConnect Client APIを使って連絡先やインタラクションを取得します。どのコンタクトやインタラクションの側面を取得するかを指定するには、プロセッサに以下のいずれかまたは両方の属性を付けて指定する必要があります:

  • UsesInteractionFacets
  • UsesContactFacets

!注アグリゲーションパイプラインが実行される際にxConnectからファセットが要求されます。プロセッサがパフォーマンスへの影響を減らすために必要とするファセットのみを要求してください。

以下の例では、プロセッサは1つのインタラクションファセットと1つの接触ファセットをロードします:

UseInteractionFacets(WebVisit.DefaultFacetKey) UsesContactFacets(PersonalInformation.DefaultFacetKey,Classification.DefaultFacetKey) public class UserAgentProcessor

{ protected override void OnProcess(InteractionAggregationPipelineArgsargs) { } }

!重要特定のファセットを明示的にリクエストしなければ、処理中に利用できません。なぜか理解するために、コンタクトインタラクションを得る際の拡張オプションの役割についてさらに詳しく読んでください。

連絡先とインタラクションへのアクセス

連絡と交流はargs.Context物件で利用可能です:

UseInteractionFacets(WebVisit.DefaultFacetKey) UsesContactFacets(PersonalInformation.DefaultFacetKey, Classification.DefaultFacetKey) public class UserAgentProcessor: InteractionAggregationPipelineProcessor { protected override void OnProcess(InteractionAggregationPipelineArgsargs) { var contact=args.Context.Contact; var interaction=args.Context.Interaction; } }

もしインタラクションや連絡先の要素をリクエストされた場合は、.GetFacet 拡張方式からアクセスできます:

var personalFacet=args.Context.Contact.GetFacet (PersonalInformation.DefaultFacetKey);

あるいは、Sitecore.XConnect.Collection.Modelにある拡張方法を使うこともできます:

var personalFacet=args.Context.Contact.Personal();

その他のサービスへのアクセス

すべてのプロセッサは以下のAPIにアクセスできargs.Context.Sources:

  • xConnect クライアント API
  • リファレンスデータサービス
  • 定義マネージャー
  • 分類管理者

!重要集約プロセッサの文脈では、すべてのサービスエンドポイント(xConnect、定義、タクソノミー、参照データサービス)は読み取り専用です。

xConnectへのアクセス

xConnectクライアントAPIの読み取り専用インスタンスはargs.Context.Sources.Collectionを通じてアクセスされます。連絡先およびインタラクションデータの検索や取得が可能です:

UseInteractionFacets(WebVisit.DefaultFacetKey) UsesContactFacets(PersonalInformation.DefaultFacetKey, Classification.DefaultFacetKey) public class UserAgentProcessor: InteractionAggregationPipelineProcessor { protected override void OnProcess(InteractionAggregationPipelineArgsargs) { // Searching var contacts = args.Context.Sources.Collection.Contacts.Where(x=>x.Identifiers.Any(c=>c.IdentifierType==ContactIdentifierType.Known)); var interactions = args.Context.Sources.Collection.Interactions.Where(x=>x.EngagementValue>20); // Get some contact or interaction that is not available in the args var someID=Guid.NewGuid(); var contactRef=newList(){newContactReference(someID)}; var getContact=args.Context.Sources.Collection.GetAsync(contactRef,newContactExpandOptions()); } }

!注連絡とやり取りはそれぞれargs.Context.Contactとargs.Context.Interactionを通じて利用できることを忘れないでください。

定義マネージャーへのアクセス

UseInteractionFacets(WebVisit.DefaultFacetKey) UsesContactFacets(PersonalInformation.DefaultFacetKey, Classification.DefaultFacetKey) public class UserAgentProcessor

{ protected overridevoidOnProcess(InteractionAggregationPipelineArgsargs) { protected overridevoidOnProcess(InteractionAggregationPipelineArgsargs) { var goalManager= args.Context.Sources.Definitions.GetDefinitionManager(); } } }

!注汎用的な定義マネージャーは存在せず、どのタイプのイベントを探しているかを把握し、適切な定義マネージャーを使う必要があります。

分類管理ツールへのアクセス

UseInteractionFacets(WebVisit.DefaultFacetKey) UsesContactFacets(PersonalInformation.DefaultFacetKey, Classification.DefaultFacetKey) public class UserAgentProcessor: InteractionAggregationPipelineProcessor { protected override void OnProcess(InteractionAggregationPipelineArgsargs) { protected override void OnProcess(InteractionAggregationPipelineArgsargs) { var assetTaxonomyManager = args.Context.Sources.Taxonomies.GetManager(); } } }

!注汎用的なタクソノミーマネージャーは存在せず、どのタイプのタクソノミーを探しているかを把握し、適切なタクソノミーマネージャーを使う必要があります。

参照データサービスへのアクセス

UseInteractionFacets(WebVisit.DefaultFacetKey) UsesContactFacets(PersonalInformation.DefaultFacetKey, Classification.DefaultFacetKey) public class UserAgentProcessor: InteractionAggregationPipelineProcessor { protected override void OnProcess(InteractionAggregationPipelineArgsargs) { var definitionType=args.Context.Sources.Reference.EnsureDefinitionType("alpha"); var criteria=newDefinitionCriteria("enterprise",definitionType) { Culture=newCultureInfo("da") }; Definition<string,string>definition=args.Context.Sources.Reference.GetDefinition<string,string>(criteria,true); } }

!note集約パイプラインは、Reference Data Service APIの読み取り専用バージョンを使用し、Reference Data Serviceデータベースに直接接続します。

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