6.7.3 文書空間オブジェクトの作成

ここでは,文書空間オブジェクトの作成について説明します。

<この項の構成>
(1) 文書空間オブジェクトの作成に使用するメソッド
(2) 文書の全文検索インデクスの作成

(1) 文書空間オブジェクトの作成に使用するメソッド

DbjDocSpaceインターフェースでは,作成する文書空間オブジェクトの種別ごとにメソッドが定義されています。

作成できる文書空間オブジェクトの種別と,作成に使用するメソッドについて,次の表に示します。

表6-4 文書空間オブジェクトの種別と作成に使用するメソッド

文書空間オブジェクトメソッド
バージョンなし文書createDocument
バージョン付き文書createVrDocument
バージョンなしフォルダcreateFolder
バージョン付きフォルダcreateVrFolder
独立データcreateIndependentData
パブリックACLcreatePublicACL

なお,文書空間オブジェクトの作成が成功した場合,作成した文書空間オブジェクトを操作するためのDbjObjインターフェースがメソッドの戻り値として返却されます。DbjObjインターフェースの詳細については,「6.8 文書空間オブジェクトの操作」を参照してください。

また,文書空間オブジェクト作成時には,次の情報を指定できます。

それぞれの情報について説明します。

文書空間オブジェクトのトップオブジェクトクラス
文書空間オブジェクトのトップオブジェクトを作成する基になるDMAクラス(トップオブジェクトクラス)を指定できます。各文書空間オブジェクトで指定できるトップオブジェクトクラスについては,「2.2.2 文書空間オブジェクトクラスとDMAクラスの対応」を参照してください。
DocumentBrokerでは,DMAクラスに必要なユーザ定義プロパティを追加定義したサブクラスが作成できます。例えば,ユーザ定義プロパティを追加したusrClass_DocVersionクラス(edmClass_VersionTracedDocVersionクラスのサブクラス)を作成していた場合,このDMAクラスを文書空間オブジェクトのトップオブジェクトクラスとして指定できます。ユーザ定義プロパティの追加方法については,マニュアル「DocumentBroker Version 3 システム導入・運用ガイド」を参照してください。
文書空間オブジェクトのプロパティの初期値
プロパティの初期値を指定できます。例えば,「文書のタイトル」,「作成者」,「作成日時」などをユーザ定義プロパティとして定義している場合に,それらの値を文書空間オブジェクトの作成と同時に設定できます。
文書のアップロード情報(文書の場合)
バージョンなし文書またはバージョン付き文書を作成する場合は,文書のコンテンツとして登録するファイルやレンディションタイプなどを設定した,文書のアップロード情報を指定できます。複数の文書のアップロード情報を指定すれば,マルチレンディション文書になります。
関連付ける文書またはフォルダ(文書またはフォルダの場合)
作成する文書またはフォルダを,既存の文書空間オブジェクトに関連付けることができます。例えば,既存のフォルダで管理する文書として登録したり,既存のフォルダの下位フォルダとして登録したりできます。
また,文書を作成する場合,文書間リンクで既存の文書と関連付けることもできます。ただし,この場合,作成した文書がリンク元文書,既存の文書がリンク先文書になりますので,注意してください。
作成する文書空間オブジェクトのオブジェクト種別ごとの,設定できるリンクの種別は,次のとおりです。
バージョンなし文書を作成する場合
  • フォルダとの直接型リンクおよび参照型リンク
  • 文書との文書間リンク
バージョン付き文書を作成する場合
  • フォルダとの直接型リンク,参照型リンクおよび構成管理型リンク
  • 文書との文書間リンク
バージョンなしフォルダを作成する場合
  • フォルダとの直接型リンクおよび参照型リンク
バージョン付きフォルダを作成する場合
  • フォルダとの直接型リンク,参照型リンクおよび構成管理型リンク
注※ 構成管理モードは,FIXモード,FLOATINGモードのどちらも設定できます。
バインドする文書,フォルダまたは独立データ(パブリックACLの場合)
作成するパブリックACLをバインドする文書空間オブジェクトのリストを指定できます。

