カスタム・ルート・クラス
カスタム・ルート・クラスは、Content Engine クラス階層内の他のすべてのルート・クラスの一般属性 (Document、Folder、CustomObject、Annotation、Link など) を共有します。 ルート・クラスは、他のビジネス・オブジェクトから継承されることはありません。また、ルート・クラスのサブクラスを作成することができます。各ルート・クラスとそのすべてのサブクラスは、オブジェクト・ストア・データベース内の個別のテーブルにあります。複数のルート・クラスにまたがって照会を行うことはできません。また、オブジェクトのクラスを、同じルート・クラスに属していない別のクラスに変更することもできません。
カスタム・ルート・クラスは、CustomObject サブクラスと類似した機能を提供しますが、高いパフォーマンスとスケーラビリティーを備えています。 CustomObject と同様に、カスタム・ルート・クラスは、カスタム・プロパティーの汎用オブジェクトを作成するために使用されます。 CustomObject とカスタム・ルート・クラスは、内容を持っておらず、バージョン管理可能ではなく、ライフサイクル機能をサポートしていません。
CustomObject とサブクラスのインスタンスは、Generic 表に格納されます。 個別に使用される複数の CustomObject サブクラスが定義されていて、各サブクラスの取得要件が異なる場合は、Generic 表に対するカスタム・オブジェクト照会のパフォーマンスが低下する可能性があります。
カスタム・ルート・クラスの場合、ルート・クラスを新しく作成するたびに、新しい表が動的に生成されます。 この表は、ルート・クラスから作成されたカスタム・ルート・クラスとサブクラスのインスタンスを格納するためだけに使用されます。カスタム・ルート・クラスのテーブルの命名規則については、カスタムのテーブル名と列名を参照してください。
専用の表を使用すると、以下の利点があります。
- 同じルート・クラスのインスタンスがばらばらではないため、必要に応じて索引を適用することができ、検索速度が大幅に向上します。
- データ・ストレージをより適切に管理することができます。
- Content Engine により、必要に応じて表 (および他の関連オブジェクト) の作成と削除が自動的に実行されます。
- 組み込み表とは異なり、カスタム・ルートでは、システム所有の列に対して索引を作成できるため、柔軟なカスタムが可能です。
CustomObject とは異なり、カスタム・ルート・クラスには以下の制限があります。
- 複数のカスタム・ルート階層にまたがってクラスを変更することはできません (複数の表にまたがってクラスを変更することはできません)。
- 複数のカスタム・ルート階層にまたがって検索を実行することはできません。
- 包含可能動作はサポートされません。
抽象クラス定義
具象カスタム・ルート・クラスを作成するには、システムで提供される抽象クラス定義をサブクラス化します。抽象クラス定義は、インスタンス化することも、照会することも、プロパティーを使用して拡張することもできません。しかし、カスタム・ルート・クラスは、インスタンス化することも、照会することも、拡張することもできます。
カスタム・ルート・クラスの動作は、ベースとなる特定の抽象クラス定義によって決まります。 カスタム・ルート・クラスは、以下の抽象クラス定義からサブクラス化することができます。
- CmAbstractPersistable は、複製機能とサブスクライブ可能機能を提供します。
- CmAbstractQueueEntry は、キュー・スイープ・タスクとの互換性を提供します。
- CmAbstractSequential は、正確な日時順に処理する必要があるカスタム・オブジェクトのサポートを提供します。独自のキューの処理と制御を必要とするカスタム・アプリケーションを使用することもできます。