アノテーション
Annotation オブジェクトは、アノテーションや脚注をつけるためオブジェクトに追加できる、付随的な情報を表します。アノテーションは、カスタム・オブジェクト、ドキュメント、およびフォルダー (Containable オブジェクト) に関連付けることができます。アノテーションには次のような特性があります。
- ドキュメント同様、アノテーションは、コンテンツを保持するオブジェクトであり、0 個以上の ContentElement オブジェクトを関連付けることができます。しかし、コンテンツ・エレメントが特定のバージョンに固定される永続化ドキュメントと異なり、アノテーションはバージョン管理されず、コンテンツ・エレメントを追加したり削除したりできます。コード例については、アノテーションの取得を参照してください。コンテンツの詳細については、Content Engine Administration Help のドキュメントの内容を参照してください。
- ドキュメントに対して、最も簡単に新規アノテーションを作成する方法は、createAnnotation メソッドを使用することです。
フォルダーおよびカスタム・オブジェクトについては、Factory メソッドを使用して新規 Annotation オブジェクトを作成し、次にそのオブジェクトの AnnotatedObject プロパティーをアノテーション対象のフォルダーまたはカスタム・オブジェクトに設定します。
コード例については、「ドキュメントへのアノテーションの付加」および「フォルダーへのアノテーションの付加」を参照してください。
- 複数のコンテンツ・エレメントを含むドキュメントに対しては、どのコンテンツ・エレメントにアノテーションを適用するかを指定できます。
- ドキュメント、フォルダー、またはカスタム・オブジェクトには複数のアノテーションを設定できます。
- Annotation オブジェクトのインスタンスを設定できるのは、1 つのドキュメント、フォルダー、またはカスタム・オブジェクトに対してのみです。
- アノテーションのコンテンツは、ある StorageArea から別の StorageArea に移動できます。コード例については、異なるストレージ域へのコンテンツの移動を参照してください。
- アノテーションはバージョン管理可能ではないため、ストレージ域で永続化されたアノテーション・コンテンツは、ストレージ域が閉じられると、そのストレージ域での変更と削除ができなくなります。アノテーション・コンテンツを変更するには、最初にそのコンテンツを、開かれた状態のストレージ域に明示的に移動する必要があります。(この動作は、バージョン管理可能なドキュメントのコンテンツの場合とは対照的です。ドキュメント・クラスの保管ポリシーを、閉じられた状態のストレージ域から開かれた状態のストレージ域に変更すると、コンテンツの新しいバージョンが、開かれた状態のストレージ域に自動的に保存されます。)
- ドキュメントのアノテーションでは、アノテーションは単一のドキュメント・バージョンにのみ関連付けられます。アノテーションはバージョン管理されず、ドキュメントのバージョンが更新されると引き継がれません。
- アノテーションは、そのアノテーション・オブジェクトとは別個に、変更および削除できます。ただし、アノテーションが関連付けられているオブジェクトから切り離して作成および永続化することはできません。
- アノテーションが付加されたオブジェクトを削除すると、そのアノテーションも削除されます。
- アノテーションは個別にセキュリティー保護ができます。アノテーションのデフォルトのセキュリティーは、そのクラスと、アノテーションが付加されたオブジェクトの両方によって設定されます。アノテーションには、オプションで、セキュリティー・ポリシーを割り当てることができます。詳しくは、セキュリティー・ポリシーを参照してください。
- アノテーションは、アドホック照会を使用して検索および取得できます。詳細については、照会を参照してください。FileNet® P8 が提供するアプリケーション (IBM® Content Navigator など) は、索引付けされたアノテーション・テキストの検索をサポートしません。これを実行するには、カスタム・アプリケーションが必要です。詳細については、「アノテーション・オブジェクトの操作」を参照してください。
- アノテーションは、アノテーションの作成などのアクションが発生した場合に起動されるサーバー側のイベントにサブスクライブできます。詳細については、サブスクリプションの概念を参照してください。
- アノテーションに関する操作は監査できます。詳細については、監査の概念を参照してください。
- アノテーションは、リンク関係に参加できます。詳細については、Link インターフェースを参照してください。
- アノテーションの ClassDescription オブジェクトは、ほかの Content Engine オブジェクトに関連付けられているクラスの説明と同様に操作できます。例えば、次のタスクを実行できます。
- クラスのオブジェクトのデフォルトのセキュリティーを返します。例えば新しく Annotation オブジェクトを作成する際に、デフォルト・セキュリティーがアプリケーションに適切かどうか決定したり、ユーザー・インターフェースにデフォルト・セキュリティーを表示し、ユーザーにセキュリティーの変更を確認できます。
- Annotation オブジェクトのプロパティーを記述するメタデータ・オブジェクトである ClassDescription オブジェクトのプロパティー説明を返します。例えば、アノテーションを作成する際に、特定のアノテーションの ClassDescription オブジェクトを取得するためのコードを組み込み、設定が必要なカスタム・プロパティーを確認する場合などがあります。
- ClassDescription オブジェクトのプロパティーを返します。例えば、ユーザーが選択できるクラスをユーザー・インターフェースに表示する際に、ClassDescription オブジェクトの DisplayName プロパティーを返す場合などがあります。
- デフォルトのストレージ域 (コンテンツが格納されるファイル・システムまたはデータベース) を構成します。
- 基本クラスとすべてのサブクラスが含まれる ClassDescription オブジェクトのコレクションを取得します。
- Annotation 基本クラスを、Administration Console for Content Platform Engine または Content Engine の API を使用してサブクラス化します。新しいクラスのプロパティー説明の設定値は、クラスの新しいインスタンスには適用されますが、既存のインスタンスには適用されません。コード例については、「アノテーションのサブクラスの作成」を参照してください。
- Annotation クラスからは ISAnnotation サブクラスが派生します。これは Content Federation Services for Image Services をサポートします。このサブクラスは、CFS-IS Extensions 機能アドオンを使用してインストールされます。Content Federation Services for Image Services の詳細については、Content Engine Administration の Content Federation Services for Image Services の概要のトピックを参照してください。
- 推奨されてはいませんが、プログラマチックな手法で 1 つのドキュメントから別のドキュメントにアノテーションをコピーすることは可能です。コピーされたアノテーションは元のアノテーションから変更されないため、そのコンテンツ・エレメントは、元のアノテーションの F_ID および F_ANNOTATEDID の値を維持します。ユーザーが新規ドキュメント上のコピーされたアノテーションを変更および保存できるようにするには、コードによって、コピーされたアノテーションのコンテンツ・エレメント (annotation.xml) も、F_ID および F_ANNOTATEDID の新規の GUID を使用して更新する必要があります。
以下の Java™ コード例は、プログラマチックな手法でアノテーション・コンテンツをコピーし、ID をリセットする方法の概要を示しています。このコード例は完全なプログラムではなく、そのまま実行することを意図したものではありません。このコード例を使用する前に、ご使用の環境に応じて変更しなければなりません。
// ドキュメントを使用して、Annotation オブジェクト・プロパティーを作成する com.filenet.wcm.api.Document doc; //このドキュメントには、コピーされるアノテーションがある com.filenet.wcm.api.Properties props = ObjectFactory.getProperties(); //Get the Annotation class property. com.filenet.wcm.api.Property prop = ObjectFactory.getProperty(Property.ANNOTATED_OBJECT); prop.setValue(doc); props.add(prop); // Get the annotation to be copied from the original document. Annotation oldAnnotation; // 古いドキュメントからアノテーションを取得する Document d = oldAnnotation.getXMLDoc(); Element root = d.getDocumentElement(); Element propDesc = WcmXMLUtil.getChildElement(root, PROPDESC); // Create a new Annotation object. Annotation apiNote = (Annotation)objectStore.createObject(ClassDescription.ANNOTATION, props, oldAnnotation.getPermissions()); String newGUID = apiNote.getId(); // Get the new ID. // 新規 ID を設定し、アノテーション・コンテンツを新規ドキュメントにコピーする propDesc.setAttribute(F_ANNOTATEDID, newGUID); propDesc.setAttribute(F_ID, newGUID); apiNote.setContent(oldAnnotation.getContent());
概念に関する詳細情報については、Content Engine Administration Help のアノテーションを参照してください。