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

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

> !重要セッションに読み込まれたファセットは編集できますが、セッション終了時に自動的にxConnectに保存されるわけではありません。 [ファセットを更新するにはxConnect Client APIを使う](https://doc.sitecore.com/xp/ja/developers/105/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/105/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;

> !注Sitecore 9.3以降では、IContactPersonalInfoのようなレガシーなファセットクラスはもはや利用できません。代わりにIXConnectFacetsクラスを使いましょう。
> 
> App\_Config\\Sitecore\\Marketing.xDB\\Sitecore.Analytics.Model.config設定ファイルの<facet>要素のコメントを解除することでレガシーの側面を再有効化できます。ただし、IXConnectFacetsへのアップグレードを推奨します。

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

以下の例は [、キービヘイビアキャッシュ](https://doc.sitecore.com/xp/ja/developers/105/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/105/sitecore-experience-platform/marketing-operations-api.html "Marketing Operations API")を使ってIDごとに定義項目を取得します。

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

以下の例は [、コンタクト行動プロファイル](https://doc.sitecore.com/xp/ja/developers/105/sitecore-experience-platform/contact-behavior-profile.html "Contact Behavior Profile")へのアクセス方法を示しています:

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);

> !注Sitecore 10.1以降、コンタクト行動プロファイルの計算ロジックが変更されました。デフォルトでは、古い計算ロジックは無効化されています。有効化するには、「[最新のプロファイルスコアでコンタクト行動プロファイルを有効にする](https://doc.sitecore.com/xp/ja/developers/105/sitecore-experience-platform/enable-the-contact-behavior-profile-with-the-most-recent-profile-scores.html "Enable the Contact Behavior Profile with the most recent profile scores")」をご覧ください。ProfileScores面とInteractionCache面のProfileScoresプロパティは廃止されています。

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

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

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/105/sitecore-experience-platform/activity-type-descriptors.html "Activity type descriptors")を使ってIDでアクティビティディスクリプタを取得してください。