交流者と連絡を取りましょう

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

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

RelatedInteractionsExpandOptionsを使って、各接触で返すべき相互作用の範囲や相互作用の側面を指定します。以下の例では、過去10日間の相互作用が各接触と共に返されますが、最大30回までに制限されます。LocaleInfo面も存在すれば各相互作用ごとに返されます。

var contactsTask = client.GetAsync(references, new ContactExecutionOptions(new ContactExpandOptions() { Interactions = new RelatedInteractionsExpandOptions(LocaleInfo.DefaultFacetKey) { EndDateTime = DateTime.UtcNow.AddDays(-10), Limit = 30 } }));

以下の表はRelatedInteractionsExpandOptionsクラスの使い方を示しています。

財産

概要

FacetKeys

読み取り専用特性 - 文字列の配列としてコンストラクタに渡され、各相互作用でどの面を返すかを指定します

StartDateTime

インタラクション開始日/時刻はこの値以上でなければなりません。最も早いインタラクションを取得するにはDateTime.MinValueを使います。

EndDateTime

インタラクション終了日時はこの値以下でなければなりません。DateTime.MaxValueを使って、最新のインタラクションを取得してください。

Limit

指定された日付間に戻すべき最大インタラクション数。

以下の例は、ContactExpandOptionsとRelatedInteractionsExpandOptionsを組み合わせて使う方法を示しています。連絡先はPersonalInformation面と10日以上のやり取りを含み、30回までに制限されます。

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

