Cosminexus ビジネスプロセス管理/エンタープライズサービスバス V8 サービスプラットフォーム 開発ガイド
ファイル変換オペレーションの処理方式について説明します。
ファイル操作アダプタのファイル変換オペレーションには,次の二種類の処理方式があります。
入力ファイルを一括して読み込み,一括して変換します。変換後,一括して出力ファイルへ書き込みます。
一括処理方式で対象となるデータフォーマット,および対象とする変換内容を次に示します。
入力ファイルの読み込み,変換,出力ファイルへの書き込みを,入力ファイルのレコード単位で処理します。入力ファイルの終端まで繰り返し処理を実行します。
レコード単位の判定には,次の二種類の方式があります。
分割処理方式で,改行セパレータ方式を選択した場合,バイナリフォーマット定義に関係なく,改行コード(LF(0x0a)またはCR+LF(0x0d 0x0a))の出現でレコードの区切りを判断しているため,変換元ファイルにある文字コードの改行のバイトパターンが,改行コード以外のとき(文字コード例:UTF-16_BIG,UTF-16_LITTLE,KEIS+EBCDIC,KEIS+EBCDIK,KEIS),改行セパレータ方式の分割処理方式では正常に処理できません。
なお,CUSTOMを選択した場合,処理対象のデータに従います。
ファイル分割機能が対象とするデータフォーマットは,バイナリフォーマット定義だけです。また,ファイル分割機能が対象とするデータ構造は,ヘッダレコード部,データレコード部,トレーラレコード部がこの順番で出現する構造である必要があります。
データレコード部は,決められた要素の並びが連続して繰り返されている構造を持ったデータです。データベースのテーブル構造と同じで,決められた要素の並び(行)をレコードと呼び,これがn回繰り返されているイメージです。レコード内の要素数およびレコード数に制限はありません。
ヘッダレコード部およびトレーラレコード部は,任意の要素が並ぶ複合内容要素で,レコードが繰り返されることはありません。また,これらの部分は省略できます。
データファイル構造とデータレコード部のイメージを次に示します。
図19-4 データファイル構造
図19-5 データレコード部のイメージ
データフォーマットは固定長形式および改行セパレータ形式に対応します。また,入力および出力フォーマットとも上記の形式の構造であることが必要です。
データ形式の例を次に示します。
図19-6 固定長形式のデータ例
図19-7 改行セパレータ形式のデータ例
フォーマット定義,およびデータ変換定義を次に示します。
レコード分割機能,およびレコード部の位置と長さについて説明します。
表19-4 レコード有無指定によるレコード種別(固定長方式)
レコード 有無指定 |
ヘッダレコード部 指定有無 |
有 | 有 | 無 | 無 |
---|---|---|---|---|---|
トレーラレコード部 指定有無 |
有 | 無 | 有 | 無 | |
レコード部の位置と長さ | ヘッダレコード部 | ファイル先頭 〜 ヘッダレコード長 |
ファイル先頭 〜 ヘッダレコード長 |
− | − |
データレコード部 | ヘッダレコード部 終了位置 〜 データレコード長 *データレコード数 |
ヘッダレコード部 終了位置 〜 データレコード長 *データレコード数 |
ファイル先頭 〜 データレコード長 *データレコード数 |
ファイル先頭 〜 データレコード長 *データレコード数 |
|
トレーラレコード部 | データレコード部 終了位置 〜 トレーラレコード長 |
− | データレコード部 終了位置 〜 トレーラレコード長 |
− |
(凡例) −:該当しません。
データレコード部サイズ= データファイルサイズ −(ヘッダレコード長+トレーラレコード長) レコード数 = データレコード部サイズ/データレコード長(小数点以下切り捨て) |
表19-5 レコード有無指定によるレコード種別(改行セパレータ方式)
レコード 有無指定 |
ヘッダレコード部 指定有無 |
有 | 有 | 無 | 無 |
---|---|---|---|---|---|
トレーラレコード部 指定有無 |
有 | 無 | 有 | 無 | |
レコード部の位置と長さ | ヘッダレコード部 | 先頭行 | 先頭行 | − | − |
データレコード部 | 先頭行以降 〜 最終行直前 |
先頭行以降 〜 最終行 |
先頭行 〜 最終行直前 |
先頭行 〜 最終行 |
|
トレーラレコード部 | 最終行 | − | 最終行 | − |
(凡例) −:該当しません。
表19-6 エラー判定パターン
ヘッダレコード部 | トレーラレコード部 | 変換するファイルの行数 |
---|---|---|
有 | 有 | 1行以下 |
有 | 無 | 0行以下 |
無 | 有 | 0行以下 |
All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.