カスタムモデルを作成する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このトピックではカスタムモデルの定義方法を説明します。
カスタムファセットとイベントを定義してください
カスタムファセットやイベントを作成するには:
-
新しいプロジェクトを作成します。例えば、Documentation.Model。
-
側面や出来事を定義してください。
!注すべてのプロパティがxConnect'型の制限に準拠していることを確認してください。トラッカーで使われているファセットはSerializable属性で装飾してください。
using Sitecore.XConnect; using System;
namespace Documentation.Model { Serializable FacetKey(DefaultFacetKey) public class FrequentFlyerInfo : Sitecore.XConnect.Facet { public const string DefaultFacetKey = "FrequentFlyerInfo";
public FrequentFlyerInfo(string frequentFlyerId) { FrequentFlyerID = frequentFlyerId; }
public FrequentFlyerStatus Status { get; set; } public string FrequentFlyerID { get; set; } // Example: ABC12345
public enum FrequentFlyerStatus { Unknown = 0, Bronze, Silver, Gold } }
public class BoardFlight : Event { public static readonly Guid EventDefinitionId = new Guid("2A72E131-BCFD-481C-8E15-04496E9586DC");
public BoardFlight(DateTime timestamp) : base(EventDefinitionId, timestamp) {
}
public string Seat { get; set; } public bool Upgraded { get; set; } } }
モデルを作成する
モデルを作成するには:
-
CollectionModelという名前のクラスを作成します。例えば、Documentation.Model.CollectionModel。XdbModelBuilderのインスタンスを作成します。
using Sitecore.XConnect; using Sitecore.XConnect.Schema; using System;
namespace Documentation.Model { public class CollectionModel { public static XdbModel Model { get; } = BuildModel();
private static XdbModel BuildModel() { XdbModelBuilder modelBuilder = new XdbModelBuilder("DocumentationModel", new XdbModelVersion(1, 0));
// Facets and events here
return modelBuilder.BuildModel(); } } }
!注モデルのフルネーム(XdbModelクラスのFullNameプロパティで表される)には、モデル名とバージョンが含まれます。例えば
,1.0。 -
必要に応じて、使いたい別のモデルを参照することもできます。以下の例では、Sitecore.XConnect.Collection.Model.CollectionModel.Modelを参照されます。 FacetやEventなどのクラスは自動的に含まれています。
using Sitecore.XConnect; using Sitecore.XConnect.Schema; using System;
namespace Documentation.Model { public class CollectionModel { public static XdbModel Model { get; } = BuildModel();
private static XdbModel BuildModel() { XdbModelBuilder modelBuilder = new XdbModelBuilder("DocumentationModel", new XdbModelVersion(1, 0));
modelBuilder.ReferenceModel(Sitecore.XConnect.Collection.Model.CollectionModel.Model); // Facets and events here
return modelBuilder.BuildModel(); } } }
-
FrequentFlyerInfo接触面とBoardFlight事象を定義します。
using Sitecore.XConnect; using Sitecore.XConnect.Schema; using System;
namespace Documentation { public class CollectionModel { public static XdbModel Model { get; } = BuildModel();
private static XdbModel BuildModel() { XdbModelBuilder modelBuilder = new XdbModelBuilder("DocumentationModel", new XdbModelVersion(1, 0));
modelBuilder.ReferenceModel(Sitecore.XConnect.Collection.Model.CollectionModel.Model);
modelBuilder.DefineFacet<Contact, FrequentFlyerInfo>(FrequentFlyerInfo.DefaultFacetKey); modelBuilder.DefineEventType
(false); return modelBuilder.BuildModel(); } } }
-
ファセット、イベント、または型が異なるアセンブリに位置する型を継承した場合、modelbuilder.RegisterType() メソッドを使って手動で型を登録します。例えば、Documentation.Model.FrequentFlyerInfoがCommon.Model.InheritedBaseを継承することがあります。
using Sitecore.XConnect; using Sitecore.XConnect.Schema; using System;
namespace Documentation { public class CollectionModel { public static XdbModel Model { get; } = BuildModel();
private static XdbModel BuildModel() { XdbModelBuilder modelBuilder = new XdbModelBuilder("DocumentationModel", new XdbModelVersion(1, 0));
modelBuilder.ReferenceModel(Sitecore.XConnect.Collection.Model.CollectionModel.Model);
modelBuilder.RegisterType<Common.Model.InheritedBase>(false);
modelBuilder.DefineFacet<Contact, FrequentFlyerInfo>(FrequentFlyerInfo.DefaultFacetKey); modelBuilder.DefineEventType
(false); return modelBuilder.BuildModel(); } } }
!注モデルを使用するには、カスタムモデル をxConnect、マーケティングオートメーションエンジン、そしてすべてのコアSitecoreインスタンスに展開する必要があります。