Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 解説
ここでは,ファイル変換オペレーションでサポートする機能やファイル形式について説明します。
ファイル変換オペレーションは,作業フォルダまたは共通フォルダから変換元の入力ファイルを読み込み,変換後の出力ファイルを作業フォルダまたは共通フォルダに書き込みます。
ファイル変換オペレーションの処理の概要について,次の図に示します。
図8-34 ファイル変換オペレーションの処理
ファイル変換オペレーションでサポートする入力ファイル,および出力ファイルのファイル形式について次の表に示します。
表8-12 ファイル変換オペレーションでサポートするファイル形式
項番 | 処理方式 | 入力ファイルの形式 | 出力ファイルの形式 | サポート可否 | |
---|---|---|---|---|---|
1 | 一括処理方式 | バイナリ形式 | バイナリ形式 | ○ | |
2 | XML形式 | ○ | |||
3 | XML形式 | バイナリ形式 | ○ | ||
4 | XML形式 | ○ | |||
5 | 分割処理方式 | バイナリ形式 | 固定長形式 | バイナリ形式 | ○ |
6 | XML形式 | ○ | |||
7 | レングスタグ形式 | バイナリ形式 | × | ||
8 | XML形式 | × | |||
9 | 改行セパレータ形式 | バイナリ形式 | ○ | ||
10 | XML形式 | ○ | |||
11 | 上記以外 | バイナリ形式 | × | ||
12 | XML形式 | × | |||
13 | XML形式 | バイナリ形式 | ○ | ||
14 | XML形式 | ○ |
固定長形式,レングスタグ形式,および改行セパレータ形式の違いを次に示します。
ファイル変換時にレイアウト変換ができます。また,入出力形式がバイナリ形式の場合は,改行コードの付与・削除,文字コード変換もできます。
一括処理方式では,入力ファイルを一括して読み込み,一括して変換します。変換後,一括して出力ファイルへ書き込みます。
一括処理方式で対象となるデータフォーマット,および対象とする変換内容を次に示します。
入力ファイルの読み込み,変換,出力ファイルへの書き込みを,入力ファイルのレコード単位で処理します。入力ファイルの終端まで繰り返し処理を実行します。
分割処理方式でバイナリ形式からXML形式のファイルに変換する場合,およびXML形式からバイナリ形式のファイルに変換する場合の定義例については,マニュアル「サービスプラットフォーム 開発ガイド 受付・アダプタ定義編」の「付録E ファイル操作アダプタの定義例」を参照してください。
入力ファイルの形式によってレコード単位の判定方式が異なります。
分割処理方式で対象とする入力ファイルのデータフォーマットは,バイナリフォーマット定義およびXMLスキーマです。また,対象とするデータ構造は,ヘッダレコード部,データレコード部,トレーラレコード部がこの順番で出現する構造である必要があります。
データレコード部は,決められた要素の並びが連続して繰り返されている構造を持ったデータです。データベースのテーブル構造と同じで,決められた要素の並び(バイナリ形式の場合は行,XML形式の場合は特定の要素以下のデータ)をレコードと呼び,これがn回繰り返されているイメージです。レコード内の要素数およびレコード数に制限はありません。
ヘッダレコード部およびトレーラレコード部は,任意の要素が並ぶ複合内容要素で,レコードが繰り返されることはありません。また,これらの部分は省略できます。
データファイル構造とデータレコード部のイメージを次に示します。
図8-35 データファイル構造
図8-36 データレコード部のイメージ
データフォーマットはバイナリ形式(固定長形式および改行セパレータ形式),およびXML形式に対応します。また,入力および出力フォーマットとも上記の形式の構造であることが必要です。
バイナリ形式のデータの例を次に示します。
図8-37 固定長形式のデータ例
図8-38 改行セパレータ形式のデータ例
分割処理方式で定義が必要なバイナリフォーマット定義,XMLスキーマ,およびデータ変換定義を次に示します。
表8-13 レコード有無指定によるレコード種別(固定長方式)
レコード 有無指定 |
ヘッダレコード部 指定有無 |
有 | 有 | 無 | 無 |
---|---|---|---|---|---|
トレーラレコード部 指定有無 |
有 | 無 | 有 | 無 | |
レコード部の位置と長さ | ヘッダレコード部 | ファイル先頭 〜 ヘッダレコード長 |
ファイル先頭 〜 ヘッダレコード長 |
− | − |
データレコード部 | ヘッダレコード部 終了位置 〜 データレコード長 *データレコード数 |
ヘッダレコード部 終了位置 〜 データレコード長 *データレコード数 |
ファイル先頭 〜 データレコード長 *データレコード数 |
ファイル先頭 〜 データレコード長 *データレコード数 |
|
トレーラレコード部 | データレコード部 終了位置 〜 トレーラレコード長 |
− | データレコード部 終了位置 〜 トレーラレコード長 |
− |
データレコード部サイズ= データファイルサイズ −(ヘッダレコード長+トレーラレコード長) レコード数 = データレコード部サイズ/データレコード長(小数点以下切り捨て) |
表8-14 レコード有無指定によるレコード種別(改行セパレータ方式)
レコード 有無指定 |
ヘッダレコード部 指定有無 |
有 | 有 | 無 | 無 |
---|---|---|---|---|---|
トレーラレコード部 指定有無 |
有 | 無 | 有 | 無 | |
レコード部の位置と長さ | ヘッダレコード部 | 先頭行 | 先頭行 | − | − |
データレコード部 | 先頭行以降 〜 最終行直前 |
先頭行以降 〜 最終行 |
先頭行 〜 最終行直前 |
先頭行 〜 最終行 |
|
トレーラレコード部 | 最終行 | − | 最終行 | − |
表8-15 エラー判定パターン
ヘッダレコード部 | トレーラレコード部 | 変換するファイルの行数 |
---|---|---|
有 | 有 | 1行以下 |
有 | 無 | 0行以下 |
無 | 有 | 0行以下 |
入力XMLファイルのヘッダレコード,データレコード,およびトレーラレコードのレコード区切りを指定するには,ファイル操作アダプタ定義ファイルに読み込む要素のパスを設定します。
ファイル操作アダプタ定義ファイルの設定項目と設定内容を次の表に示します。
表8-16 ファイル操作アダプタ定義ファイルの設定(入力XMLファイルの分割入力)
設定項目 | 設定内容 |
---|---|
csc.adapter.fileOperation.transform.header.inElement | 入力XMLファイルのヘッダレコードに対応する要素のパスを指定します。 ヘッダレコードを使用しない場合,指定は不要です(指定しても無視されます)。 |
csc.adapter.fileOperation.transform.data.inElement | 入力XMLファイルのデータレコードに対応する要素のパスを指定します。 |
csc.adapter.fileOperation.transform.trailer.inElement | 入力XMLファイルのトレーラレコードに対応する要素のパスを指定します。 トレーラレコードを使用しない場合,指定は必要ありません(指定しても無視されます)。 |
入力XMLファイルとファイル操作アダプタ定義ファイルの設定例を示します。
図8-39 入力XMLファイルとファイル操作アダプタ定義ファイルの設定例
入力ファイルが分割処理方式の場合,各レコードの変換結果を1つのXMLファイルにマージするための出力用テンプレートXMLファイルを使用します。
出力用テンプレートXMLファイルの内容は,「(b) 対象とするデータフォーマット」で作成した出力XMLスキーマに沿った形式である必要があります。整形式のXML文書でない場合,変換時にエラーとなります。
出力用テンプレートXMLファイルの仕様を次の表に示します。
表8-17 出力用テンプレートXMLファイルの仕様
項目 | 仕様 |
---|---|
ファイル名 | ファイル操作アダプタ定義ファイルのcsc.adapter.fileOperation.transform.outputTemplateXmlFileプロパティで指定したファイル名 |
文字エンコーディング | UTF-8 |
出力用テンプレートXMLファイル中の特定の要素をレコード(出力データ)に置き換えて,出力XMLファイルが作成されます。
レコードに置き換える要素は,ファイル操作アダプタ定義ファイルで指定します。ファイル操作アダプタ定義ファイルの設定項目と設定内容を次の表に示します。
表8-18 ファイル操作アダプタ定義ファイルの設定(出力XMLファイルのマージ)
設定項目 | 設定内容 |
---|---|
csc.adapter.fileOperation.transform.header.outElement | 出力XMLファイルのヘッダレコードに対応する要素のパスを指定します。 ヘッダレコードを使用しない場合,指定は不要です(指定しても無視されます)。 |
csc.adapter.fileOperation.transform.data.outElement | 出力XMLファイルのデータレコードに対応する要素のパスを指定します。 |
csc.adapter.fileOperation.transform.trailer.outElement | 出力XMLファイルのトレーラレコードに対応する要素のパスを指定します。 トレーラレコードを使用しない場合,指定は必要ありません(指定しても無視されます)。 |
出力用テンプレートXMLファイル,およびファイル操作アダプタ定義ファイルの設定例を次の図に示します。
図8-40 出力用テンプレートXMLファイルとファイル操作アダプタ定義ファイルの設定例
出力用テンプレートXMLファイルを出力XMLファイルに変換した例を次の図に示します。なお,この例では出力XMLファイルの改行や空白を表示していますが,実際の出力XMLファイルでは,要素の間の改行や空白は削除されます。
図8-41 XMLファイルの出力例
出力用テンプレートXMLファイルを使用した出力XMLファイルは,次の表に示す形式で出力されます。
表8-19 出力XMLファイルの形式
項目 | 仕様 |
---|---|
文字エンコーディング | UTF-8 |
要素の間のスペース | 削除されます。 |
要素の間の改行 | 削除されます。 |
名前空間宣言 |
|
ファイルの内容 | 出力XMLスキーマに沿ったXMLが出力されます。出力XMLスキーマとの整合性は検証されません。 |
ファイル変換オペレーションでは,分割処理方式を選択した場合に,複数のデータレコードをまとめて1要素として変換することができます。入力ファイルがバイナリ形式またはXML形式のどちらの場合でも変換できます。
入力ファイルがバイナリ形式,かつデータレコードの総数が6で,2つのデータレコードを1要素として変換する場合の例を次に示します。
図8-42 2つのデータレコードを1要素として変換する例(固定長形式の場合)
図8-43 2つのデータレコードを1要素として変換する例(改行セパレータ形式の場合)
1要素(同時に変換するレコード数)の設定は,ファイル操作アダプタ定義ファイルの次のパラメタで指定します。
パラメタの内容については,マニュアル「サービスプラットフォーム リファレンス」の「ファイル操作アダプタ定義ファイル」を参照してください。
データレコードの総数が,パラメタに設定した値で割り切れなかった場合は,余ったレコードを一度に変換します。
変換例として,データレコードの総数が6で,4つのデータレコードを1要素として変換する場合の例を次に示します。
図8-44 1要素に指定した値で割り切れなかった場合の変換例
次の条件をすべて満たす場合,複数のヘッダレコードをまとめて1要素として変換することができます。
変換するヘッダレコード数は,ファイル操作アダプタ定義ファイルのcsc.adapter.fileOperation.transform.header.batchSizeプロパティで指定できます。
次の条件では変換時にエラーになる場合があります。
ファイル変換オペレーションで読み込むファイルや書き込むファイルの形式は,あらかじめバイナリフォーマット定義画面でバイナリフォーマット定義ファイルを作成したあと,ファイル操作アダプタの独自定義ファイルとして指定してください。
バイナリフォーマット定義画面の詳細は,マニュアル「サービスプラットフォーム リファレンス」の「1.2.1 バイナリフォーマット定義画面」を参照してください。
バイナリフォーマット定義ファイルの作成については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「4.4 電文フォーマット(バイナリフォーマット定義ファイル)の作成方法」を参照してください。
ファイル操作アダプタの独自定義ファイルの指定については,マニュアル「サービスプラットフォーム リファレンス」の「ファイル操作アダプタ定義ファイル」を参照してください。
あらかじめ作成した入力ファイルから出力ファイルへ変換するデータ変換定義ファイル(xslファイル)を,ファイル操作アダプタの独自定義ファイルとして指定します。
開発環境のマッピング定義エディタでマッピング定義ファイルを作成するときに,データ変換定義を利用してxslファイルを作成してください。ファイル操作アダプタの独自定義ファイルの指定については,マニュアル「サービスプラットフォーム リファレンス」の「ファイル操作アダプタ定義ファイル」を参照してください。
ファイル変換オペレーションでは,ファイルの変換に文字コード変換UOCを使用できます。
文字コード変換UOCを使用する場合は,サービスアダプタ定義画面(詳細)の独自定義ファイルに,次のファイルを設定する必要があります。
1.で示したファイルと2.で示したファイルとを同時に指定した場合,1.で示したファイルが優先され,2.で示したファイルは無視されます。
サービスアダプタ定義画面(詳細)の設定方法については,マニュアル「サービスプラットフォーム 開発ガイド 受付・アダプタ定義編」の「3.3.11 ファイル操作アダプタを定義する」のファイル変換オペレーションについて説明している個所を参照してください。
文字コード変換UOCの概要および実装方法については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「付録H 文字コード変換UOCを利用した文字コード変換」を参照してください。
ファイル変換オペレーションで分割処理方式の変換をする場合に必要な独自定義ファイル,および指定が必要なファイル操作アダプタ定義ファイルのプロパティの一覧を次の表に示します。ファイル操作アダプタ定義ファイルの詳細は,マニュアル「サービスプラットフォーム リファレンス」の「ファイル操作アダプタ定義ファイル」を参照してください。
表8-20 分割処理方式で指定が必要な独自定義ファイルとファイル操作アダプタ定義ファイルのプロパティ
独自定義ファイルとして指定するファイル | 入力ファイル | 出力ファイル | |||
---|---|---|---|---|---|
バイナリ | XML | バイナリ | XML | ||
ヘッダ用レイアウト変換用XSLTファイル | ○※1 | ○※1 | ○※1 | ○※1 | |
データ用レイアウト変換用XSLTファイル | ○ | ○ | ○ | ○ | |
トレーラ用レイアウト変換用XSLTファイル | ○※2 | ○※2 | ○※2 | ○※2 | |
入力ヘッダ用FDXファイル | ○※1 | − | − | − | |
入力データ用FDXファイル | ○ | − | − | − | |
入力トレーラ用FDXファイル | ○※2 | − | − | − | |
入力ヘッダ用XMLスキーマファイル | − | − | − | − | |
入力データ用XMLスキーマファイル | − | − | − | − | |
入力トレーラ用XMLスキーマファイル | − | − | − | − | |
ファイル操作アダプタ定義ファイルに指定するプロパティ | csc.adapter.fileOperation.transform.input (入力ファイル種別) |
○ | ○ | − | − |
csc.adapter.fileOperation.transform.output (出力ファイル種別) |
− | − | ○ | ○ | |
csc.adapter.fileOperation.transform.headerRecord (ヘッダレコード使用有無) |
○※1 | ○※1 | ○※1 | ○※1 | |
csc.adapter.fileOperation.transform.trailerRecord (トレーラレコード使用有無) |
○※2 | ○※2 | ○※2 | ○※2 | |
csc.adapter.fileOperation.transform.header.inElement (入力ヘッダ要素名) |
− | ○※1 | − | − | |
csc.adapter.fileOperation.transform.data.inElement (入力データ要素名) |
− | ○ | − | − | |
csc.adapter.fileOperation.transform.trailer.inElement (入力トレーラ要素名) |
− | ○※2 | − | − | |
csc.adapter.fileOperation.transform.header.outElement (出力ヘッダ要素名) |
− | − | − | ○※1 | |
csc.adapter.fileOperation.transform.data.outElement (出力データ要素名) |
− | − | − | ○ | |
csc.adapter.fileOperation.transform.trailer.outElement (出力トレーラ要素名) |
− | − | − | ○※2 | |
csc.adapter.fileOperation.transform.outputTemplateXmlFile (出力用テンプレートXMLファイルのファイル名) |
− | − | − | ○ | |
出力ヘッダ用FDXファイル | − | − | ○※1 | − | |
出力データ用FDXファイル | − | − | ○ | − | |
出力トレーラ用FDXファイル | − | − | ○※2 | − | |
出力ヘッダ用XMLスキーマファイル | − | − | − | − | |
出力データ用XMLスキーマファイル | − | − | − | − | |
出力トレーラ用XMLスキーマファイル | − | − | − | − | |
出力用テンプレートXMLファイル | − | − | − | ○ | |
文字コード変換UOC用入力プロパティ(入力・出力ファイル共通) csc_owncodeconvert.properties |
○※3 | − | ○※3 | − | |
文字コード変換UOC用入力プロパティ(入力ファイル変換用) csc_owncodeconvert_in.properties |
○※3 | − | − | − | |
文字コード変換UOC用入力プロパティ(出力ファイル変換用) csc_owncodeconvert_out.properties |
− | − | ○※3 | − |
All Rights Reserved. Copyright (C) 2012, 2019, Hitachi, Ltd.