3.12.3 レンディションのコンテント種別変換機能に関する操作

レンディションのコンテント種別変換機能に関する操作を実行する場合に使用するメソッドとそのメソッドの発行順序について説明します。

ここでは,次の操作について説明します。

これらの操作を実行する前に,まず,文書空間と接続してトランザクションを開始してください。また,すべての操作はコンテント種別を変換する文書に接続した状態で実行します。コンテント種別を変換する文書に接続するためには,次の準備をしてください。

準備
コンテント種別を変換する文書の構成要素であるDMAオブジェクトのOIIDを,検索によってあらかじめ取得します。ここでは,次の操作について説明します。
  • CdbrDocumentオブジェクトのコンテント種別を変換する場合は,DMAオブジェクトのDocVersionオブジェクトのOIIDを取得します。
  • CdbrVersionableDocumentオブジェクトのコンテント種別を変換する場合は,DMAオブジェクトのConfigurationHistoryオブジェクトのOIIDを取得します。

それぞれの操作に使用するメソッドの詳細については,マニュアル「DocumentBroker Version 3 クラスライブラリ C++ リファレンス 基本機能編」を参照してください。

<この項の構成>
(1) シングルファイル文書のコンテントをリファレンスファイル文書のコンテントに変換
(2) リファレンスファイル文書のコンテントをシングルファイル文書のコンテントに変換

(1) シングルファイル文書のコンテントをリファレンスファイル文書のコンテントに変換

シングルファイル文書として登録されている文書のコンテントをリファレンスファイル文書のコンテントに変換する操作について説明します。

  1. コンテント種別を変換する文書に接続します。
    接続するオブジェクトに応じて,CdbrDocumentクラスまたはCdbrVersionableDocumentクラスの,SetOIIDメソッド,またはConnectObjectメソッドをコールします。
  2. シングルファイル文書のコンテントをリファレンスファイル文書のコンテントに変換します。
    変換後のリファレンスファイル文書のコンテントを格納するコンテント格納先ベースパスをSetReferencePathメソッドで指定し,ConvertContentTypeメソッドをコールします。このとき,変換の対象とするレンディションの範囲を1つのレンディションとするかすべてのレンディションとするかを指定し,変換後のレンディションのレンディションタイプにコメントとして設定する文字列を指定します。また,変換後のコンテントを格納するコンテント格納先パスをコンテント格納先ベースパスからの相対パスで指定します。
    シングルファイル文書のコンテントをリファレンスファイル文書のコンテントに変換するコールシーケンスの例を次に示します。

シングルファイル文書のコンテントをリファレンスファイル文書のコンテントに変換するコールシーケンス

//pTargetContentPathにコンテント格納先ベースパス設定をしておく。
//…
pSession->Begin
pSession->SetReferencePath(pTargetContentPath);
//…
//コンテントの格納先を変換する文書のOIIDを取得する。
//…
CdbrDocument Doc;
SDBR_REFERENCE_PATHINFO RefInfo;
//RefInfoにリファレンスファイル文書の登録に必要な情報を設定する。
//…
SDBR_RENDITION_COMMENTINFO CommentInfo;
//CommentInfoにコンテント格納先の変換に必要なレンディションコメント情報を設定する。
//…
//コンテントの格納先を変換する文書に接続する。
Doc.SetOIID(pSession, pOIID);
//…
//コンテントの格納先を変換する。
Doc.ConvertContentType(DBR_CONVERT_MODE_VERVOSE,
                      DBR_CONVERT_SOURCE_ALL,
                      DMA_FALSE,
                      NULL,
                      DBR_CONTENTTYPE_CONTENT,
                      CommentInfo,
                      RefInfo);
Doc.ReleaseObject();
//処理の確定
pSession->Commit();

(2) リファレンスファイル文書のコンテントをシングルファイル文書のコンテントに変換

リファレンスファイル文書として登録されている文書のコンテントをシングルファイル文書のコンテントに変換する操作について説明します。

  1. コンテント種別を変換する文書に接続します。
    接続するオブジェクトに応じて,CdbrDocumentクラスまたはCdbrVersionableDocumentクラスの,SetOIIDメソッド,またはConnectObjectメソッドをコールします。
  2. リファレンスファイル文書のコンテントをシングルファイル文書のコンテントに変換します。
    変換前のリファレンスファイル文書のコンテントを格納したコンテント格納先ベースパスをSetReferencePathメソッドで指定し,ConvertContentTypeメソッドをコールします。このとき,変換の対象とするレンディションの範囲を1つのレンディションとするかすべてのレンディションとするかを指定し,変換後のレンディションのレンディションタイプにコメントとして設定する文字列を指定します。
    リファレンスファイル文書のコンテントをシングルファイル文書のコンテントに変換するコールシーケンスの例を次に示します。

リファレンスファイル文書のコンテントをシングルファイル文書のコンテントに変換するコールシーケンス

//pTargetContentPathにコンテント格納先ベースパス設定をしておく。
//…
pSession->Begin
pSession->SetReferencePath(pTargetContentPath);
//…
//コンテント格納先を変換する文書のOIIDを取得する。
//…
CdbrDocument Doc;
SDBR_RENDITION_COMMENTINFO CommentInfo;
//CommentInfoにコンテント格納先の変換に必要なレンディションコメント情報を設定する。
//…
//コンテントの格納先を変換する文書に接続する。
Doc.SetOIID(pSession, pOIID);
//…
//コンテントの格納先を変換する。
Doc.ConvertContentType(DBR_CONVERT_MODE_VERVOSE,
                      DBR_CONVERT_SOURCE_ALL,
                      DMA_FALSE,
                      NULL,
                      DBR_CONTENTTYPE_REFERENCE,
                      CommentInfo);
Doc.ReleaseObject();
//処理の確定
pSession->Commit();