カスタム・オブジェクト
カスタム・オブジェクトは、CustomObject オブジェクトによって表される汎用オブジェクトです。このオブジェクトはサブクラス化可能で、個別に保護可能であり、オブジェクト・ストアで永続化可能です。
CustomObject クラスには、最小限のプロパティー・セットが用意されています。基本的に、サブクラス化が可能でカスタム・プロパティーを追加できる、単純でカスタマイズ可能なクラスとして存在します。Document オブジェクトとは異なり、CustomObject オブジェクトはコンテンツを格納せず、バージョン管理できず、ライフ・サイクル機能をサポートしていません。コンテンツの格納やバージョン管理を行う必要がなく、プロパティーの格納のみを行うためのオブジェクトが必要な場合は、コンテンツのない Document オブジェクトよりも CustomObject オブジェクトの方が適しています。その方が、プロパティーの数が少なく、使用するリソースの数も少ないためです。
カスタム・オブジェクトには次のような特性があります。
- カスタム・オブジェクトのクラスをサブクラス化できます。
- カスタム・プロパティーを追加することで、カスタム・オブジェクトのクラスをカスタマイズできます。
- カスタム・オブジェクトが属するクラスを既存の CustomObject サブクラスに変更できます。
- カスタム・オブジェクトは包含可能です。カスタム・オブジェクトをフォルダーにファイリングして、静的な参照コンテナー関係に属することができます。すなわち、ReferentialContainmentRelationship オブジェクトがカスタム・オブジェクトを参照できます。
- 1 つ以上のアノテーションをカスタム・オブジェクトに関連付けることができます。
- カスタム・オブジェクトをワークフロー・サブスクリプションの対象にすることができます。すなわち、手動で開始するか、イベントの発生時に開始することができるワークフローをカスタム・オブジェクトに添付できます。
- カスタム・オブジェクトは、アクションの発生時に起動するサーバー側のイベントにサブスクライブできます。
- カスタム・オブジェクトの処理を監査できます。
- カスタム・オブジェクトは連携ロックに参加できます。つまり、オブジェクトがロックされるかどうかを指定するフラグをオブジェクトに対して設定できます。連携アプリケーションは、ロックをテストして、ロックが検出された場合は、そのオブジェクトを読み取り専用アクセス権を持つオブジェクトとして扱うことができます。
- カスタム・オブジェクトは定義済みの名前プロパティーを持ちません。Name プロパティーの値は、デフォルトにより ID プロパティーの値に設定されます。
- カスタム・オブジェクトはコンテンツ (アノテーション以外) を格納せず、バージョン管理できず、ライフ・サイクル機能をサポートしません。
カスタム・オブジェクトの作成方法と使用法を示すコード例については、カスタム・オブジェクトの操作を参照してください。
Name プロパティー
柔軟性を高めるため、( の大半のクラスとは異なり) CustomObject クラスには名前プロパティーとして指定された特定のシステム・プロパティーがありません。したがって、CustomObject クラスやそのサブクラスにカスタム名プロパティーを追加しない限り、CustomObject オブジェクトの Name プロパティーのデフォルト値は、ID プロパティーの値に設定されます。
CustomObject クラスまたはそのいずれかのサブクラスのカスタム名プロパティーを作成するには、次の手順で操作します。
- 特定のカスタム・オブジェクト・クラスを定義するクラス定義に、カスタム・文字列値プロパティーを追加します。
- カスタム・プロパティーのプロパティー定義 (PropertyDefinitionString オブジェクト) の IsNameProperty プロパティーを true に設定します。
新しい CustomObject オブジェクトのインスタンスを作成し、そのカスタム名プロパティーの値を設定すると、CustomObject オブジェクトの Name プロパティーが、ID プロパティーではなく自動的にカスタム名プロパティーの値に設定されます。