1. インタラクションを得て

インタラクションの側面を得てください

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

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

どのファセットをインタラクションまたはインタラクションのバッチで返すかを指定するために、ファセットキーの配列をInteractionExpandOptionsに渡しなければなりません。

以下の例では、インタラクション展開オプションの一部としてデフォルトのIpInfoファセットが要求されています。

var contacts = await client.GetAsync(references, new InteractionExecutionOptions(new Sitecore.XConnect.InteractionExpandOptions(IpInfo.DefaultFacetKey)));

その面がその相互作用のFacets辞書に存在する場合、その面が追加されます。もしあなたが要求した面がモデル上で定義されていなければ、xConnectはリクエストの実行時に例外を投げます。交互作用が返されたら、その相互作用の .GetFacet() メソッドを使って面オブジェクトを取得します。

IpInfo myFacetObject = contact.GetFacet(IpInfo.DefaultFacetKey);

メソッド .GetFacet() は、以下の場合にnullを返します:

  • このファセットは、インタラクションが最初に取得された際の InteractionExpandOptions の一部として要求されていませんでした
  • ファセットは特定の相互作用に対して設定されていません
  • タイプとキーの組み合わせは正しくありません

以下の例は、IpInfo面の取得方法と作業方法を示しています。

!注すべての組み込みファセットモデルにはDefaultFacetKeyプロパティがあります。例えば、WebVisit.DefaultFacetKey。

using Sitecore.XConnect.Collection.Model; using Sitecore.XConnect.Operations; using System; using System.Collections.Generic; using System.Threading.Tasks; using Sitecore.XConnect; using System.Collections.ObjectModel; using Sitecore.XConnect.Client;

