CdbrVersionableDocument::ConvertContentTypeメソッド
機能
コンテント種別の変換
形式
// リファレンスファイル文書に変換する場合
DmaBoolean ConvertContentType(
DmaInteger32 lExecuteMode,
DmaInteger32 lSourceScope,
DmaBoolean bIsChangeMaster,
pDmaString_T pVersionId,
pDmaString_T pRenditionType,
DmaInteger32 lSourceContentType,
SDBR_RENDITION_COMMENTINFO& CommentInfo,
SDBR_REFERENCE_PATHINFO& ReferencePath )
// シングルファイル文書に変換する場合
DmaBoolean ConvertContentType(
DmaInteger32 lExecuteMode,
DmaInteger32 lSourceScope,
DmaBoolean bIsChangeMaster,
pDmaString_T pVersionId,
pDmaString_T pRenditionType,
DmaInteger32 lSourceContentType,
SDBR_RENDITION_COMMENTINFO& CommentInfo )
// レンディションコメント情報構造体
struct SDBR_RENDITION_COMMENTINFO {
DmaBoolean bIsInvestSourceComment; // コメントの付与フラグ
DmaInteger32 lInvestMode; // コメントの付与方式
pDmaString_T pRenditionComment; // レンディションコメント
};
// リファレンスパス情報構造体
struct SDBR_REFERENCE_PATHINFO {
DmaInteger32 lContentOperateMode; // 操作モード
pDmaString_T pEntry; // ファイルのパスおよびロケーション
pDmaString_T pTargetPath; // コンテント格納先パス
pDmaString_T pDeleteRootPath; // 削除ディレクトリのルートパス
};
詳細
コンテントの格納先(コンテント種別)を変換するメソッドです。
このメソッドを使用することでコンテントの格納先を変換したレンディションが追加されます。
このメソッドを実行する前にコンテント保管先ベースパスをCdbrSession::SetReferencePathメソッドで設定しておく必要があります。設定されていない場合は,ERR_TARGETCONTENTPATH_NOT_SETのエラーになります。
lSourceScope,pRenditionType,およびlSourceContentTypeで指定した変換対象のコンテントが存在しない場合は,ERR_CONVERT_CONTENT_TARGET_NOTFOUNDのエラーになります。
このメソッドで変換可能なコンテント種別の組み合わせを次に示します。
表16-3 ConvertContentTypeメソッドで変換できるコンテント種別
変換前のコンテント種別 (lSourceContentTypeで指定する値) | 変換後のコンテント種別 (メソッドの形式) |
---|---|
シングルファイル文書 (DBR_CONTENTTYPE_CONTENT) | リファレンスファイル文書 (リファレンスファイル文書に変換する場合の形式) |
リファレンスファイル文書 (DBR_CONTENTTYPE_REFERENCE) | シングルファイル文書 (シングルファイル文書に変換する場合の形式) |
引数
lExecuteMode(入力)
変換モードを指定します。
この引数にはDBR_CONVERT_MODE_VERVOSEを指定します。
lSourceScope(入力)
変換対象とするレンディションの範囲を指定します。
bIsChangeMaster(入力)
マスタレンディションのコンテントを変換する場合に,変換して追加されるレンディションをマスタレンディションにするかしないかを指定します。
pRenditionType(入力)
lSourceScopeにDBR _CONVERT_SOURCE_SEPARATEを指定した場合は,変換の対象とするレンディションのレンディションタイプを表す文字列を指定します。指定したレンディションのコンテントが変換されます。この引数で指定したレンディションタイプが,対象文書のレンディションとして存在しない場合はエラーになります。
マスタレンディションの場合はNULLを使用することもできます。
空文字列("")は指定できません。
ただし,lSourceScopeにDBR_CONVERT_SOURCE_ALLが指定されている場合は,pRenditionTypeへの値の指定は無効となります。
pVersionId(入力)
対象となるバージョンのバージョン識別子を指定します。これはCdbrVersionable::GetVersionListメソッド,CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得します。省略した場合またはNULLを指定した場合は,カレントバージョンのコンテント種別を変換します。
lSourceContentType(入力)
変換対象とするコンテント種別を指定します。
CommentInfo(入力)
サブレンディションに付与するコメントの情報をSDBR_RENDITION_COMMENTINFO構造体で指定します。
SDBR_RENDITION_COMMENTINFO構造体については,「付録C.1(18) SDBR_RENDITION_COMMENTINFO構造体(レンディションコメント情報構造体)」を参照してください。
ReferencePath(入力)
リファレンスファイル文書に変換するために必要な情報を格納した,SDBR_REFERENCE_PATHINFO構造体を指定します。リファレンスファイル文書に変換するには,SDBR_REFERENCE_PATHINFO構造体のメンバlContentOperateModeにDBR_OPERATEMODE_USER_RELATIVE_CONTENTを指定します。
また,SDBR_REFERENCE_PATHINFO構造体のpTargetPathに,コンテント格納先パスを,CdbrSession::SetReferencePathメソッドで設定したコンテント格納先ベースパスを基点とした相対パスで指定します。
pTargetPathで指定するコンテント格納先パスの中に,カレントディレクトリの一つ上位のディレクトリを示す".."は指定できません。指定した場合,DMARC_BAD_PARAMETERのエラーになります。
リファレンスファイル文書に変換する場合,SDBR_REFERENCE_PATHINFO構造体のメンバpEntry,およびpDeleteRootPathへの値の指定は,無効になります。
SDBR_REFERENCE_PATHINFO構造体については,「付録C.1(15) SDBR_REFERENCE_PATHINFO構造体(リファレンスパス情報構造体)」を参照してください。
戻り値
DMA_TRUE 正常終了
DMA_FALSE 異常終了
戻り値の詳細
major_code | minor_code | 説明 | 対処 |
---|---|---|---|
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して,ユーザプログラムを終了してください。 |
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて,再度実行してください。 |
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して,障害の原因を取り除いてください。 |
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて,再度実行してください。 |
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。 |
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては,一度に一つの処理要求しか出さないように見直してください。 |
ERR_DBR | ERR_LIMITNUM_OF_RENDITIONS | 保持できるレンディション数の上限に達しています。 | この操作は実行できません。 |
ERR_DBR | ERR_MASTERRENDTYPE_NOT_SET | マスタレンディションタイプ値が設定されていません。 | マスタレンディションタイプ値を設定してください。 |
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。 |
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから,このメソッドをコールしてください。 |
ERR_DBR | ERR_RENDITIONTYPE_DUPLICATED | レンディションタイプが重複しています。 | 正しいレンディションタイプを設定してください。 |
ERR_DBR | ERR_SESSION_NOT_CONNECT | 次の要因が考えられます。
| 要因に応じて,次のどちらかの対策を実施してください。
|
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。 |
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。 |
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。 |
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて,処理を再実行してください。 |
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。 |
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。 |
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。 |
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に,この操作を実行してください。 |
ERR_DBR | ERR_FILE_REFERENCE_OPERATION_FAILED | リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。 | 詳細メッセージを基に対処してください。 |
ERR_DBR | ERR_TARGETCONTENTPATH_NOT_SET | リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または, UNC形式のパスの場合(Windowsだけ),コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。 | コンテント格納先ベースパスを設定してください。 |
ERR_DBR | ERR_CONVERT_CONTENT_TARGET_NOTFOUND | 変換対象のコンテントは存在しません。 | オブジェクトのコンテント種別または指定した変換対象とするコンテント種別(ISourseContentType)を見直してください。 |
ERR_DBR | ERR_CONVERT_CONTENT_NOT_RETRIEVALNAME | 変換対象コンテントのdmaProp_RetrievalNameプロパティの値が設定されていない(値がNULLまたは,空文字列(""))のため,変換処理を実行できません。 | dmaProp_RetrievalNameプロパティの値を設定してメソッドを実行してください。 |