uCosminexus DocumentBroker Version 5 概説

[目次][用語][索引][前へ][次へ]

3.2.5 レンディション状態を表すプロパティdbrProp_RenditionStatusプロパティ

マルチレンディション文書では,同じ内容を持つ複数のレンディションタイプのコンテンツを,まとめて一つの文書に登録して管理できます。このため,マスタレンディションとサブレンディションは,常に同じ内容にしておく必要があります。マスタレンディションのコンテンツを更新した場合には,サブレンディションのコンテンツも更新する必要があります。

マスタレンディションとサブレンディションのdbrProp_RenditionStatusプロパティの値について説明します。

<この項の構成>
(1) サブレンディションの状態フラグと変換フラグの値
(2) dbrProp_RenditionStatusプロパティとメソッドの関係
(3) レンディションのコンテンツ種別を表すプロパティ(dbrProp_ContentTypeプロパティ)

(1) サブレンディションの状態フラグと変換フラグの値

サブレンディションの状態フラグと変換フラグの値について説明します。

(a) 状態フラグの値

サブレンディションの状態フラグの値は,マスタレンディションまたはサブレンディションのコンテンツの更新時に,DocumentBrokerによって自動的に設定されます。サブレンディションの状態フラグの値を次の表に示します。

表3-1 サブレンディションの状態フラグの値

状態フラグを表す定数 説明
DbjDef.RENDSTATUS_NO_SUBREND マスタレンディションのコンテンツは登録済みですが,サブレンディションのコンテンツが登録されていません。
DbjDef.RENDSTATUS_SUBREND_EXIST マスタレンディションとサブレンディションの更新状態が一致しています。
DbjDef.RENDSTATUS_MASTERREND_UPDATE マスタレンディションとサブレンディションの更新状態が不一致です。マスタレンディションのコンテンツは更新されていますが,サブレンディションのコンテンツが更新されていません。
(b) 変換フラグの値

サブレンディションの変換フラグの値は,文書の作成時,コンテンツの更新時またはレンディションの追加時に,コンテンツのファイルパスの指定の有無に応じてDocumentBrokerが自動的に設定します。レンディション変換機能によるレンディション変換実行時にエラーが発生した場合には,変換エラーを示す値が設定されます。

変換フラグの値をユーザが変更する場合は,レンディションのプロパティを更新するDbjObj#writeRenditionPropertiesメソッドを使用します。

サブレンディションの変換フラグの値を次の表に示します。

表3-2 サブレンディションの変換フラグの値

変換フラグを表す定数 説明
DbjDef.RENDSTATUS_CONVERT_NOTREQUIRED レンディション変換機能によるレンディション変換の対象になりません。
レンディション変換の対象にしないサブレンディションに対して指定してください。
DbjDef.RENDSTATUS_CONVERT_REQUIRED レンディション変換機能によるレンディション変換の対象になります。
レンディション変換の対象にする場合に指定してください。
DbjDef.RENDSTATUS_CONVERT_ERROR レンディション変換機能で変換エラーが発生しました。
レンディション変換機能が設定する値です。

なお,状態フラグの値によって,変換フラグが取る値が異なります。

状態フラグと変換フラグの組み合わせについて,次の表に示します。

表3-3 状態フラグと変換フラグの組み合わせ

状態フラグを表す定数 変換フラグを表す定数
DbjDef.RENDSTATUS_SUBREND_EXIST DbjDef.RENDSTATUS_CONVERT_NOTREQUIRED
DbjDef.RENDSTATUS_CONVERT_REQUIRED
DbjDef.RENDSTATUS_NO_SUBREND DbjDef.RENDSTATUS_CONVERT_REQUIRED
DbjDef.RENDSTATUS_CONVERT_ERROR
DbjDef.RENDSTATUS_MASTERREND_UPDATE DbjDef.RENDSTATUS_CONVERT_NOTREQUIRED
DbjDef.RENDSTATUS_CONVERT_REQUIRED
DbjDef.RENDSTATUS_CONVERT_ERROR