namespace Documentation { public class GetInteractionsWithFacets { public async void ExampleAsync() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { try {

// Contact reference from ID var contactRef = new Sitecore.XConnect.ContactReference(Guid.Parse("B9814105-1F45-E611-82E6-34E6D7117DCB")); Sitecore.XConnect.InteractionReference interactionRef = new Sitecore.XConnect.InteractionReference(contactRef, Guid.Parse("DA2DA5F0-4348-E611-82E7-34E6D7117DCB"));

// Contact reference from identifier var identifiedContactRef = new Sitecore.XConnect.IdentifiedContactReference("twitter", "myrtlesitecore"); Sitecore.XConnect.InteractionReference secondInteractionRef = new Sitecore.XConnect.InteractionReference(identifiedContactRef, Guid.Parse("E6067926-1F45-E611-82E6-34E6D7117DCB"));

var references = new List<Sitecore.XConnect.InteractionReference>() { interactionRef, secondInteractionRef };

Task<ReadOnlyCollection<IEntityLookupResult>> interactionTask = client.GetAsync(references, new InteractionExecutionOptions(new InteractionExpandOptions(IpInfo.DefaultFacetKey)));

ReadOnlyCollection<IEntityLookupResult> interactions = await interactionTask;

foreach (var i in interactions) { IpInfo ipInfoFacet = i.Entity.GetFacet(Sitecore.XConnect.Collection.Model.CollectionModel.FacetKeys.IpInfo);

var businessName = ipInfoFacet.BusinessName; // Do some work with facet values } } catch (XdbExecutionException ex) { // Manage exceptions } } }

public void ExampleSync() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { try {

// Contact reference from ID var contactRef = new Sitecore.XConnect.ContactReference(Guid.Parse("B9814105-1F45-E611-82E6-34E6D7117DCB")); Sitecore.XConnect.InteractionReference interactionRef = new Sitecore.XConnect.InteractionReference(contactRef, Guid.Parse("DA2DA5F0-4348-E611-82E7-34E6D7117DCB"));

// Contact reference from identifier var identifiedContactRef = new Sitecore.XConnect.IdentifiedContactReference("twitter", "myrtlesitecore"); Sitecore.XConnect.InteractionReference secondInteractionRef = new Sitecore.XConnect.InteractionReference(identifiedContactRef, Guid.Parse("E6067926-1F45-E611-82E6-34E6D7117DCB"));

var references = new List<Sitecore.XConnect.InteractionReference>() { interactionRef, secondInteractionRef };

IReadOnlyCollection<IEntityLookupResult> interactions = client.Get(references, new InteractionExecutionOptions(new InteractionExpandOptions(IpInfo.DefaultFacetKey)));

foreach (var i in interactions) { IpInfo ipInfoFacet = i.Entity.GetFacet(Sitecore.XConnect.Collection.Model.CollectionModel.FacetKeys.IpInfo);

var businessName = ipInfoFacet.BusinessName; // Do some work with facet values } } catch (XdbExecutionException ex) { // Manage exceptions } } } } }

デフォルトのファセットキーでファセットを取得します

すべての組み込みファセットモデルには、デフォルトのファセットキーをファセットモデルに関連付けるFacetKey属性があります。

FacetKey(CollectionModel.FacetKeys.IpInfo) public class IpInfo : Facet

ファセットキーが指定されていない場合、xConnectはデフォルト値に戻ります。この動作を模倣するために、FacetKey属性を自分のファセットモデルに追加してください。以下の例では、.Expand() と .GetFacet() をファセットキーを指定せずに使用します。

!重要ファセットモデルにFacetKey属性がない場合は例外が投げられます。

using Sitecore.XConnect.Collection.Model; using Sitecore.XConnect.Operations; using System; using System.Collections.Generic; using System.Threading.Tasks; using Sitecore.XConnect; using System.Collections.ObjectModel; using Sitecore.XConnect.Client;

namespace Documentation { public class GetInteractionsWithFacetsDefaults { public async void ExampleAsync() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { try {

// Contact reference from ID var contactRef = new Sitecore.XConnect.ContactReference(Guid.Parse("B9814105-1F45-E611-82E6-34E6D7117DCB")); Sitecore.XConnect.InteractionReference interactionRef = new Sitecore.XConnect.InteractionReference(contactRef, Guid.Parse("DA2DA5F0-4348-E611-82E7-34E6D7117DCB"));

// Contact reference from identifier var identifiedContactRef = new Sitecore.XConnect.IdentifiedContactReference("twitter", "myrtlesitecore"); Sitecore.XConnect.InteractionReference secondInteractionRef = new Sitecore.XConnect.InteractionReference(identifiedContactRef, Guid.Parse("E6067926-1F45-E611-82E6-34E6D7117DCB"));

var references = new List<Sitecore.XConnect.InteractionReference>() { interactionRef, secondInteractionRef };

Task<ReadOnlyCollection<IEntityLookupResult>> interactionTask = client.GetAsync(references, new InteractionExecutionOptions(new InteractionExpandOptions(IpInfo. DefaultFacetKey)));

ReadOnlyCollection<IEntityLookupResult> interactions = await interactionTask;

foreach (var i in interactions) { IpInfo ipInfoFacet = i.Entity.GetFacet();

var businessName = ipInfoFacet.BusinessName; // Do some work with facet values } } catch (XdbExecutionException ex) { // Manage exceptions } } }

public void ExampleSync() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { try {

// Contact reference from ID var contactRef = new Sitecore.XConnect.ContactReference(Guid.Parse("B9814105-1F45-E611-82E6-34E6D7117DCB")); Sitecore.XConnect.InteractionReference interactionRef = new Sitecore.XConnect.InteractionReference(contactRef, Guid.Parse("DA2DA5F0-4348-E611-82E7-34E6D7117DCB"));

// Contact reference from identifier var identifiedContactRef = new Sitecore.XConnect.IdentifiedContactReference("twitter", "myrtlesitecore"); Sitecore.XConnect.InteractionReference secondInteractionRef = new Sitecore.XConnect.InteractionReference(identifiedContactRef, Guid.Parse("E6067926-1F45-E611-82E6-34E6D7117DCB"));

var references = new List<Sitecore.XConnect.InteractionReference>() { interactionRef, secondInteractionRef };

IReadOnlyCollection<IEntityLookupResult> interactions = client.Get(references, new InteractionExecutionOptions(new InteractionExpandOptions(IpInfo. DefaultFacetKey)));

foreach (var i in interactions) { IpInfo ipInfoFacet = i.Entity.GetFacet();

var businessName = ipInfoFacet.BusinessName; // Do some work with facet values } } catch (XdbExecutionException ex) { // Manage exceptions } } } } }

!注もしファセットモデル( IpInfoなど)を使って複数のファセットを定義しているなら、デフォルトでないファセットキーをモデルクラスの定数として保存することを検討してください。

インタラクションの側面設定とイベントの追加

コンタクト面を設定するには .SetFacet() 拡張法を使う必要があります。詳細は以下をご覧ください:

!注インタラクションの側面は一度設定されると更新できません。

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