ページイベント
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
ページイベントの定義はSitecore.Marketing.Definitions.PageEvents.PageEventDefinitionManagerクラスによって管理されます。
!注ページイベントは専門的なイベントです。IPageEventDefinitionIEventDefinitionを継承します。
PageEventDefinitionManagerへのアクセス
PageEventDefinitionManagerはSitecore DIコンテナから利用可能です。クラスのコンストラクタに型DefinitionManagerBase<IPageEventDefinition, PageEventDefinitionRecord>のパラメータを含め、コンテナからクラスを引き出すことで、コンテナがインスタンスを解決するのが望ましいです。
public MyClass(DefinitionManagerBase<IPageEventDefinition, PageEventDefinitionRecord> pageEventDefinitionManager) { ... }
コンテナを使ってクラスを構築できない場合は、サービスロケーターを使うことができます。このクラスはSitecore DIコンテナでも利用可能です:
using Sitecore.DependencyInjection; using Sitecore.Marketing.Definitions;
ServiceLocator.ServiceProvider.GetDefinitionManagerFactory().GetDefinitionManager
ページイベントの定義
ページイベントはSitecore.Marketing.Definitions.PageEvents.Model名前空間の型を用いて定義されます。
Guid pageEventId = Guid.NewGuid(); // Page event ID CultureInfo pageEventCulture = new CultureInfo("es"); // Page event culture string pageEventName = "Newly created page event"; // Page event name DateTime creationDate = DateTime.UtcNow; // Page event creation date string createdBy = "sitecore\admin"; // Page event creator
PageEventDefinition pageEvent = new PageEventDefinition(pageEventId, "Page event item name", pageEventCulture, pageEventName, creationDate, createdBy);
pageEvent.ShowInXfileAsLatestEvent = true; pageEvent.ShowInXfileEventsList = true; pageEvent.EngagementValuePoints = 20;
ライブイベント
IsLiveEventプロパティは基本EventDefinitionクラスの一部であり、マーケティングオートメーションがイベントをセッション終了時ではなく即時処理するかどうかを判断するために使用されます。ライブイベント処理についてさらに詳しくはこちらをご覧ください。
ページ保存イベント
ページイベントを定義したら、定義マネージャーのSaveAsync() メソッドを呼び出すことで保存できます。
Guid pageEventId = Guid.NewGuid(); // Page event ID CultureInfo pageEventCulture = new CultureInfo("es"); // Page event culture string pageEventName = "Newly created page event"; // Page event name DateTime creationDate = DateTime.UtcNow; // Page event creation date string createdBy = "sitecore\admin"; // Page event creator
PageEventDefinition pageEvent = new PageEventDefinition(pageEventId, "Page event item name", pageEventCulture, pageEventName, creationDate, createdBy);
pageEvent.AdditionalRegistrationsAreIgnored = true; pageEvent.IsMonetaryValueApplicable = true;
PageEventDefinitionManager manager = ServiceLocator.ServiceProvider.GetDefinitionManagerFactory().GetDefinitionManager
manager.SaveAsync(page event);
また、セーブ中にページイベントをtrueSaveAsync()メソッドの2つ目のパラメータに渡すことで、ページイベントを有効化することもできます。
manager.SaveAsync(page event, true);
ページイベントの有効化
ページイベントは管理外で利用可能になる前に有効化しなければなりません。ページイベントは保存時にtrueSaveAsync()メソッドのactivate(2つ目の)パラメータに渡すことで有効化できます。
manager.SaveAsync(pageEvent, true);
ページイベントは、ActivateAsync() メソッドを用いて保存を呼び出さずに有効化することも可能です。
manager.ActivateAsync(pageEventId);
ActivateAsync()メソッドはページイベントのIDを取り、ページイベント定義モデルを必要としません。
ページイベントの削除
ページイベントを削除するには、マネージャーのDelete() メソッドを使います。個々のカルチャーは定義から削除できず、定義全体のみ削除できます。メソッド呼び出しに提供されるカルチャーはnull(デフォルト値)かCultureInfo.InvariantCultureのいずれかであるべきです。
manager.Delete(pageEventId);
ページイベントの取得
マネージャーのGet() メソッドのいずれかを使えば、単一ページのイベントをIDで取得できます。
Guid pageEventId = Guid.NewGuid(); // Ensure this is the ID of an existing page event
// Get by ID and culture. Will get the latest active version IPageEventDefinition pageEvent = manager.Get(pageEventId, new CultureInfo("da"));
// Get by ID and culture. Will get the latest version, including if the version is inactive IPageEventDefinition pageEvent = manager.Get(pageEventId, new CultureInfo("da"), true);
別名で連絡先リストを取得する
また、ページイベントの 別名から取得することも可能です:
CultureInfo pageEventCulture = new CultureInfo("fr-fr"); var pageEventDefinitionByAlias = definitionManager.GetByAlias("My alias", pageEventCulture);
既存のページイベントを更新する
既存のページイベント定義を更新するには、IDでページイベントを取得し、ページイベントを編集します
Guid pageEventId = Guid.NewGuid(); // Ensure this is the ID of an existing page event
// Get by ID and culture. Will get the latest active version IPageEventDefinition pageEvent = manager.Get(pageEventId, new CultureInfo("da"));
// Make updates to page event pageEvent.Name = "Updated name";
// Save to update manager.SaveAsync(pageEvent);
すべてのページイベントの取得
GetAll()メソッドはマネージャーからすべてのページイベントを取得するために使用できます。定義の数が多岐にわたるため、このメソッドはページングをサポートしています。返却値は結果の1ページ分です。
// Get All with defaults which will be first page, page size 20, latest active versions only
ResultSet<DefinitionResult
// Get page 2
ResultSet<DefinitionResult
// Include inactive versions
ResultSet<DefinitionResult
結果にアクセスするには、結果のDataPageプロパティを使いましょう。
IPageEventDefinition page event = page1pageEvents.DataPage.ElementAt(0);
その結果には、定義の総数や現在のページインデックス、ページサイズを公開するプロパティも含まれています。
long totalDefinitionCount = page1pageEvents.Total; int pageNumber = page1pageEvents.PageNumber; int pageSize = page1pageEvents.Count;