uCosminexus DocumentBroker Object Loader Version 3

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

4.3.3 制御ファイルの構成

制御ファイルは,二つのセクションとセクションを構成する幾つかのエントリで構成されます。

表4-2に制御ファイルに記述するセクションと機能の概要を示します。

表4-2 制御ファイルのセクションと機能概要

セクション名 機能概要
Control 入力データファイルの記述形式やオブジェクトローダの動作を制御する情報を定義する。
DataMapping ユーザが追加するクラスに対するプロパティの並びや,DocumentBroker標準クラスにユーザが追加するプロパティの並びを定義する。
<この項の構成>
(1) Controlセクション
(2) DataMappingセクション

(1) Controlセクション

DocumentBroker Object Loaderの動作を制御する情報を指定するセクションです。Controlセクションに指定するエントリは次のとおりです。

(a) ErrorLogエントリ

機能
エラーログファイルの出力先をファイルパスで指定します。

指定形式
ErrorLog = 出力先のファイルパス

指定規則
  • ファイルの出力先をファイルパスで指定します。パスの指定方法については,「4.2.2(3) パスの指定方法」を参照してください。
  • このエントリの記述を省略した場合,またはエントリに指定する値を省略した場合は,エラーログファイルは出力されません。
  • パスの指定方法が間違っている場合,またはファイルに権限がない場合は,エラーメッセージを出力して,オブジェクトローダを終了します。また,指定したエラーログファイルがすでに存在する場合は,既存のファイルを上書きします。表4-3に指定値に対するオブジェクトローダの動作を示します。

    表4-3 ErrorLog指定値に対するオブジェクトローダの動作

    ErrorLog 状態 動作
    省略時 エラーログファイルは出力しない
    指定時 パス不正 エラー(オブジェクトローダ実行不可能)
    ファイル権限なし エラー(オブジェクトローダ実行不可能)
    ファイルがすでに存在 上書きでエラーログファイルを出力する
(b) ErrorDataFileエントリ

機能
エラーデータファイルの出力先をファイルパスで指定します。

指定形式
ErrorDataFile = 出力先のファイルパス

指定規則
  • エラーデータファイルの出力先をファイルパスで指定します。パスの指定方法については,「4.2.2(3) パスの指定方法」を参照してください。
  • このエントリの記述を省略した場合,またはエントリに指定する値を省略した場合は,エラーメッセージを出力して,オブジェクトローダを終了します。
  • パスの指定方法が間違っている場合,またはファイルに権限がない場合は,エラーメッセージを出力して,オブジェクトローダを終了します。また,指定したエラーデータファイルがすでに存在する場合は,既存のファイルを上書きします。表4-4に指定値に対するオブジェクトローダの動作を示します。

    表4-4 ErrorDataFile指定値に対するオブジェクトローダの動作

    ErrorDataFile 状態 動作
    省略時 エラー(オブジェクトローダ実行不可能)
    指定時 パス不正 エラー(オブジェクトローダ実行不可能)
    ファイル権限なし エラー(オブジェクトローダ実行不可能)
    ファイルがすでに存在 上書きでエラーデータファイルを出力する
(c) StopCountエントリ

機能
警告レベルのエラーの許容件数を指定します。エラー発生件数が,このエントリで指定した値になった場合は,オブジェクトローダの実行を停止します。停止する場合,実行されていない入力データはエラーデータファイルに出力しません。

指定形式
StopCount = 許容件数

指定規則
  • 警告レベルのエラーの許容件数は,0〜2147483647の間の10進表記で指定してください。範囲以外の値を指定した場合は,エラーメッセージを出力してオブジェクトローダを終了します。
  • 許容件数の指定を省略したとき「1」が仮定されます。
  • 許容件数に「0」を指定した場合はオブジェクトローダは停止しません。
(d) ColumnSeparatorエントリ

