交流者と連絡を取りましょう
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
RelatedInteractionsExpandOptionsを使って、各接触で返すべき相互作用の範囲や相互作用の側面を指定します。以下の例では、過去10日間の相互作用が各接触と共に返されますが、最大30回までに制限されます。LocaleInfo面も存在すれば各相互作用ごとに返されます。
var contactsTask = client.GetAsync
以下の表は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
フィルタリング相互作用
WebVisit面を含む接触の一部の相互作用だけを扱いたい場合もあります。接触者の相互作用をフィルタリングする方法は2つあります:
- 利用可能なすべてのインタラクションを RelatedInteractionsExpandOptions で返し、メモリ内でコレクションをフィルタリングします
- すべてのインタラクションSearch、接触者ごとにフィルター ID
以下の例では、接触とその接触に関する利用可能なすべての相互作用を .Get
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
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
// Sync example
public void Example()
{
using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
{
try
{
var contacts = client.Get
// All interactions var interactions = contacts.Interactions;
// Interactions with WebVisit facet and outcome
var interactionsWithOutcomes = interactions.Where(x => x.WebVisit() != null && x.Events.OfType
以下の例では、少なくとも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
var enumerator = await queryable.GetBatchEnumerator(10);
while (await enumerator.MoveNext())
{
foreach (var item in enumerator.Current)
{
var listOfOutcomes = item.Events.OfType
} 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
var enumerator = queryable.GetBatchEnumeratorSync(10);
while (enumerator.MoveNext())
{
foreach (var item in enumerator.Current)
{
var listOfOutcomes = item.Events.OfType
} catch (XdbExecutionException ex) { // Handle exception } } } } }