例えば,サブレンディションの文書のアップロード情報でコンテンツのファイルパスを指定しなかった(nullを指定した)場合,レンディション変換機能によるレンディション変換を要求しない変換フラグ(DbjDef.RENDSTATUS_CONVERT_NOTREQUIRED)を指定することはできません。

また,文書のアップロード情報でコンテンツのファイルパスを指定して更新したいサブレンディションに対しては,マスタレンディションとサブレンディションの更新状態が不一致(DbjDef.RENDSTATUS_MASTERREND_UPDATE)でも,レンディション変換機能よるレンディション変換を要求しない変換フラグ(DbjDef.RENDSTATUS_CONVERT_NOTREQUIRED)を指定できます。

(2) dbrProp_RenditionStatusプロパティとメソッドの関係

dbrProp_RenditionStatusプロパティの値とメソッドの関係について説明します。

次のメソッドについて説明します。

(a) dbrProp_RenditionStatusプロパティの値を参照するメソッド

dbrProp_RenditionStatusプロパティの値は,次のメソッドによるレンディション一覧の取得時に参照できます。

特定のレンディションのdbrProp_RenditionStatusプロパティを参照したい場合は,DbjRenditionListインターフェースおよびDbjRenditionInfoインターフェースを使用してください。

(b) dbrProp_RenditionStatusプロパティの値を遷移させるメソッド

dbrProp_RenditionStatusプロパティの値は,次のメソッドの実行時に,DocumentBrokerが自動的に値を設定することによって,遷移します。

DbjObj#changeMasterRenditionメソッドによるdbrProp_RenditionStatusプロパティの値の遷移については,「(d) dbrProp_RenditionStatusプロパティの値によって制限されるメソッド」を参照してください。

DbjObj#addRenditionメソッドおよびDbjObj#uploadContentsメソッドによるdbrProp_RenditionStatusプロパティの値の遷移を,次の図に示します。図中の(1)から(8)の番号は,表3-4から表3-6の説明中の番号と対応しています。

図3-11 メソッドによるdbrProp_RenditionStatusプロパティの値の遷移

[図データ]

図で示した遷移の詳細を,メソッドごとに説明します。

注※ レンディション変換機能で,レンディション変換エラーが起きたあとにマスタレンディションを更新し直す場合は,更新するコンテンツにエラーの要因が残っていないかどうか確認してください。または,マスタレンディションのコンテンツを基に,別のレンディションタイプのファイルをユーザが作成して,サブレンディションのコンテンツとして登録してください。

(c) dbrProp_RenditionStatusプロパティの変換フラグを変更するメソッド

変換フラグの値をユーザが変更する場合は,DbjObj#writeRenditionPropertiesメソッドを使用します。

設定できる値は次のどちらかです。

ただし,次の場合は値を設定できません。

DbjObj#writeRenditionPropertiesメソッドで変換フラグを設定できない場合
  • 状態フラグがDbjDef.RENDSTATUS_NO_SUBRENDの場合,変換フラグにDbjDef.RENDSTATUS_CONVERT_NOTREQUIREDは設定できません。
  • 状態フラグがDbjDef.RENDSTATUS_NO_SUBRENDの場合は,サブレンディションのコンテンツをDbjObj#uploadContentsメソッドで更新すると,変換フラグをDbjDef.RENDSTATUS_CONVERT_NOTREQUIREDに遷移させることができます。
  • 変換フラグがDbjDef.RENDSTATUS_CONVERT_ERRORの場合,変換フラグにDbjDef.RENDSTATUS_CONVERT_NOTREQUIREDまたはDbjDef.RENDSTATUS_CONVERT_REQUIREDは設定できません。
  • 変換フラグがDbjDef.RENDSTATUS_CONVERT_ERRORの場合は,エラーの要因を取り除いたコンテンツを準備して,マスタレンディションをDbjObj#uploadContentsメソッドで再び更新してください。または,マスタレンディションのコンテンツを基に,別のレンディションタイプのファイルをユーザが作成して,DbjObj#uploadContentsメソッドでサブレンディションのコンテンツとして登録してください。
(d) dbrProp_RenditionStatusプロパティの値によって制限されるメソッド