ここでは,バージョン付き文書を作成する例を示します。なお,バージョン付き文書にプロパティを指定する場合の指定方法については,「6.8.7(3) バージョン付きオブジェクトのプロパティの操作」を参照してください。

// バージョン付き文書を作成する例

 // factory : DbjFactoryインターフェース
 // docspc  : DbjDocSpaceインターフェース

//初期値として設定するプロパティ値集合を作成する
DbjPropSet props = factory.createPropSet();
 
// バージョニングオブジェクトのプロパティ(Author)を設定する
props.setPropVal( "Author", "suzuki" );
 
// カレントバージョンのプロパティ(Ver)を設定する
// (バージョンオブジェクトのプロパティは@を付けて指定する)
props.setPropVal( "@Ver", "01-00" );
 
//文書のアップロード情報のリストを作成する
List uploadlist = new ArrayList();
uploadlist.add( factory.createUploadInfo(
               file,
               retrievalName,
               null,     // レンディションタイプは自動で設定する
               null,     // レンディションプロパティは設定しない
               null ) ); // 全文検索インデクスは作成しない
 
// リンク設定情報のリストを作成する(直接型リンクで関連付ける)
List linklist = new ArrayList();
linklist.add( factory.createSetDCRLinkInfo(
               docspc.createObjConnection(parentoiid) ,
                         // 上位フォルダのOIID
               null ) ); // リンクプロパティは指定しない
 
// バージョン付き文書を作成する
DbjObj obj = docspc.createVrDocument(
            "mdmClass_CfgH",
            // バージョニングオブジェクトのトップオブジェクトクラス
            "mdmClass_Document",
            // バージョンオブジェクトのトップオブジェクトクラス
            props,           // プロパティ値集合
            uploadlist,      // 文書のアップロード情報のリスト
            linklist );      // リンク設定情報のリスト

(2) 文書の全文検索インデクスの作成

ここでは,文書の全文検索インデクスの作成方法について説明します。

全文検索インデクスは,バージョンなし文書またはバージョン付き文書の作成時に作成できます。また,文書のコンテンツ更新時にも作成できます。

全文検索インデクスの作成方法は,文書のアップロード情報(DbjUploadInfoインターフェース)で指定します。ただし,文書のトップオブジェクトクラスが全文検索機能付き文書クラス以外の場合,全文検索インデクスは作成されません。全文検索機能付き文書クラスの作成方法については,「4.5.2 全文検索機能付き文書クラスの作成」を参照してください。また,文書の作成時に全文検索インデクスを作成する場合は,全文検索インデクスの作成方法を指定した文書のアップロード情報は,リストの先頭に指定する必要があります。

全文検索インデクスの作成方法には,次の2通りの方法があります。

それぞれの方法の概要を次の図に示します。

図6-6 全文検索インデクスの作成方法

[図データ]

注意事項
DocumentBrokerでは,文書のコンテンツと全文検索インデクスの内容との対応は管理しません。作成または更新する文書の内容と,全文検索インデクス生成用ファイルの内容との対応は,ユーザアプリケーションプログラムで管理してください。

ここでは,バージョンなし文書の作成と同時に,コンテンツとして登録するファイルから全文検索インデクスを作成する例を示します。

// コンテンツとして登録するファイルから
// 全文検索インデクスを作成する例

 // factory : DbjFactoryインターフェース
 // docspc  : DbjDocSpaceインターフェース

// 初期値として設定するプロパティ値集合を作成する
DbjPropSet props = factory.createPropSet();
 
// プロパティ(Author)を設定する
props.setPropVal("Author", "suzuki");
 
// 文書のアップロード情報のリストを作成する
List uploadlist = new ArrayList();
uploadlist.add( factory.createUploadInfo(
                 file_txt,
                 retrievalName,
                 null,    // レンディションタイプは自動で設定する
                 null,    // レンディションプロパティは設定しない
                 DbjDef.INDEXPATH_SAME ) );
                          // 全文検索インデクスを作成する
 
// バージョンなし文書を作成する
DbjObj obj = docspc.createDocument(
          "mdmClass_Document", // 全文検索機能付き文書クラス
           props,              // プロパティ値集合
           uploadlist,         // 文書のアップロード情報のリスト
           null );             // リンクは設定しない