マルチレンディション管理に関する操作を実行する場合に使用するメソッドと,そのメソッドの発行順序について説明します。ここでは,次の操作について説明します。
これらの操作を実行する前に,まず,文書空間と接続してトランザクションを開始してください。また,すべての操作は,マルチレンディション文書に接続した状態で実行します。マルチレンディション文書に接続するためには,次の準備をしてください。
それぞれの操作に使用するメソッドの詳細については,マニュアル「DocumentBroker Version 3 クラスライブラリ C++ リファレンス 基本機能編」を参照してください。
すでに登録されている文書(マスタレンディション)に対して,サブレンディションを追加する場合の操作について説明します。ここでは,DocumentBroker Rendering Optionを使用しない場合と使用する場合について説明します。
レンディションを追加するコールシーケンスの例を次に示します。
なお,このコールシーケンスは,UNIXの場合です。Windowsの場合は,AddRenditionメソッドの引数に指定するファイルパスを,「"file:///c:¥temp¥sample.txt"」のように指定してください。
pSession->Begin();
//…
//レンディションを追加する文書のOIIDを取得する
//レンディションに設定するdbrProp_RetrievalNameプロパティの値を
//構造体PropListに登録する
//…
CdbrDocument Doc;
//レンディションを追加する文書に接続する
Doc.SetOIID(pSession,pOIID);
//レンディションを追加して,プロパティを設定する
Doc.AddRendition("file:///tmp/sample.txt",
"MIME::text/plain",&PropList);
Doc.ReleaseObject();
//処理の確定
pSession->Commit();
レンディションを追加するコールシーケンスの例を次に示します。
pSession->Begin();
//…
CdbrDocument Doc;
SDBR_PROP Props;
SDBR_PROPLIST PropList;
//レンディションを追加する文書のOIIDを取得する
//レンディションに設定するdbrProp_RetrievalNameプロパティの値を
//構造体Propsに登録する
//…
//レンディションを追加する文書に接続する
Doc.SetOIID(pSession,pOIID);
//レンディションを追加して,プロパティを設定する
Doc.AddRendition(NULL,
"MIME::text/plain",&PropList,
DBR_CONVERT_TYPE_BATCH);
Doc.ReleaseObject();
//処理の確定
pSession->Commit();
マルチレンディション文書のサブレンディションを削除する場合の操作について説明します。
レンディションを削除するコールシーケンスの例を次に示します。
pSession->Begin();
//…
//レンディションを削除する文書のOIIDを取得する
//…
CdbrDocument Doc;
//レンディションを削除する文書に接続する
Doc.SetOIID(pSession,pOIID);
//レンディションを削除する
Doc.DeleteRendition("MIME::text/plain");
Doc.ReleaseObject();
//処理の確定
pSession->Commit();
マルチレンディション文書のマスタレンディションを変更する場合の操作について説明します。マスタレンディションを変更すると,それまでマスタレンディションだったレンディションは,サブレンディションに変更されます。
マスタレンディションを変更するコールシーケンスの例を次に示します。
pSession->Begin();
//…
//マスタレンディションを変更する文書のOIIDを取得する
//…
CdbrDocument Doc;
//マスタレンディションを変更する文書に接続する
Doc.SetOIID(pSession,pOIID);
//マスタレンディションを変更する
Doc.ChangeMasterRendition("MIME::text/plain");
Doc.ReleaseObject();
//処理の確定
pSession->Commit();
マルチレンディション文書に登録されているレンディションの一覧を取得する場合の操作について説明します。
レンディション一覧を取得するコールシーケンスの例を次に示します。
pSession->Begin();
//…
//レンディション一覧を取得する文書のOIIDを取得する
//…
CdbrDocument Doc;
//レンディション一覧を取得する文書に接続する
Doc.SetOIID(pSession,pOIID);
//レンディション一覧を取得する
Doc.GetRenditionListAndLock(2,&PropDefList,
ppRenditionList, DMA_LOCK_READ);
Doc.ReleaseObject();
//処理の確定
pSession->Commit();
マルチレンディション文書の各レンディションのdbrProp_RetrievalNameプロパティの値を設定する場合の操作について説明します。
レンディションにプロパティを設定するコールシーケンスの例を次に示します。
pSession->Begin();
//…
//レンディションにプロパティを設定する文書のOIIDを取得する
//…
CdbrDocument Doc;
SDBR_PROP Props;
SDBR_PROPLIST PropList;
//プロパティ識別子にdbrProp_RetrievalNameを指定して,
//必要な情報を設定したプロパティ構造体Propsを作成しておく
//…
//レンディションにプロパティを設定する文書に接続する
Doc.SetOIID(pSession,pOIID);
//レンディションにプロパティを設定する
Doc.PutRenditionPropertyValues("MIME::text/plain",
&PropList);
Doc.ReleaseObject();
//処理の確定
pSession->Commit();
マルチレンディション文書をバージョンアップする場合の操作について説明します。ここでは,DocumentBroker Rendering Optionを使用しない場合と使用する場合について説明します。
コールシーケンスの例を次に示します。なお,このコールシーケンスは,UNIXの場合です。Windowsの場合は,UpdateContentメソッドの引数に指定するファイルパスを「"file:///c:¥temp¥sample.doc"」,AddRenditionメソッドの引数に指定するファイルパスを,「"file:///c:¥temp¥sample.pdf"」のように指定してください。
//あらかじめマスタレンディションを更新するファイルを基に,
// サブレンディションを更新するファイルを作成しておく
pSession->Begin();
//…
//バージョンアップする文書のOIIDを取得する
//…
CdbrVersionableDocument VrDoc;
//バージョンアップする文書に接続する
VrDoc.SetOIID(pSession,pOIID);
//文書をチェックアウトする
VrDoc.VersionCheckOut(&pReservedVerId);
//マスタレンディションのコンテントを更新する
VrDoc.UpdateContent("file:///tmp/sample.doc",NULL,
pReservedVerId, DBR_CREATE_INDEX);
//仮のバージョンにレンディションを追加する
//(ファイルパスには事前に作成しておいた
// サブレンディションのファイルのパスを指定する)
VrDoc.AddRendition(pReservedVerId,"file:///tmp/sample.pdf,
"MIME::application/pdf",&PropList);
//文書をチェックインする
VrDoc.VersionCheckIn();
VrDoc.ReleaseObject();
pSession->Commit();
コールシーケンスの例を次に示します。なお,このコールシーケンスは,UNIXの場合です。Windowsの場合は,UpdateContentメソッドの引数に指定するファイルパスを,「"file:///c:¥temp¥sample.doc"」のように指定してください。
pSession->Begin();
//…
//バージョンアップする文書のOIIDを取得する
//…
CdbrVersionableDocument VrDoc;
//バージョンアップする文書に接続する
VrDoc.SetOIID(pSession,pOIID);
//文書をチェックアウトする
VrDoc.VersionCheckOut(&pReservedVerId);
//マスタレンディションのコンテントを更新する
VrDoc.UpdateContent("file:///tmp/sample.doc",NULL,
pReservedVerId, DBR_CREATE_INDEX);
//仮のバージョンにレンディションを追加する
//(ファイルパスにはNULLを指定する)
VrDoc.AddRendition(pReservedVerId,NULL,
"MIME::application/pdf",
&PropList,DBR_CONVERT_TYPE_BATCH);
//DocumentBroker Rendering Optionを使用して
// レンディション変換を実行する
//…
//文書をチェックインする
VrDoc.VersionCheckIn();
VrDoc.ReleaseObject();
pSession->Commit();