状態フラグと変換フラグの組み合わせによっては,DbjObj#changeMasterRenditionメソッドの実行が制限されます。制限されるのは,次の場合です。

DbjObj#changeMasterRenditionメソッドの実行が制限される場合
  • 状態フラグがDbjDef.RENDSTATUS_NO_SUBRENDの場合,DbjObj#changeMasterRenditionメソッドは実行できません。
  • 状態フラグがDbjDef.RENDSTATUS_MASTERREND_UPDATEの場合,変換フラグがDbjDef.RENDSTATUS_CONVERT_REQUIREDまたはDbjDef.RENDSTATUS_CONVERT_ERRORのときは,DbjObj#changeMasterRenditionメソッドは実行できません。

これ以外の組み合わせでは,DbjObj#changeMasterRenditionメソッドを実行してマスタレンディションを変更すると,それまでサブレンディションだったレンディションはマスタレンディションに変更されて,そのレンディションのdbrProp_RenditionStatusプロパティの値はDbjDef.RENDSTATUS_MASTERRENDに遷移します。

(e) レンディション変換機能によるサブレンディション更新の例

dbrProp_RenditionStatusプロパティの値が遷移する例として,レンディション変換機能によるサブレンディション更新の例を次の図に示します。

図3-12 レンディション変換機能によるサブレンディション更新の例

[図データ]

図について説明します。

  1. 図中の文書は,マスタレンディションのコンテンツとしてWord形式のファイル「A.doc」,サブレンディションのコンテンツとしてPDF形式のファイル「A.pdf」を持つ,バージョンなし文書です。このとき,マスタレンディションとサブレンディションの内容は一致しています。状態フラグはDbjDef.RENDSTATUS_SUBREND_EXISTです。
  2. DbjObj#uploadContentsメソッドによって,マスタレンディションのコンテンツを「B.doc」に更新します。このとき,マスタレンディションとサブレンディションの状態が不一致になるため,サブレンディションの状態フラグがDbjDef.RENDSTATUS_MASTERREND_UPDATEに遷移します。
  3. DbjObj#writeRenditionPropertiesメソッドによって,サブレンディションのdbrProp_RenditionStatusプロパティの変換フラグに,DbjDef.RENDSTATUS_CONVERT_REQUIREDを設定します。
  4. レンディション変換機能によってレンディション変換を実行します。3.で変換フラグにDbjDef.RENDSTATUS_CONVERT_REQUIREDを設定したサブレンディションは,レンディション変換の対象になります。レンディション変換は,マスタレンディションのコンテンツ「B.doc」を基に実行されます。
  5. サブレンディションのコンテンツとして,マスタレンディションの「B.doc」を基にレンディション変換したコンテンツ「B.pdf」が登録されます。このとき,サブレンディションの状態フラグは,DbjDef.RENDSTATUS_SUBREND_EXISTに遷移します。

(3) レンディションのコンテンツ種別を表すプロパティ(dbrProp_ContentTypeプロパティ

レンディションごとのコンテンツの種別は,dbrProp_ContentTypeプロパティによって知ることができます。コンテンツの種別から,レンディションのコンテンツが次のどれかを知ることができます。

このプロパティは,Integer32型の4バイトの値として表されます。

ユーザはdbrProp_ContentTypeプロパティを設定できません。dbrProp_ContentTypeプロパティを参照する場合は,DbjObj#getRenditionListメソッドを使用します。

dbrProp_ContentTypeの値とコンテンツ種別の関係を次の表に示します。

表3-7 dbrProp_ContentTypeの値とコンテンツ種別の関係

dbrProp_ContentTypeの値 対応する値 コンテンツ種別
DbjDef.CONTENTTYPE_CONTENT 0 ContentTransferオブジェクト(シングルファイル文書であるコンテンツ)です。
DbjDef.CONTENTTYPE_REFERENCE 3 ContentReferenceオブジェクト(リファレンスファイル文書であるコンテンツ)です。
DbjDef.CONTENTTYPE_OTHER -1 上記以外のコンテンツを持つオブジェクトです。