CdbrVersionableDocument::UpdateContentAndRenditionTypeメソッド
機能
ファイルの更新およびRenditionTypeの変更
形式
// シングルファイル文書の場合
// (マスタレンディションのファイルの更新)
DmaBoolean UpdateContentAndRenditionType(
const pDmaString_T pFilePath,
pDmaString_T pRenditionType,
const pDmaString_T pVersionId = NULL,
DmaInteger32 lCreateIndexFlg = DBR_CREATE_INDEX)
// シングルファイル文書の場合
// (RenditionTypeを指定したファイルの更新)
DmaBoolean UpdateContentAndRenditionType(
const pDmaString_T pFilePath,
pDmaString_T pBeforeRenditionType,
pDmaString_T pAfterRenditionType,
const pDmaString_T pVersionId,
DmaInteger32 lCreateIndexFlg)
// リファレンスファイル文書の場合
DmaBoolean UpdateContentAndRenditionType(
SDBR_REFERENCE_PATHINFO& ReferencePath,
pDmaString_T pBeforeRenditionType,
pDmaString_T pAfterRenditionType,
pDmaString_T pVersionId)
// File Link文書の場合
DmaBoolean UpdateContentAndRenditionType(
SDBR_FILELINK_PATHINFO& FileLinkPath,
pDmaString_T pBeforeRenditionType,
pDmaString_T pAfterRenditionType,
const pDmaString_T pVersionId)
// リファレンスパス情報構造体
struct SDBR_REFERENCE_PATHINFO {
DmaInteger32 lContentOperateMode; // 操作モード
pDmaString_T pEntry; // ファイルのパスおよびロケーション
pDmaString_T pTargetPath; // コンテント格納先パス
pDmaString_T pDeleteRootPath; // 削除ディレクトリのルートパス
};
// File Linkパス情報構造体
struct SDBR_FILELINK_PATHINFO {
pDmaString_T pFilePath; // 登録ファイルまたはディレクトリのURL
pDmaString_T pFamName; // FAM名
pDmaString_T pFamFilePath; // コンテント保管先パス
DmaInteger32 lContentDeleteMode; // コンテント削除モード
DmaInteger32 lFileNamingMode; // コンテント名自動
// 生成モード
};
詳細
登録されているCdbrVersionableDocumentオブジェクトの指定したバージョンの内容を,指定したパスのファイルで更新するメソッドです。更新するときには,RenditionTypeも変更できます。
pDmaString_T pReservedVerId;
pDbrVerDoc->VersionCheckOut(&pReservedVerId);
pDbrVerDoc->UpdateContentAndRenditionType(
"file:///tmp/sample.html" ,pReservedVerId,
"MIME::text/html",DBR_CREATE_INDEX);
pDbrVerDoc->VersionCheckIn();
dbrDelete (pReservedVerId);
引数
pFilePath(入力)
更新に使用するファイルのパス名を指定します。ファイルのパス名はURL形式で設定します。例えば,UNIXの場合,ファイル"/tmp/sample.doc"を登録するには,"file:///tmp/sample.doc"と指定します。Windowsの場合,ファイル"c:¥temp¥sample.doc"を登録するには,"file:///c:¥temp¥sample.doc"と指定します。有効なプロトコルは"file:"だけです。これ以外のプロトコルを指定した場合はエラーになります。
なお,ここで指定するパスは,GetContentメソッドで取得したファイルである必要はありません。ただし,RenditionTypeが異なるファイルは指定できません。
pRenditionType(入力)
文書(マルチレンディション文書の場合はマスタレンディション)の内容を更新すると同時にそのRenditionTypeを変更する場合,変更後のRenditionTypeを表す文字列を指定します。例えばHTML文書の場合は,"MIME::text/html"などとします。NULLを指定した場合,RenditionTypeは変更されません。また,pFilePathに指定したファイルの拡張子からDocumentBrokerがRenditionTypeを決定することはありません。
なお,マルチレンディション文書(レンディションが複数ある文書)の場合,空文字列("")は指定できません。
pBeforeRenditionType(入力)
RenditionTypeを指定してレンディションの内容を更新する場合,更新対象のレンディションのRenditionTypeを表す文字列を指定します。
この引数で指定したRenditionTypeが,対象バージョンのサブレンディションとして存在しない場合はエラーになります。
マスタレンディションの内容を更新する場合はNULLを指定するか,「マスタレンディションのファイルを更新する場合」の形式を使用することもできます。
pAfterRenditionType(入力)
RenditionTypeを指定してレンディションの内容を更新すると同時にそのRenditionTypeを変更する場合,変更後のRenditionTypeを表す文字列を指定します。
この引数で指定したRenditionTypeが,対象バージョンのサブレンディションとしてすでに登録されている場合はエラーになります。ただし,pBeforeRenditionType値とpAfterRenditionType値とが同一値であってもエラーになりません。NULLを指定した場合は,サブレンディションのRenditionTypeは変更されません。また,pFilePathまたはReferencePathのpEntryメンバに指定したファイルの拡張子からDocumentBrokerがRenditionTypeを決定することはありません。
なお,空文字列("")は指定できません。
pVersionId(入力)
対象となるバージョンのバージョン識別子を指定します。この識別子は,CdbrVersionable::GetVersionListメソッド,CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得します。省略した場合またはNULLを指定した場合は,カレントバージョンが更新対象になります。
lCreateIndexFlg(入力)
全文検索インデクスを作成するかどうかを指定します。次のどちらかを指定してください。この値を省略した場合は,DBR_CREATE_INDEXが指定されたものとして処理されます。
なお,CdbrDocumentオブジェクトの構成要素が全文検索機能付きクラス以外から作成されたDocVersionオブジェクトである場合,およびファイルのRenditionTypeがテキスト型でない場合は,lCreateIndexFlgの値は無視されます。
また,マルチレンディション文書の場合,lCreateIndexFlgはマスタレンディションの内容を更新する場合だけ有効です。
ReferencePath(入力)
リファレンスファイル文書を更新するために必要な情報を格納した,SDBR_REFERENCE_PATHINFO構造体を指定します。
なお,次に示すことに注意してください。
pTargetPathで指定するコンテント格納先パスの中に,カレントディレクトリの一つ上位のディレクトリを示す".."は指定できません。指定した場合,DMARC_BAD_PARAMETERのエラーになります。
リファレンスファイル文書を更新する場合,SDBR_REFERENCE_PATHINFO構造体のメンバpDeleteRootPathへの値の指定は,無効になります。
SDBR_REFERENCE_PATHINFO構造体に設定する内容については,「付録C.1(15) SDBR_REFERENCE_PATHINFO構造体(リファレンスパス情報構造体)」を参照してください。
FileLinkPath(入力)
File Link文書を更新するために必要な情報を格納した,SDBR_FILELINK_PATHINFO構造体を指定します。
なお,SDBR_FILELINK_PATHINFO構造体のメンバpFilePathとメンバpFamFilePathの両方にNULLを設定した場合には,DMARC_BAD_PARAMETERのエラーになります。
SDBR_FILELINK_PATHINFO構造体の指定内容については,「付録C.1(5) SDBR_FILELINK_PATHINFO構造体(File Linkパス情報構造体)」を参照してください。
戻り値
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_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。 |
ERR_DBR | ERR_CONTENTTYPE_MISMATCH | 指定したレンディションタイプのコンテントに対して実行できません。 | 正しい文書オブジェクトを指定してメソッドを実行してください。 |
ERR_DBR | ERR_FAL_NOT_LOADED | HiRDB File Linkのライブラリがロードできません。 | 詳細メッセージを基に対処してください。 |
ERR_DBR | ERR_FILELINK_FAILED | HiRDB File Linkでエラーが発生しました。 | 詳細メッセージを基に対処してください。 |
ERR_DBR | ERR_FILE_REFERENCE_MISMATCH_STATUS | リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生し,オブジェクトとコンテントが不整合な状態となりました。 | 文書を削除したあと,更新後のコンテントを使用して文書を作成してください。 |
ERR_DBR | ERR_FILE_REFERENCE_OPERATION_FAILED | リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。 | 詳細メッセージを基に対処してください。 |
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては,一度に一つの処理要求しか出さないように見直してください。 |
ERR_DBR | ERR_NONEXISTS_RENDITION | 指定されたRenditionTypeは存在しません。 | RenditionTypeを見直してください。 |
ERR_DBR | ERR_NONEXISTS_VERSION | 指定されたバージョンは存在しません。 | 正しいバージョンを指定してください。 |
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。 |
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。 |
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから,このメソッドをコールしてください。 |
ERR_DBR | ERR_REFERENCETYPE_MISMATCH | オブジェクト種別が一致していません。 | オブジェクト種別または指定した操作モード(lContentOperateMode)を見直してください。 |
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。 |
ERR_DBR | ERR_TARGETCONTENTPATH_NOT_SET | リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または,UNC形式のパスの場合(Windowsだけ),コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。 | コンテント格納先ベースパスを設定してください。 |
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。 |
ERR_DMA | DMARC_BAD_CLASSID | 指定された識別子は,利用できるオブジェクトのクラスではありません。 | 正しいクラス識別子を指定してください。 |
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。 |
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。 |
ERR_DMA | DMARC_BAD_URL | リソースのURLが不正です。 | URLの内容を見直してください。 |
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて,処理を再実行してください。 |
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を,入力引数に設定してください。 |
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。 |
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。 |
ERR_DMA | DMARC_RESOURCE_NOT_FOUND | 指示されたリソースが見つかりません。 | 正しいリソースを指定してください。 |
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。 |
ERR_DMA | DMARC_URL_PROTOCOL_NOT_SUPPORTED | サポートしていないURLプロトコルです。 | file:///で始まっているか確認してください。 |
ERR_DMA | EDMRC_FTPSERVICE_LOST_CONNECTION | ファイル転送サービスへのセッションが切断されました。 | ネットワーク環境を確認してください。または,時間を置いて,再度実行してください。 |
ERR_DMA | EDMRC_FTPSERVICE_MAX_SESSION | ファイル転送サービスに同時に接続できるセッション数の上限に達しています。 | 時間を置いて,Connectユーザ数が減ったあと,再度実行してください。または,ファイル転送サービス環境定義ファイルのFtpSessionMaxエントリを見直してください。 |
ERR_DMA | EDMRC_FTPSERVICE_NOT_AVAILABLE | ファイル転送サービスが利用できません。 | サーバのバージョンに対応したクライアントを利用してください。 |
ERR_DMA | EDMRC_NO_FTPSERVICE | 使用できるファイル転送サービスがありません。 |
|