機能
入力データファイル中のカラム間区切り文字(1バイト)を引用符(")で囲んで指定します。

指定形式
ColumnSeparator = "区切り文字(1バイト)"

指定規則
  • 区切り文字に,「[」,「]」,「/」,「=」,「'」,「"」,「.」,数値(0〜9),「#」,「{」,「}」,「|」,「+」,「-」は指定できません。指定した場合は,エラーメッセージを出力してオブジェクトローダを終了します。
  • 区切り文字には,RecordSeparatorエントリおよびLineContinueエントリと同じ文字は指定できません。指定した場合は,エラーメッセージを出力してオブジェクトローダを終了します。
  • 指定を省略したときは,コンマ(,)が仮定されます。
  • 使用できるエスケープシーケンス文字は,「\」またはバックスラッシュに続く1文字で表します。指定可能なエスケープシーケンス文字は,次のとおりです。
    "\n"(復帰改行)
    "\t"(水平タブ)
    "\f"(改ページ)
    "\\"(文字の\)

指定例
ColumnSeparatorエントリの指定例を表4-5に示します。

表4-5 ColumnSeparatorエントリの指定例

指定例 動作
ColumnSeparator="\n" 復帰改行コードを区切り文字にする
ColumnSeparator="\a" 指定できない文字なのでエラーになる
ColumnSeparator="*" アスタリスク(*)を区切り文字にする
ColumnSeparator=* 引用符(")で囲んでいないため,エラーになる
(e) RecordSeparatorエントリ

機能
入力データファイル中の行間区切り文字(1バイト)を引用符(")で囲んで指定します。

指定形式
RecordSeparator = "区切り文字(1バイト)"

指定規則
  • 区切り文字に,「[」,「]」,「/」,「=」,「'」,「"」,「.」,数値(0〜9),「#」,「{」,「}」,「|」,「+」,「-」は指定できません。指定した場合は,エラーメッセージを出力してオブジェクトローダを終了します。
  • 指定を省略したときは,「"\n"」(復帰改行:UNIXの場合は0x0a,Windowsの場合は0x0d0a)が仮定されます。
  • 使用できるエスケープシーケンス文字は,「\」またはバックスラッシュに続く1文字で表します。指定可能なエスケープシーケンス文字は,次のとおりです。
    "\n"(復帰改行)
    "\t"(水平タブ)
    "\f"(改ページ)
    "\\"(文字の\)
  • 区切り文字には,ColumnSeparatorエントリおよびLineContinueエントリと同じ文字は指定できません。指定した場合は,エラーメッセージを出力してオブジェクトローダを終了します。
  • テキストエディタによってはデータの終端([EOF])の前に復帰改行コード(\n)が入る場合があります。「RecordSeparator="\n"」以外を設定している場合は,上記の(\n)は行間区切り文字とみなされず通常の文字と同じ扱いになりますので注意してください。

指定例
RecordSeparatorエントリの指定例を表4-6に示します。

表4-6 RecordSeparatorエントリの指定例

指定例 動作
RecordSeparator="\n" 復帰改行コードを区切り文字にする
RecordSeparator="\a" 指定できない文字なのでエラーになる
RecordSeparator="*" アスタリスク(*)を区切り文字にする
RecordSeparator=* 引用符(")で囲んでいないため,エラーになる
(f) StartPointエントリ

機能
データの入力を開始する位置を,入力データファイルの行数で指定します。StartPointエントリの値と入力データファイルの入力開始位置について図4-1に示します。

図4-1 StartPointエントリの値と入力データファイルの入力開始位置

[図データ]

指定形式
StartPoint = 入力データファイル内の行数

指定規則
  • データの入力を開始する位置を,入力データファイルの行数で指定します。行数には,コメント行や空行も含めます。
  • データの入力開始位置は,1〜2147483647の間の10進表記で指定してください。
  • 省略時は,「1」が仮定されます。
  • 数値以外を指定した場合や,範囲以外の数値を指定した場合は,エラーメッセージを出力してオブジェクトローダを終了します。
  • 指定した行数が入力データファイルに存在しない場合も,エラーメッセージを出力してオブジェクトローダを終了します。
(g) OIID_Countエントリ

機能
データベースのOIIDテーブルから一度に取得するOIIDの個数を指定します。
次の二つの条件をすべて満たす場合にだけ有効なエントリです。
  • High-end Optionをインストールしている環境である
  • オブジェクトローダの並列実行をする("-S"オプション,"-M"オプションを指定しない)
これら二つの条件を満たさない場合は,指定しても無視されます。

指定形式
OIID_Count = OIIDの個数

指定規則
  • OIIDの個数は,0〜2147483647の間の10進表記で指定してください。
  • 数値以外を指定した場合や,範囲以外の数値を指定した場合は,エラーメッセージを出力してオブジェクトローダを終了します。
  • 「0」を指定した場合,オブジェクトは登録されないで,OIIDテーブルも更新されません。この場合,オブジェクトローダの終了時に,使用したOIIDの個数がメッセージ(KMBV11005-I)に出力されます。
  • オブジェクトを登録する前に,OIID_Countエントリの指定を「0」にしてオブジェクトローダを実行して,OIIDの個数を取得したあと,取得したOIIDの個数をOIID_Countエントリに指定してオブジェクトローダを実行することをお勧めします。必要なOIIDの個数より指定値が大きい場合,オブジェクトに対応しない不要なOIIDができるためです。
  • OIID_Countエントリが有効である場合,OIID_Countエントリを省略すると,作成コマンド(CREATE_xxx)ごとにOIIDが取得されます。
(h) MsgIntervalエントリ

機能
処理の経過を示すメッセージ(KMBV11014-I)を出力する間隔を指定します。

指定形式
MsgInterval = 行数

指定形式
  • 指定する行数はオブジェクトローダ入力データファイルのコマンド行数に相当します。0〜2147483647の間の10進表記で指定してください。
  • 省略時は,「10000」が仮定されます。
  • 0を指定した場合はメッセージを出力しません。
  • 数値以外や範囲外の数値が指定された場合は,省略時の値を仮定します。
  • 指定値を小さくする程,処理の経過を示すメッセージが頻繁に出力されますので,登録するデータ行に応じて適切な値を設定してください。
(i) LineContinueエントリ

機能
入力値を複数の行(行はRecordSeparatorエントリで指定した文字)で記述する場合の,ライン継続文字(1バイト)を引用符(")で囲んで指定します。

指定形式
LineContinue = "区切り文字(1バイト)"

指定規則
  • 区切り文字には,ColumnSeparatorエントリおよびRecordSeparatorエントリと同じ文字は指定できません。指定した場合は,エラーメッセージを出力してオブジェクトローダを終了します。
  • 区切り文字に,「[」,「]」,「/」,「=」,「'」,「"」,「.」,数値(0〜9),「#」,「{」,「}」,「|」は指定できません。指定した場合は,エラーメッセージを出力してオブジェクトローダを終了します。
  • 入力値を複数の行で記述する場合には,ライン継続文字の直後にRecordSeparatorエントリの指定値(行間区切り文字)が存在する必要があります。直後に行間区切り文字が存在しない場合は,ライン継続文字で指定した文字は入力値の文字とみなされます。
  • エントリは指定していても値を記述していない場合には「+」が仮定されます。エントリ省略時は入力値を複数の行で記述することはできません。
  • エスケープシーケンス文字は,「\」またはバックスラッシュに続く1文字で表します。指定可能なエスケープシーケンス文字は,次のとおりです。
    "\n"(復帰改行)
    "\t"(水平タブ)
    "\f"(改ページ)
    "\\"(文字の\)

指定例
  • LineContinueエントリの指定例を表4-7に示します。

    表4-7 LineContinueエントリの指定例

    指定例 動作
    LineContinue="+" 「+」をライン継続文字にする。
    LineContinue="\a" 指定できない文字なのでエラーになる。
    LineContinue="*" アスタリスク(*)をライン継続文字にする。
    LineContinue=* 引用符(")で囲んでいないため,エラーになる。
  • 入力値を複数の行で記述する場合の入力データファイルの記述例をColumnSeparator:',',RecordSeparator:'\n',LineContinue:'+'の場合で示します。
 
   CREATE_RFCT,LABEL-C,JIKEN-CONTAINER,AAA,+(\n)
   BBB,CCC,…
 
(j) EmptyValueエントリ

機能
入力データファイル中のプロパティ値(MVARCHAR型)中に,「"0x00"」または「0x00」が存在する場合,データベースへ格納する「\0」値の種別を指定します。

指定形式
EmptyValue = (0または1)

指定規則
  • データベースに格納する文字を0x00にする場合は「0」を,空文字(長さ0バイトの文字列)を格納する場合は「1」を指定します。
  • 省略時は,「EmptyValue=0」が仮定されます。
  • 「0」または「1」以外の値を設定した場合にはエラーリターンします。
  • 「0x00」はバイナリコードのため,入力データファイルへの設定はバイナリコードのエディタ(xiなど)およびアプリケーションプログラムで行ってください。テキストエディタ(viなど)での入力はできません。
  • バイナリコードのエディタ・アプリケーションプログラムなどで設定された入力データファイルの「0x00」はテキストエディタでは見えません。

指定例
EmptyValueエントリの指定例を表4-8に示します。

表4-8 EmptyValueエントリの指定例

指定例 動作
EmptyValue=0 データベースのカラム属性がMVARCHAR型のプロパティ値として「0x00」または「"0x00"」が存在する場合,データベースのカラム値としてデータ長1バイトの値「0x00」を設定する。
EmptyValue=1 データベースのカラム属性がMVARCHAR型のプロパティ値として「0x00」または「"0x00"」が存在する場合,データベースのカラム値として空文字(長さ0バイトの文字列)を設定する。
EmptyValue=上記以外 エラーメッセージ(KMBV11020-E)を出力して終了する。

注 データベースのカラム設定値について
0x00 :データ長1バイトの文字列。データ内容は「0x00」。
空文字:データ長0バイトの文字列。データ内容は不定。

(k) XmlBrokerエントリ

機能
XML文書を登録する場合に指定するエントリです。

指定形式
XmlBroker = HAX

指定規則
  • 「HAX」を指定します。
  • このエントリの記述は省略できません。
  • XmlBrokerエントリに指定がない場合,または「HAX」以外の値を指定した場合は,ワーニングメッセージ(KMBV11075-W)を出力し,そのオブジェクトを無視して処理を続行します。

指定例
XmlBrokerエントリの指定例を表4-9に示します。

表4-9 XmlBrokerエントリの指定例

指定例 動作
XmlBroker=HAX XML文書をHiRDB Adapter for XMLで登録します。
XmlBroker=上記以外 ワーニングメッセージ(KMBV11075-W)を出力し,そのオブジェクトを無視して処理を続行します。

(2) DataMappingセクション

機能
定義ファイルのClassNameDefinitionセクションで定義したクラスとプロパティの対応関係を定義するセクションです。

指定形式
エントリは定義ファイルのClassNameDefinitionセクションで定義したクラスの最上位クラスごとに次の形式で記述します。
 
クラス名=プロパティ名[,プロパティ名…]
プロパティ名::={プロパティ名 | VariableArray型プロパティ名 | システム定義プロパティ名}
 

指定規則
  • プロパティ名には,定義ファイルのPropNameDefinitionセクションで定義したプロパティ名を指定してください。クラス関連ファイルで関連を定義している場合は,「登録先クラス名@」をプロパティ名に修飾して指定してください。
  • VariableArray型プロパティ名の場合,edmClass_Structクラスのサブクラスを要素とするプロパティを指定するときは,「edmClass_Structサブクラス名.」をプロパティ名に修飾して指定してください。
  • システム定義プロパティ名は,システム定義のプロパティを「**PROP_xxx**」という形式で指定してください。指定できるシステム定義プロパティについては,「4.5.5(6) プロパティ値の指定」を参照してください。

指定例
DataMappingセクションの指定例を図4-2に示します。

図4-2 DataMappingセクションの指定例

[図データ]