---
title: "セッション中のファセッツへのアクセス"
slug: "accessing-facets-in-session"
abstract: "xConnectからセッションに読み込まれた連絡先のファセットにアクセスする方法。"
---
# セッション中のファセッツへのアクセス

訪問者がサイトに戻ると、xConnectから設定可能なファセットリストが [セッションに読み込まれ](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/load-facets-into-session.html "Load facets into session") ます。

> !重要セッションに読み込まれたファセットは編集できますが、セッション終了時に自動的にxConnectに保存されるわけではありません。 [ファセットを更新するにはxConnect Client APIを使う](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/set-contact-facets-in-session.html "Set contact facets in session")必要があります。

## セッション中にIXConnectFacetsクラスにアクセスしてください

IXConnectFacetsトラッカーファセットはSitecore.Analytics.Model.Framework.IFacetを継承し、xConnectファセットの辞書を含み、を継承するSitecore.XConnect.Facetを含みます。[構成](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/load-facets-into-session.html "Load facets into session")はどのファセットがファセット辞書に読み込まれるかを決定します。以下の例は、デフォルトで利用可能なPersonalInformationファセットへのアクセス方法を示しています:

var xConnectFacet = Sitecore.Analytics.Tracker.Current.Contact.GetFacet<Sitecore.Analytics.XConnect.Facets.IXConnectFacets>("XConnectFacets");

PersonalInformation personal = xConnectFacet.FacetsPersonalInformation.DefaultFacetKey as PersonalInformation;

## セッション中のレガシーファセットクラスへのアクセス

IXConnectFacetsファセットに加え、セッション開始時に複数のレガシーファセットクラスが埋め込まれます。つまり、一部のファセットデータは2か所で利用可能です。以下の表は、セッションにロードされるすべてのレガシーファセットと対応するxConnectファセットを一覧にしています。

**レガシー・ファセット**

**マッチングエントリー**IXConnectFacets

IContactPersonalInfo

PersonalInformation (PersonalInformation.DefaultFacetKey)

IContactAddresses

AddressList (AddressList.DefaultFacetKey)

IContactEmailAddresses

EmailAddressList (EmailAddressList.DefaultFacetKey)

IContactPhoneNumbers

PhoneNumberList (PhoneNumberList.DefaultFacetKey)

IContactPicture

Avatar (Avatar.DefaultFacetKey)

IContactCommunicationProfile

ConsentInformation (ConsentInformation.DefaultFacetKey)

IContactPreferences

PersonalInformation (PersonalInformation.DefaultFacetKey)

以下の例は、レガシー IContactPersonalInfo側面へのアクセス方法を示しています。

IContactPersonalInfo personal = Sitecore.Analytics.Tracker.Current.Contact.GetFacet<Sitecore.Analytics.Model.Entities.IContactPersonalInfo>("Personal");

以下の例は、新しいIXConnectFacets面を通じてIContactPersonalInfoファセットで表されるデータにアクセスする方法を示しています。

var xConnectFacet = Sitecore.Analytics.Tracker.Current.Contact.GetFacet<Sitecore.Analytics.XConnect.Facets.IXConnectFacets>("XConnectFacets");

var allFacets = xConnectFacet.Facets;

PersonalInformation personalInfo = allFacetsPersonalInformation.DefaultFacetKey as PersonalInformation;

## セッション内のキービヘイビアキャッシュの側面にアクセスする

以下の例は [、キービヘイビアキャッシュ](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/key-behavior-cache.html "Key behavior cache")へのアクセス方法を示しています:

var xConnectFacets = Sitecore.Analytics.Tracker.Current.Contact.GetFacet<IXConnectFacets>("XConnectFacets");

KeyBehaviorCache kbc = xConnectFacets.FacetsKeyBehaviorCache.DefaultFacetKey as KeyBehaviorCache;
var recentCampaigns = kbc.Campaigns;

> !ヒント各キービヘイビアキャッシュエントリにはDefinitionIdプロパティがあります。 [マーケティングオペレーションAPI](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/marketing-operations-api.html "Marketing Operations API")を使ってIDごとに定義項目を取得します。

## セッション内のコンタクト行動プロファイルの側面にアクセスする

以下の例は、コンタクト行動プロファイルへのアクセス方法を示しています:

var xConnectFacets = Sitecore.Analytics.Tracker.Current.Contact.GetFacet<IXConnectFacets>("XConnectFacets");

ContactBehaviorProfile cbp = xConnectFacets.FacetsContactBehaviorProfile.DefaultFacetKey as ContactBehaviorProfile;
var matchedProfileIDs = cbp.Scores.Select(x => x.Value.ProfileDefinitionId);

## セッション内で自動化プランの登録にアクセスする

以下の例は、連絡先の自動化活動にアクセスする方法を示しています。

var xConnectFacets = Sitecore.Analytics.Tracker.Current.Contact.GetFacet<IXConnectFacets>("XConnectFacets");

AutomationPlanEnrollmentCache enrolments = xConnectFacets.FacetsAutomationPlanEnrollmentCache.DefaultFacetKey as AutomationPlanEnrollmentCache;

var specificActivityEnrolments = enrolments.ActivityEnrollments.Where(x => x.ActivityId == Guid.Parse("9098fa76-eaf3-4adc-ada5-e46014ba9f30"));
var specificPlanEnrolments = enrolments.ActivityEnrollments.Where(x => x.AutomationPlanDefinitionId == Guid.Parse("6ce0925e-961e-469e-b085-454a6ba0a931"));

> !ヒント各オートメーションプラン登録キャッシュエントリにはプラン定義IDとアクティビティIDがあります。Automation Plan Definitionマネージャーを使ってプラン定義アイテムを取得してください。 [アクティビティDescriptor Locator API](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/activity-type-descriptors.html "Activity type descriptors")を使ってIDでアクティビティディスクリプタを取得してください。