namespace Documentation { public class GetContactWithInteractions { public async void ExampleAsync() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { try { var references = new List<Sitecore.XConnect.IEntityReference<Sitecore.XConnect.Contact>>()

{ // Contact ID new Sitecore.XConnect.ContactReference(new Guid("{A2814105-1F45-E611-52E6-34E6D7117DCB}")), // Username new Sitecore.XConnect.IdentifiedContactReference("twitter", "myrtlesitecore"), // Ad network ID new Sitecore.XConnect.IdentifiedContactReference("adnetwork", "AB973934540244") };

var contactsTask = client.GetAsync<Sitecore.XConnect.Contact>(references, new ContactExecutionOptions(new Sitecore.XConnect.ContactExpandOptions(PersonalInformation.DefaultFacetKey) { Interactions = new Sitecore.XConnect.RelatedInteractionsExpandOptions(LocaleInfo.DefaultFacetKey) { StartDateTime = DateTime.MinValue, EndDateTime = DateTime.UtcNow.AddDays(-10), Limit = 30 } }));

var results = await contactsTask;

foreach (var result in results) { if (result.Exists) { // Do something var contact = result.Entity; } } } catch (XdbExecutionException ex) { // Manage exceptions } } }

public async void Example() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { try { var references = new List<Sitecore.XConnect.IEntityReference<Sitecore.XConnect.Contact>>()

{ // Contact ID new Sitecore.XConnect.ContactReference(new Guid("{A2814105-1F45-E611-52E6-34E6D7117DCB}")), // Username new Sitecore.XConnect.IdentifiedContactReference("twitter", "myrtlesitecore"), // Ad network ID new Sitecore.XConnect.IdentifiedContactReference("adnetwork", "AB973934540244") };

var results = client.Get<Sitecore.XConnect.Contact>(references, new ContactExecutionOptions(new Sitecore.XConnect.ContactExpandOptions(PersonalInformation.DefaultFacetKey) { Interactions = new Sitecore.XConnect.RelatedInteractionsExpandOptions(LocaleInfo.DefaultFacetKey) { StartDateTime = DateTime.MinValue, EndDateTime = DateTime.UtcNow.AddDays(-10), Limit = 30 } }));

foreach (var result in results) { if (result.Exists) { // Do something var contact = result.Entity; } } } catch (XdbExecutionException ex) { // Manage exceptions } } } } }

すべてのインタラクションを取得

以下の最小値と最大値を設定し、各接点との利用可能なすべての相互作用を返します。

var contactsTask = client.GetAsync(new Sitecore.XConnect.ContactReference(new Guid("{A2814105-1F45-E611-52E6-34E6D7117DCB}")), new ContactExecutionOptions(new ContactExpandOptions() { Interactions = new RelatedInteractionsExpandOptions() { StartDateTime = DateTime.MinValue, EndDateTime = DateTime.MaxValue, Limit = int.MaxValue } }));

フィルタリング相互作用

WebVisit面を含む接触の一部の相互作用だけを扱いたい場合もあります。接触者の相互作用をフィルタリングする方法は2つあります:

  • 利用可能なすべてのインタラクションを RelatedInteractionsExpandOptions で返し、メモリ内でコレクションをフィルタリングします
  • すべてのインタラクションSearch、接触者ごとにフィルター ID

以下の例では、接触とその接触に関する利用可能なすべての相互作用を .Get/を用いて返します。GetAsyncメソッド。相互作用の集合は、WebVisit面を持ち、少なくとも1つのOutcomeを持つ相互作用の部分集合に絞られます:

using Sitecore.XConnect.Collection.Model; using Sitecore.XConnect; using System; using System.Collections.Generic; using System.Linq; using Sitecore.XConnect.Client;

namespace Documentation { public class FilterInteractions { // Async example public async void ExampleAsync() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { try { var contactsTask = client.GetAsync(new IdentifiedContactReference("twitter", "myrtlesitecore"), new ContactExecutionOptions(new ContactExpandOptions(PersonalInformation.DefaultFacetKey) { Interactions = new RelatedInteractionsExpandOptions(WebVisit.DefaultFacetKey) { StartDateTime = DateTime.MinValue, Limit = int.MaxValue } }));

var contacts = await contactsTask;

{ // All interactions var interactions = contacts.Interactions;

// Interactions with WebVisit facet and at least one Outcome var interactionsWithOutcomes = interactions.Where(x => x.WebVisit() != null && x.Events.OfType().Any()); } catch (XdbExecutionException ex) { // Manage exceptions } } }

// Sync example public void Example() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { try { var contacts = client.Get(new IdentifiedContactReference("twitter", "myrtlesitecore"), new ContactExecutionOptions(new Sitecore.XConnect.ContactExpandOptions(PersonalInformation.DefaultFacetKey) { Interactions = new RelatedInteractionsExpandOptions(WebVisit.DefaultFacetKey) { StartDateTime = DateTime.MinValue, Limit = int.MaxValue } }));

// All interactions var interactions = contacts.Interactions;

// Interactions with WebVisit facet and outcome var interactionsWithOutcomes = interactions.Where(x => x.WebVisit() != null && x.Events.OfType().Any()); } catch (XdbExecutionException ex) { // Manage exceptions } } } } }

以下の例では、少なくとも1つのOutcomeを持ち、特定の接触IDに一致するすべての相互作用を取得するために相互作用探索が用いられています。

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

namespace Documentation { public class SearchByContactID { public async void ExampleAsync() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { try { var contactID = Guid.Parse("ea991dce-1f9b-443c-84a5-f83b46cbc0f8");

// IMPORTANT: You cannot check facets for null; check a property of the facet instead, such as SiteName for WebVisit var queryable = client.Interactions .Where(x => x.Contact.Id == contactID && x.Events.OfType().Any() && x.WebVisit().SiteName != "") .WithExpandOptions(new InteractionExpandOptions(WebVisit.DefaultFacetKey) { Contact = new RelatedContactExpandOptions(PersonalInformation.DefaultFacetKey) });

var enumerator = await queryable.GetBatchEnumerator(10);

while (await enumerator.MoveNext()) { foreach (var item in enumerator.Current) { var listOfOutcomes = item.Events.OfType(); var webFacet = item.WebVisit(); } }

} catch (XdbExecutionException ex) { // Handle exception } } }

// Sync example public async void Example() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { try { var contactID = Guid.Parse("ea991dce-1f9b-443c-84a5-f83b46cbc0f8");

// IMPORTANT: You cannot check facets for null; check a property of the facet instead, such as SiteName for WebVisit var queryable = client.Interactions .Where(x => x.Contact.Id == contactID && x.Events.OfType().Any() && x.WebVisit().SiteName != "") .WithExpandOptions(new InteractionExpandOptions(WebVisit.DefaultFacetKey) { Contact = new RelatedContactExpandOptions(PersonalInformation.DefaultFacetKey) });

var enumerator = queryable.GetBatchEnumeratorSync(10);

while (enumerator.MoveNext()) { foreach (var item in enumerator.Current) { var listOfOutcomes = item.Events.OfType(); var webFacet = item.WebVisit(); } }

} catch (XdbExecutionException ex) { // Handle exception } } } } }

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