クラス
Content Engine の各オブジェクトは、Content Engine クラスからインスタンス化されます。このクラスは、サポートされるメソッドとプロパティーが同じである、オブジェクト・セットの仕様です。オブジェクトが属するクラスによって、メソッド、プロパティー、およびデフォルトのセキュリティーが決まります。Content Engine クラスの多く (代表的なものとしては Document、CustomObject、Folder の各クラスなど) は、クライアント・アプリケーションでサブクラスを派生させることが可能です。このサブクラスには、スーパークラスから継承したプロパティーに加えて、それぞれ独自のプロパティー・セットを定義できます。Content Engine ではほかに、抽象クラスも指定します。これらの抽象クラスは、変更もインスタンス化もできません。抽象クラスは、関連するクラスをグループ化する手段として存在します。抽象クラスのプロパティーおよびメソッドは、具象サブクラスに継承されます。具象サブクラスからはオブジェクトをインスタンス化できます。プロパティーについて詳しくは、「プロパティーの概念」を参照してください。
クラスのメタデータ
メタデータとは、他のデータに関する情報を表すデータのことです。Content Engine ではクラスとプロパティーのメタデータのセットを 2 つ別々に管理しているため、クライアント・アプリケーションはオブジェクト状態の一貫性を保ちながらクラスとプロパティーのメタデータを変更できます。クラスとプロパティーのメタデータには、不変 (固定) メタデータと可変メタデータがあり、それぞれ 2 つのオブジェクトのセット (クラス記述とプロパティー説明オブジェクトのセット、およびクラス定義とプロパティー定義オブジェクトのセット) で表されます。
クラス記述とプロパティー説明のオブジェクトは、読み取り専用プロパティーを使用して、アプリケーションでは変更できない Content Engine のクラスとプロパティーのメタデータを記述 します。これらのオブジェクトは、オブジェクトの関係および階層が変更されたときに、メタデータが不安定な状態にならないようにするために、メタデータのうち固定部分のスナップショットを維持する必要があります。このため、クラスおよびプロパティーのメタデータを変更できるようにするために、並行するオブジェクトのセット (クラス定義とプロパティー定義のオブジェクト) が存在します。これらのオブジェクトは、読み取り/書き込みプロパティーを使用して、クライアント・アプリケーションで変更できる Content Engine のクラスとプロパティーのメタデータを定義 します。 アプリケーションでサブクラス化または変更ができるクラスおよびプロパティーにのみ、クラス定義またはプロパティー定義があり、そのプロパティーを変更できます。アプリケーションで、特定のクラスまたはプロパティーのメタデータを変更してクラス定義およびプロパティー定義オブジェクト内に永続化し、その安定したメタデータの状態を Content Engine サーバーが取得した後に、サーバーはオブジェクト・ストアにある該当のクラス記述およびプロパティー説明のオブジェクトを新しいメタデータの状態に更新します。
単一のバッチ・トランザクション内で、メタデータを更新し、次に更新されたメタデータを使用することはできません。例えば、ユーザーが開始した同じバッチ・トランザクション内で、ドキュメントのサブクラスを作成し、保存した後で、その新しいサブクラスのドキュメントを作成しようとすると、操作は失敗します。まず、あるトランザクション内で新しいサブクラスを作成し、次に別のトランザクションでその新しいサブクラスを使用する必要があります。バッチ・トランザクションについて詳しくは、「バッチの概念」を参照してください。
クラス記述について詳しくは、「クラス記述」を参照してください。クラス定義について詳しくは、「クラス定義」を参照してください。
クラス記述
EngineObject サブクラスのインスタンスであるすべての Content Engine オブジェクトには、クラス記述があります。クラス記述は、特定の Content Engine クラスのメタデータを記述するもので、アプリケーションで変更することはできません。各クラス記述は ClassDescription オブジェクトで表されます。このオブジェクトは、固有の ID と SymbolicName プロパティー値を持ち、オブジェクト・ストアの ClassDescriptions プロパティーにより参照される、ClassDescriptionSet 順序なしセットに格納されています。特定のクラス記述をクライアント・アプリケーションが取得する必要がある場合、パフォーマンス上の理由で、該当するオブジェクトの ClassDescription プロパティーから直接取得するか、Factory.ClassDescription.fetchInstance メソッドを使用することを推奨します。オブジェクト・ストアの ClassDescriptions プロパティーによって返されるすべてのクラス記述を繰り返し処理することは推奨しません。
各 ClassDescription オブジェクトには、PropertyDescriptions プロパティーにより参照される、PropertyDescriptionList 順序付きリストがあります。このリストは、クラスのプロパティー説明をすべて保持します。各プロパティー説明は、特定のオブジェクト・プロパティーの固定の不変メタデータを記述していて、PropertyDescription オブジェクトで表されます。あるクラスからオブジェクトがインスタンス化されるとき、プロパティー説明メタデータは、そのオブジェクトのプロパティーの基礎になります。プロパティー説明について詳しくは、「プロパティー説明」を参照してください。
次のクラス記述プロパティーは、クラスの読み取り専用のメタデータをいくつか記述します (クラス記述プロパティーはすべて読み取り専用です)。
- AllowsInstances: アプリケーションで、このクラスのオブジェクト・インスタンスを作成できるかどうかを指定します。このプロパティーが false の場合、クラスをインスタンス化できるのは Content Engine サーバーのみです。
- IsHidden: 管理者ではないユーザーに対してクラスを非表示にするかどうかを指定します。
- IsPersistent: クラスのオブジェクト・インスタンスの状態を保存できるかどうかを指定します。このプロパティーが false の場合、オブジェクト・インスタンスの状態を保存できるのは Content Engine サーバーのみです。
- PropertyDescriptions: クラス記述に属するすべてのプロパティー説明の順序付きコレクションを格納する PropertyDescriptionList オブジェクトを指定します。
オブジェクトがインスタンス化された後で、それが属するクラスのメタデータに、ClassDescription オブジェクト値を持つプロパティーにより返される ClassDescription オブジェクトを介してアクセスできるようになります。ClassDescription オブジェクトを変更できるのはサーバーのみであるため、そのプロパティーはすべて、その PropertyDescriptions プロパティーにより返されるすべての PropertyDescription オブジェクトも含め、読み取り専用です。
クライアント・アプリケーションでは、次のような基本処理に ClassDescription オブジェクトを使用できます。
- そのプロパティー値を読み取って、クラスの属性を調べる。
- その PropertyDescriptionList プロパティーを読み取って、そのクラスのオブジェクト・インスタンスに属するプロパティーのメタデータを記述する。
- その DefaultInstancePermissions プロパティーを返して、そのクラスのオブジェクト・インスタンスのデフォルトの権限を調べる。
ClassDescription オブジェクト自身も Content Engine オブジェクトであり、(ほかのすべての Content Engine クラスと同様に) 最上位レベルの EngineObject クラスのサブクラスのオブジェクト・インスタンスです。このため、すべての ClassDescription オブジェクトには、ClassDescription クラスを記述する ClassDescription オブジェクトを返す ClassDescription プロパティーがあります。 再帰を防ぐため、ClassDescription クラスの ClassDescription オブジェクトの ClassDescription プロパティーは null を返します。
クラス記述は、メタデータ駆動型のアプリケーションで多く使用されます。これは、クライアントとサーバーの両方でキャッシュされることにより、クラス定義に比べて取得が高速なためです。
クラス定義
クライアント・アプリケーションで変更できるすべての Content Engine クラスに対して、その可変クラス・メタデータを保持するクラス定義が Content Engine によって用意されています。オブジェクト・ストアにある各クラス定義は、ClassDefinition サブクラスのオブジェクト・インスタンスにより定義されます。ルート・クラスごとに、対応するクラス定義は、オブジェクト・ストアの RootClassDefinitions プロパティーにより参照される ClassDefinitionSet オブジェクトから直接使用できます。それ以外の (非ルート・クラスの) クラス定義の場合、直接のスーパークラスのクラス定義の ImmediateSubclassDefinitions プロパティーによって返されるコレクション内にあります。 例えば、WorkflowDefinition の場合、Document ルート・クラスが直接のスーパークラスなので、WorkflowDefinition クラスは Document クラス定義の ImmediateSubclassDefinitions プロパティーによって返される ClassDefinitionSet コレクション内にあります。さらに、Document クラスのクラス定義は ObjectStore オブジェクトの RootClassDefinitions プロパティーによって返される ClassDefinitionSet コレクション内にあります。特定のクラス定義をクライアント・アプリケーションが取得する必要がある場合、パフォーマンス上の理由で、Factory.ClassDefinition.fetchInstance メソッドを使用することを推奨します。オブジェクト・ストアの RootClassDefinitions プロパティーによって返されるすべてのクラス定義を繰り返し処理することは推奨しません。
各クラス定義オブジェクトには、PropertyDefinitions プロパティーにより参照される PropertyDefinitionList 順序付きリストがあります。このリストは、クラスのプロパティー定義をすべて保持します。各プロパティー定義は、アプリケーションが変更できる特定のオブジェクト・プロパティーのメタデータを定義する PropertyDefinition オブジェクトで表されます。プロパティー定義について詳しくは、「プロパティー定義」を参照してください。
例えば、Document クラスはアプリケーションで変更できるため、オブジェクト・ストア内に Document というシンボル名のクラス記述とクラス定義の両方が存在します。クラス記述は変更できませんが、クラス定義については、プロパティーの変更、サブクラス化、およびプロパティー定義の追加ができます。
次のクラス定義プロパティーは、クラスの読み取り/書き込みメタデータをいくつか定義します (特に明記しているものを除き、プロパティーはすべて読み取り/書き込み可能です)。
- AllowsInstances: アプリケーションで、このクラスのオブジェクト・インスタンスを作成できるかどうかを指定します。このプロパティーが false の場合、クラスをインスタンス化できるのは Content Engine サーバーのみです。
- AllowsPropertyAdditions: ユーザー定義プロパティーをクラスに追加できるかどうかを指定します。
- AllowsSubclasses: このクラスからサブクラスを作成できるかどうかを指定します。読み取り専用です。
- IsHidden: 管理者ではないユーザーに対してクラスを非表示にするかどうかを指定します。
- IsPersistent: クラスのオブジェクト・インスタンスの状態を保存できるかどうかを指定します。このプロパティーが false の場合、オブジェクト・インスタンスの状態を保存できるのは Content Engine サーバーのみです。読み取り専用です。
- PropertyDefinitions: クラス定義に属するすべてのプロパティー定義の順序付きコレクションを格納する PropertyDefinitionList オブジェクトを指定します。
- SymbolicName: オブジェクト・ストア内でクラスを識別する固有プログラマチック識別子を指定します。
ClassDefinition クラスには、SubscribableClassDefinition、VersionableClassDefinition、DocumentClassDefinition、および EventClassDefinition の 4 つのサブクラスがあります。その用途の要約を以下に示します。
- SubscribableClassDefinition: ClassDefinition クラスの直下のサブクラス。このクラスのオブジェクト・インスタンスは、すべてのクラスのクラス定義を保持します (Document クラスおよび Event クラスを除く)。
- VersionableClassDefinition: SubscribableClassDefinition クラスの直下のサブクラス。DocumentClassDefinition クラスの直接のスーパークラスでもあります。オブジェクト・ストアに、このクラスのオブジェクト・インスタンスはありません。
- DocumentClassDefinition: VersionableClassDefinition クラスの直下のサブクラス。このクラスのオブジェクト・インスタンスは、Document クラス (およびそのサブクラス) のクラス定義を保持します。
- EventClassDefinition: ClassDefinition クラスの直下のサブクラス。このクラスのオブジェクト・インスタンスは、Event クラス (およびそのサブクラス) のクラス定義を保持します。
したがって、定義する特定のクラスに応じて、ClassDefinitionSet コレクション・オブジェクトに保持されているクラス定義は SubscribableClassDefinition、DocumentClassDefinition、または EventClassDefinition のいずれかのオブジェクトになります。
サブクラス
Content Engine では、特定の既存のクラスをサブクラス化して、新規のクラスを定義することができます。新しいクラスを作成すると、そのサブクラス化元のクラスは、新しいクラスの直接のスーパークラスになります。新しいサブクラスは、その直接のスーパークラスによりサポートされるメソッドとプロパティーをすべて自動的に継承します。サブクラスの識別子として、直接のスーパークラス、あるいはさらにその上のスーパークラスの識別子と同じものを使用することはできません。単一のスーパークラスおよびそれぞれの新規サブクラスから複数のサブクラスを派生させることができます。これにより、段階的に特化するクラスの階層が作成できます。
以下の点で、サブクラスの定義をそのスーパークラスの定義とは異なるものにできます。
- プロパティーの追加がサポートされます。
- スーパークラスでは省略可能である継承したプロパティーを、サブクラスでは必須プロパティーにできます (必須プロパティーを省略可能にはできません)。
- 継承したプロパティーのデフォルト値を、サブクラスでは別の値にできます。
- 継承したプロパティーに許容される値を、サブクラスでさらに制限できます (しかし、新たに許容される値を追加することはできません)。
すべての Content Engine オブジェクトはただ 1 つのクラスのインスタンスになりますが、複数のクラス定義に従うこともできます。これは、最上位の基本クラスを含む一連のスーパークラスで必要なすべてのプロパティーを保有し、すべてのメソッドをサポートするためです。すべてのサブクラスには、プロパティー説明の順序付きリストが含まれます。リストには、まず継承したプロパティーが、スーパークラスにリストされている順序で並び、その後にサブクラスで追加されたプロパティーが続きます。
アプリケーションがクラスのサブクラスを作成するには、次の条件を満たしている必要があります。
- クラスで、オブジェクト・ストアの RootClassDefinition プロパティーにより返されるコレクション・オブジェクトに、クラス定義、またはそのクラス定義のスーパークラスが定義されていること。
- クラス定義の AllowsSubclasses プロパティーの値が true であること。
これらの条件が満たされると、アプリケーションでは次の手順で新しいサブクラスを作成できます。
- サブクラス化するクラスに属するクラス定義へのオブジェクト参照を取得します (Factory.ClassDefinition.fetchInstance メソッドを使用)。
- クラス定義の createSubclass メソッドを呼び出し、返される新規クラス定義オブジェクトに参照を設定します。
- 新規クラス定義オブジェクトの save メソッドを呼び出すことにより、新規クラスをオブジェクト・ストアに保存します。
シンボル名
クラスのシンボル名は、オブジェクト・ストア内で一意である必要があります。V4.5.1 リリース以降、FileNet P8 Content Engine に、クラスとプロパティーのシンボル名のメタデータ接頭部命名規則が定義されています。このリリース以降に (独自の Content Engine 機能アドオンを生成する IBM® Enterprise Content Manager 製品によって、または Content Engine サーバー内の新しいシステム・プロパティーによって) 導入されたすべての新しいクラスとプロパティーは、この命名規則を順守する必要があります。この命名規則は、クラスとプロパティーのシンボル名の値にのみ適用されることに注意してください。表示名として選択する値に対する制約はありません。
接頭部命名規則の詳細を以下に示します。
- 「Cm」接頭部は、このリリース内で導入されたユーザー拡張可能クラスの新規 Content Engine クラスまたはシステム・プロパティーのシンボル名で使用されます。例えば、「CmNewProperty」です。
- すべての新規システム・クラスは、ユーザー拡張可能かどうかとは無関係に、命名規則に従います。
- 「Cm」接頭部は、Content Engine 機能アドオン内で導入された新規プロパティーまたはクラスでも使用されます。ただし、DITA 機能アドオンでは、「Cm」接頭部ではなく「Dita」接頭部が引き続き使用されます。
V4.5.1 リリース以降、独自の機能アドオンを生成するすべての IBM Enterprise Content Manager 製品も、接頭部命名規則に適合します。これらの機能アドオンは「Cm???」接頭部を使用します (「???」は、製品名を短縮した省略語を表します)。しかし、このリリースより前に独自の接頭部命名規則が既に設定されているすべての IBM Enterprise Content Manager 製品では、その命名規則が引き続き使用されます。
予約されているアドオン・メタデータ接頭部のリストを以下に示します。
- 「Cm」: FileNet P8 Content Engine で使用するために予約済み
- 「Dita」: FileNet P8 DITA アドオン用に P8 Content Engine で使用するために予約済み
- 「RM」: IBM Enterprise Records で使用するために予約済み
- 「EDM」: IBM eDiscovery Manager で使用するために予約済み
- 「EDISC_」: IBM eDiscovery Manager で使用するために予約済み
- 「ICC」: IBM Content Collector で使用するために予約済み
新しいクラスまたはカスタム・プロパティーを作成する場合、そのシンボル名には、これらの予約済み接頭部のいずれかで開始される値を割り当てないでください。この規則を順守すると、このリリースまたは将来のアップグレードにおいて、名前の競合が発生することはありません。
カスタム・プロパティー
Content Engine には、システム・プロパティーとカスタム (ユーザー定義) プロパティーの 2 つのタイプのプロパティーがあります。システム・プロパティーは、Content Engine の機能に不可欠なプロパティーで、削除または他のクラスへの追加はできません。カスタム・プロパティーは、既存のクラスまたは新規サブクラスをカスタマイズする手段を提供するために、アプリケーションでクラスに追加できるプロパティーです。プロパティーがシステム・プロパティーとカスタム・プロパティーのどちらであるかを判別するには、プロパティーの PropertyDescription オブジェクトまたは PropertyDefinition オブジェクトの、IsSystemOwned プロパティーの値を調べます。
アプリケーションがクラスにカスタム・プロパティーを追加するためには、次の条件を満たしている必要があります。
- クラスで、オブジェクト・ストアの RootClassDefinition プロパティーにより返されるコレクション・オブジェクトに、クラス定義、またはそのクラス定義のスーパークラスが定義されていること。
- クラス定義の AllowsPropertyAdditions プロパティーの値が true であること。
これらの条件が満たされると、クラスはユーザー拡張可能であり、アプリケーションでは次の手順でクラスにユーザー定義プロパティーを追加できます。
- サブクラス化するクラスに属するクラス定義へのオブジェクト参照を取得します (Factory.ClassDefinition.fetchInstance メソッドを使用)。
- 新規プロパティーの基礎として既存のプロパティー・テンプレートを使用しない場合は、プロパティー・テンプレート・オブジェクトを生成し、その必須プロパティーを設定して、保存します。
- プロパティー・テンプレートの createClassProperty メソッドを呼び出し、返される新規プロパティー定義に参照を設定します。
- クラス定義の PropertyDefinitions プロパティーへのオブジェクト参照を取得し、新しいプロパティー定義をパラメーターとして使用して、PropertyDefinitionList コレクション・オブジェクトの add メソッドを呼び出します。
- クラス定義の save メソッドを呼び出して、新しいプロパティーをオブジェクト・ストアに保存します。
オブジェクト・インスタンス化
Content Engine では、クライアント・アプリケーションで、あるクラスをオブジェクトにインスタンス化できます。
アプリケーションが特定のクラスをインスタンス化するためには、次の条件を満たしている必要があります。
- クラスで、オブジェクト・ストアの RootClassDefinition プロパティーにより返されるコレクションに、クラス定義、またはそのクラス定義のスーパークラスが定義されていること。
- クラス定義の AllowsInstances プロパティーの値が true であること。
これらの条件が満たされると、アプリケーションでは次の手順でクラスのオブジェクト・インスタンスを作成できます。
- 作成するオブジェクトの型に対応する Factory クラスの createInstance メソッドを呼び出します。すべての createInstance メソッドでは、少なくとも、オブジェクト・ストアおよびそのオブジェクトのクラス (Factory クラスで表されるクラスのサブクラスの場合もあります) のシンボル名の指定を必要とします。例えば、ドキュメント・オブジェクトを作成するには、Factory.Document.createInstance メソッドを呼び出します。該当クラスの Factory クラスに createInstance メソッドがない場合、アプリケーションでインスタンス化することはできません。
- createInstance メソッドは、正常に呼び出されると、classId パラメーターで指定したクラスのオブジェクト・インスタンスを返します。このオブジェクトをオブジェクト・ストアに保存するには、必須プロパティーを設定し、オブジェクトの save メソッドを呼び出します。
オブジェクトの永続性の種類
Content Engine には、独立オブジェクトを表すクラスと依存オブジェクトを表すクラスの 2 つの主要なクラス・カテゴリーがあります。
独立オブジェクトには次のような特性があります。
- 独立オブジェクトが属するクラスは、IndependentObject クラスのサブクラスです。
- getObjectReference メソッドを呼び出すことにより取得できる、ほかのどのオブジェクトからも独立した固有の識別があります。このメソッド呼び出しは、ObjectReference オブジェクトを返します。これにより、独立オブジェクトの識別情報が示されます。
- 独立オブジェクトは、InstantiatingScope.fetchObject または Factory.<classname>.fetchInstance への呼び出しによりサーバーから取得できます。
- 別のオブジェクトから直接参照されていなくても永続化できます。
- 一部の独立オブジェクトは、それが属するクラスに対して、サブクラス化またはプロパティーの追加ができます。特定のクラスに対するサブクラス化または新規プロパティーの追加ができるかどうかは、クラス定義の allowsSubclasses プロパティーおよび allowsPropertyAdditions プロパティーを調べることにより判別できます。
依存オブジェクトには次のような特性があります。
- 依存オブジェクトが属するクラスは、DependentObject クラスのサブクラスです。
- 依存オブジェクトは、独立オブジェクトのプロパティーとしてのみフェッチできます。
- 依存オブジェクトを永続化するためには、それを参照する独立オブジェクトを (オブジェクト値を持つプロパティーを使用して) 永続化する必要があります。
- 依存オブジェクトが属するクラスにはクラス定義がないため、サブクラス化も変更もできません。
オブジェクトは、独立させる以外に、永続化可能にする (アプリケーションで状態をデータベースに保存できるようにする) こともできます。独立し、かつ永続化可能なオブジェクトは、IndependentlyPersistableObject クラスのサブクラスに属し、独立かつ永続化可能なオブジェクトと見なされます。これらのオブジェクトは、アプリケーションで直接オブジェクトを作成、更新、または削除できるようにする save メソッドおよび delete メソッドを実装します。
独立かつ永続化可能なオブジェクトに (オブジェクト値を持つプロパティーを介して) 属する依存オブジェクトは、依存かつ永続化可能 なオブジェクトと見なされます。依存かつ永続可能なオブジェクトは、独立して存在することはなく、save メソッドおよび delete メソッドを実装しません。このオブジェクトの状態は、それが属する独立かつ永続可能なオブジェクトが保存されたときにのみ保存されます。
例えば、ClassDefinition オブジェクトは、独立かつ永続化可能なオブジェクトです。これが属するクラスは、IndependentObject クラスおよび IndependentlyPersistableObject クラスのサブクラスであるためです。適切な権限が与えられている場合、ClassDefinition オブジェクトを save メソッドを使用して直接保存することも、delete メソッドを使用して直接削除することもできます。一方、PropertyDefinition オブジェクトは、依存かつ永続可能なオブジェクトです。これが属するクラスは、DependentObject クラスのサブクラスであるためです。したがって、save メソッドも delete メソッドもありません。PropertyDefinition オブジェクトは、ClassDefinition オブジェクトの PropertyDefinitions プロパティーにより参照される PropertyDefinitionList コレクション・オブジェクト内のオブジェクトとしてのみ存在し、それが属する ClassDefinition オブジェクトが保存されるときにのみ保存されます。さらに、PropertyDefinition オブジェクトは、それが属する ClassDefinition オブジェクトが削除されると削除されます。
独立オブジェクトの別の例は、ClassDescription オブジェクトです。これは、IndependentObject サブクラスのインスタンスであるため独立オブジェクトです。しかし、IndependentlyPersistableObject サブクラスのインスタンスではないため、独立かつ永続化可能ではありません。したがって save メソッドも delete メソッドもありません。同様に、ClassDescription オブジェクトはクライアント・アプリケーションで永続化できないため、これに属するすべての依存オブジェクト (PropertyDescription オブジェクトなど) は、依存かつ永続可能ではありません。
タイム・スタンプ
Content Engine サーバーは、協定世界時を使用して、すべての永続オブジェクトのタイム・スタンプを作成し、保管します。時刻関連の文字列を計算するには、ご使用のクライアント・アプリケーションで以下の手順を使用します。
- クライアント・アプリケーションで、API を使用してオブジェクトを作成または変更します。
Content Engine サーバーは、オブジェクトが作成または変更された日時を協定世界時で保管します。
- DateCreated プロパティーまたは DateLastModified プロパティーを使用して、オブジェクトが作成または変更されたときを示す日時の値を取得します。ドキュメントの場合は、DateCheckedIn プロパティーまたは DateContentLastAccessed プロパティーにアクセスすることもできます。
- 日時の値を協定世界時から現地時間に変換し、時刻をユーザー指定のローカル文字列にフォーマット設定します。
クライアント・アプリケーションで入力可能な日時 (日付値プロパティー・テンプレートまたはプロパティー定義のプロパティーなど) については、以下のようになります。
- クライアント・アプリケーションで、現地時間を協定世界時に変換します。
- オブジェクトの PropertyMinimumDateTime プロパティー、PropertyMaximumDateTime プロパティー、および PropertyDefaultDateTime プロパティーのローカル日時の値を入力します。最小時刻は 12:00:00 で始まり、最大時刻は 23:59:59 で終わります。デフォルトの時刻は 12:00:00 です)。
Content Engine サーバーは、日時の値を協定世界時で保管します。
各クライアント・アプリケーションは、インストールされているコンピューターのシステム・クロックを使用して現地時間を判別します。