インタラクションを取得する

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

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

.GetAsync<Interaction>() / .Get<Interaction>() を使用して、インタラクションまたはインタラクションのセットを取得します。インタラクションは、次の方法で取得できます。

  • インタラクションIDと連絡先IDの組み合わせ

  • インタラクションIDと連絡先参照の組み合わせ

メモ

連絡先IDまたは連絡先参照は、シャード環境でのクエリの効率を高めるために含まれています。コレクション データは連絡先IDでシャード化されるため、クエリに連絡先IDを含めると、xConnectはインタラクション データを保持しているシャードをすぐに認識できます。

次の例では、2つのインタラクションが取得されます。

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

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

                    var interactionIdOne = Guid.Parse("DA2DA5F0-4348-E611-82E7-34E6D7117DCB");
                    var interactionIdTwo = Guid.Parse("B9814105-1F45-E611-82E6-34E6D7117DCB");

                        // Contact reference from ID
                    var contactRef = new ContactReference(interactionIdOne);
                    Sitecore.XConnect.InteractionReference interactionRef = new Sitecore.XConnect.InteractionReference(contactRef, interactionIdTwo);

                    // Contact reference from identifier
                    var identifiedContactRef = new 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<Interaction>>> interactionTask = client.GetAsync<Sitecore.XConnect.Interaction>(references, new InteractionExecutionOptions(new InteractionExpandOptions() { }));

                    ReadOnlyCollection<IEntityLookupResult<Interaction>> interaction = await interactionTask;
                }
                catch (Exception ex)
                {
                    // Manage exceptions
                }
            }
        }

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

                    var interactionIdOne = Guid.Parse("DA2DA5F0-4348-E611-82E7-34E6D7117DCB");
                    var interactionIdTwo = Guid.Parse({B9814105-1F45-E611-82E6-34E6D7117DCB});

                    // Contact reference from ID
                    var contactRef = new ContactReference(interactionIdOne);
                    Sitecore.XConnect.InteractionReference interactionRef = new Sitecore.XConnect.InteractionReference(contactRef, interactionIdTwo);

                    // Contact reference from identifier
                    var identifiedContactRef = new 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<Interaction>> interactions = client.Get<Interaction>(references, new InteractionExecutionOptions(new InteractionExpandOptions() { }));
                }
                catch (Exception ex)
                {
                    // Manage exceptions
                }
            }
        }
    }
}

インタラクションのリストをリクエストする場合、戻り値のタイプは、コンタクトのリストではなく、オペレーション結果のリストになります。戻り値の型はReadOnlyCollection<IEntityLookupResult<Contact>>です。このコレクションをループ処理すると、各EntityLookupResult<Interaction> オブジェクトのEntityプロパティを使用して、Interactionオブジェクト自体にアクセスできます。推奨される方法は、Interactionがnullかどうかを確認する、エンティティがExistsかどうかを確認することです。関連付けられたExceptionは、各操作結果にも使用できます。

連絡先が1つの場合は、.GetContactAsync() 方法を使用できます。複数の連絡先を取得する場合は、パフォーマンスが向上する .GetAsync<Contact>() を使用してください。

インタラクションイベントを取得する

インタラクションは、常に利用可能なすべてのイベントとリターレンドされます。さまざまなタイプのイベントの操作の詳細については、インタラクションイベントの取得 を参照してください。

インタラクションファセットと関連する連絡先を取得する

デフォルトでは、インタラクションはファセットまたは関連するコンタクトなしで返されます。展開オプションを使用して、返すファセットと連絡先情報を決定します。

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