Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編
サービスプラットフォームで独自に拡張した形式を使用する場合のデータ項目の設定について説明します。
集団項目の記述形式を次に示します。
| レベル番号 {データ名|FILLER} [{CHARSET {'MS932'|'UTF8'|'UTF16_BIG'|'UTF16_LITTLE'|'JIS'|'EUC'|'EUC_HJ'|'KEIS_EBCDIK'|'KEIS_EBCDIC'|'KEIS'|'IBM_EBCDIC_LATIN'|'IBM_EBCDIC_KANA'|'IBM_CODE'|'JEF_EBCDIK'|'JEF_EBCDIC'|'JEF'|'CUSTOM'}|JAVA-ENCODING-CHARSET 文字コード}] [ESCAPE-CHARACTER エスケープ文字] [LINEFEED {LF|CRLF}] [DELETE EXTRA-SEPARATORS] [(SEPARATOR セパレータ名 セパレータ値)*] [OCCURS {最小出現回数 [TO UNBOUNDED] [TIMES]|DEPENDING ON ノード [ABSOLUTE]}] [SIZE DEPENDING ON ノード [ABSOLUTE] [CALC {SYSTEM|DATA|NODE}]] [CHOOSE {DEPENDING ON ノード [ABSOLUTE]|BY START-SEPARATOR}] [CASE 選択条件値] [START-SEPARATOR 開始セパレータ名] [MIDDLE-SEPARATOR 中間区切りセパレータ名] [TERMINAL-SEPARATOR 終了セパレータ名] [{LITTLE-ENDIAN|BIG-ENDIAN}] [CODE-TABLE-DIRECTORY-NAME コード変換テーブルの格納ディレクトリ名] . |
次のオプションはレコードで記述できます。
また,次のオプションはレコードで記述できません。
基本項目の記述方法はデータ型によって異なります。
基本項目の記述形式を次に示します。
PICTURE句で指定できるのは,固定長のデータ型だけです。
PICTURE句に指定できる文字については,「4.5.2(1) データ項目の記述形式」を参照してください。
レベル番号 {データ名|FILLER}
{PICTURE|PIC} [IS] 文字列
[[USAGE [IS]] {COMPUTATIONAL-3|COMP-3|COMPUTATIONAL|COMP|DISPLAY|NATIONAL}]
[{JUSTIFIED|JUST} {LEFT|RIGHT}]
[OCCURS {最小出現回数 [TO UNBOUNDED] [TIMES]|DEPENDING ON ノード [ABSOLUTE]}]
[CASE 選択条件値]
[CHARSET {'MS932'|'UTF8'|'UTF16_BIG'|'UTF16_LITTLE'|'JIS'|'EUC'|'EUC_HJ'|'KEIS_EBCDIK'|'KEIS_EBCDIC'|'KEIS'|'IBM_EBCDIC_LATIN'|'IBM_EBCDIC_KANA'|'IBM_CODE'|'JEF_EBCDIK'|'JEF_EBCDIC'|'JEF'|'CUSTOM'}]
[EMBEDDING-CHARACTER {SPACE|NULL [TERMINATION]}]
[DELETE UNNECESSARY-CHARACTER]
.
|
文字列型の単純内容要素に変換する場合,STRING句で指定します。
レベル番号 {データ名|FILLER}
STRING SIZE {整数|DEPENDING ON ノード [ABSOLUTE]
[CALC{SYSTEM|DATA|NODE}]|UNTIL EOD}
[{JUSTIFIED|JUST} {LEFT|RIGHT}]
[OCCURS {最小出現回数 [TO UNBOUNDED] [TIMES]|DEPENDING ON ノード [ABSOLUTE]}]
[CASE 選択条件値]
[CHARSET {'MS932'|'UTF8'|'UTF16_BIG'|'UTF16_LITTLE'|'JIS'|'EUC'|'EUC_HJ'|'KEIS_EBCDIK'|'KEIS_EBCDIC'|'KEIS'|'IBM_EBCDIC_LATIN'|'IBM_EBCDIC_KANA'|'IBM_CODE'|'JEF_EBCDIK'|'JEF_EBCDIC'|'JEF'|'CUSTOM'}]
[EMBEDDING-CHARACTER {SPACE|NULL [TERMINATION]}]
[DELETE UNNECESSARY-CHARACTER]
[CONVERT-LOW-VALUE]
.
|
整数型の単純内容要素に変換する場合,INTEGER句で指定します。
レベル番号 {データ名|FILLER}
INTEGER SIZE {整数|DEPENDING ON ノード [ABSOLUTE]
[CALC{SYSTEM|DATA|NODE}]|UNTIL EOD}
[{JUSTIFIED|JUST]} {LEFT|RIGHT}]
[OCCURS {最小出現回数 [TO UNBOUNDED] [TIMES]|DEPENDING ON ノード [ABSOLUTE]}]
[CASE 選択条件値]
[CHARSET {'MS932'|'UTF8'|'UTF16_BIG'|'UTF16_LITTLE'|'JIS'|'EUC'|'EUC_HJ'|'KEIS_EBCDIK'|'KEIS_EBCDIC'|'KEIS'|'IBM_EBCDIC_LATIN'|'IBM_EBCDIC_KANA'|'IBM_CODE'|'JEF_EBCDIK'|'JEF_EBCDIC'|'JEF'|'CUSTOM'}]
[EMBEDDING-CHARACTER {ZERO|SPACE}]
[DELETE UNNECESSARY-CHARACTER]
[SIGN {NONE|MINUS-ONLY|ALWAYS}]
[CONVERT-LOW-VALUE]
.
|
ゾーン形式数値またはパック形式数値の単純内容要素に変換する場合,ZONE句またはPACK句で指定します。
レベル番号 {データ名|FILLER}
{ZONE|PACK} SIZE {整数|DEPENDING ON ノード [ABSOLUTE]
[VALUE-UNIT※ {BYTES|DIGITS}] [CALC{SYSTEM|DATA|NODE}]|UNTIL EOD}
[OCCURS {最小出現回数 [TO UNBOUNDED] [TIMES]|DEPENDING ON ノード [ABSOLUTE]}]
[CASE 選択条件値]
[DECIMAL-DIGITS 小数桁]
[SIGN {NONE|ALWAYS}]
.
|
符号付2進数整数型または符号無2進数整数型の単純内容要素に変換する場合,BINARY句で指定します。
レベル番号 {データ名|FILLER}
BINARY SIZE 整数
[OCCURS {最小出現回数 [TO UNBOUNDED] [TIMES]|DEPENDING ON ノード [ABSOLUTE]}]
[CASE 選択条件値]
[SIGN {NONE|ALWAYS}]
.
|
バイト列型の単純内容要素に変換する場合,BYTE句で指定します。
レベル番号 {データ名|FILLER}
BYTE SIZE {整数|DEPENDING ON ノード [ABSOLUTE]
[CALC{SYSTEM|DATA|NODE}]|UNTIL EOD}
[OCCURS {最小出現回数 [TO UNBOUNDED] [TIMES]|DEPENDING ON ノード [ABSOLUTE]}]
[CASE 選択条件値]
[BASE64]
.
|
ビット列型の単純内容要素に変換する場合,BIT句で指定します。
レベル番号 {データ名|FILLER}
BIT SIZE {整数}
[OCCURS {最小出現回数 [TO UNBOUNDED] [TIMES]|DEPENDING ON ノード [ABSOLUTE]}]
[CASE 選択条件値]
.
|
レコードの集団項目にオプションの句を定義することによって,バイナリフォーマット定義のフォーマットの各項目を設定できます。設定項目,句および省略時のデフォルト値を次に示します。
表4-10 フォーマットの設定項目
| 設定項目 | 対応するCOBOLの句 | デフォルト値 | |
|---|---|---|---|
| 文字コード | Code Converterが提供するエンコーダーとデコーダーで使用する文字コード | CHARSET | (ウィザードで設定した文字コード) |
| Javaが提供するエンコーダーとデコーダーで使用する文字コード | JAVA-ENCODING-CHARSET | windows-31j | |
| セパレータ | エスケープ文字 | ESCAPE-CHARACTER | (設定しない) |
| 改行文字 | LINEFEED | CR+LF | |
| 不要なセパレータの削除 | DELETE EXTRA-SEPARATORS | 無効 | |
| セパレータの定義 | SEPARATOR | − | |
| 2進整数のエンディアン | リトルエンディアン | LITTLE-ENDIAN | (ウィザードで設定したエンディアン) |
| ビッグエンディアン | BIG-ENDIAN | ||
| コード変換テーブル | 格納ディレクトリ名 | CODE-TABLE-DIRECTORY-NAME | (設定しない) |
バイナリフォーマット定義の文字コードを指定できます。
次に文字コードオプションの書式を示します。
| [{CHARSET {'MS932'|'UTF8'|'UTF16_BIG'|'UTF16_LITTLE'|'JIS'|'EUC'|'EUC_HJ'|'KEIS_EBCDIK'|'KEIS_EBCDIC'|'KEIS'|'IBM_EBCDIC_LATIN'|'IBM_EBCDIC_KANA'|'IBM_CODE'|'JEF_EBCDIK'|'JEF_EBCDIC'|'JEF'|'CUSTOM'}|JAVA-ENCODING-CHARSET 文字コード}] |
バイナリフォーマット定義のセパレータを指定できます。
ESCAPE-CHARACTER エスケープ文字
LINEFEED {LF|CRLF}
DELETE EXTRA-SEPARATORS
SEPARATOR セパレータ名 セパレータ値
バイナリフォーマット定義の2進整数のエンディアンを指定できます。
2進整数のエンディアンはウィザード上で指定できますが,COBOL登録集原文で設定した内容が優先されます。
LITTLE-ENDIAN
BIG-ENDIAN
バイナリフォーマット定義のコード変換テーブルの格納ディレクトリ名を指定できます。
コード変換テーブルの格納ディレクトリ名は,CODE-TABLE-DIRECTORY-NAME句で指定します。
CODE-TABLE-DIRECTORY-NAME句の書式を次に示します。
CODE-TABLE-DIRECTORY-NAME コード変換テーブルの格納ディレクトリ名
レコード以外の集団項目にオプションの句を定義することによって,バイナリフォーマット定義ファイルの複合内容要素の各項目を設定できます。設定項目,句および省略時のデフォルト値を次に示します。
表4-11 複合内容要素の設定項目
| 設定項目 | 対応するCOBOLの句 | デフォルト値 |
|---|---|---|
| 出現回数 | OCCURS | 1 |
| サイズノード | SIZE | (設定しない) |
| 選択構成 | CHOOSE | 逐次構成 |
| 選択条件値 | CASE | (設定しない) |
| 開始セパレータ | START-SEPARATOR | (設定しない) |
| 中間区切りセパレータ | MIDDLE-SEPARATOR | (設定しない) |
| 終了セパレータ | TERMINAL-SEPARATOR | (設定しない) |
出現回数を設定する場合,OCCURS句で指定します。
OCCURS句の書式を次に示します。
OCCURS 出現回数 [TIMES]
OCCURS 最小出現回数 TO UNBOUNDED [TIMES]
OCCURS DEPENDING ON 出現回数指定データ項目名 [ABSOLUTE]
サイズノードを設定する場合,SIZE句で指定します。
SIZE句の書式を次に示します。
SIZE DEPENDING ON サイズノード指定データ項目名 [ABSOLUTE]
SIZE DEPENDING ON サイズノード指定データ項目名 [ABSOLUTE]
CALC {SYSTEM|DATA|NODE}
ABSOLUTE句を指定した場合は絶対パスとして扱われ,指定しない場合は基準パスとして扱われます。
なお,CALC句を記述しなかった場合の動作は次のとおりです。
構成区分に選択構成を設定する場合,CHOOSE句で指定します。CHOOSE句を記述しない場合,構成区分は逐次構成となります。
CHOOSE句の書式を次に示します。
CHOOSE DEPENDING ON 選択条件ノード [ABSOLUTE]
CHOOSE BY START-SEPARATOR
選択条件値を設定する場合,CASE句で指定します。
CASE句の書式を次に示します。
CASE 選択条件値
なお,バイト列,およびビット列の選択条件値を指定する場合,16進数の定数を「'」で囲む必要があります。
開始セパレータを設定する場合,START-SEPARATOR句で指定します。
START-SEPARATOR句の書式を次に示します。
START-SEPARATOR 開始セパレータ名
中間区切りセパレータを設定する場合,MIDDLE-SEPARATOR句で指定します。
MIDDLE-SEPARATOR句の書式を次に示します。
MIDDLE-SEPARATOR 中間区切りセパレータ名
終了セパレータを設定する場合,TERMINAL-SEPARATOR句で指定します。
TERMINAL-SEPARATOR句の書式を次に示します。
TERMINAL-SEPARATOR 終了セパレータ名
基本項目にオプションの句を定義することによって,バイナリフォーマット定義ファイルの単純内容要素の各項目を設定できます。
なお,PICTURE句で型指定した場合と,PICTURE句以外で型指定した場合とで設定項目,句および省略時のデフォルト値が異なります。
表4-12 単純内容要素の設定項目(PICTURE句で型指定した場合)
| 設定項目 | 対応するCOBOLの句 | デフォルト値 |
|---|---|---|
| 出現回数 | OCCURS | 1 |
| 選択条件値 | CASE | (設定しない) |
| 個別文字コード | CHARSET | (設定しない) |
| 左右寄せ | JUSTIFIED | 左 |
| 埋め字 | EMBEDDING-CHARACTER | スペース(空白文字) |
| 不要文字の削除 | DELETE UNNECESSARY-CHARACTER | 不要文字を削除しない |
表4-13 単純内容要素の設定項目(PICTURE句以外で型指定した場合)
| 設定項目 | 対応するCOBOLの句 | デフォルト値 |
|---|---|---|
| 出現回数 | OCCURS | 1 |
| 選択条件値 | CASE | (設定しない) |
| 個別文字コード | CHARSET | (設定しない) |
| 左右寄せ | JUSTIFIED | 右(整数型の場合) 左(文字列型の場合) |
| 埋め字 | EMBEDDING-CHARACTER | スペース(空白文字) |
| 不要文字の削除 | DELETE UNNECESSARY-CHARACTER | 不要文字を削除しない |
| 符号の有無 | SIGN | なし |
| 小数部桁数 | DECIMAL-DIGITS | 0 |
| エンコード形式 | BASE64 | hexBinary |
| LOW-VALUEの変換 | CONVERT-LOW-VALUE | 変換しない |
[単純内容要素]の[出現回数]を設定します。可変長([データの終端まで],[出現回数ノード])も含みます。
出現回数を設定する場合,OCCURS句で指定します。
OCCURS句の書式を次に示します。
OCCURS 出現回数 [TIMES]
OCCURS 最小出現回数 TO UNBOUNDED [TIMES]
OCCURS DEPENDING ON 出現回数指定データ項目名 [ABSOLUTE]
選択条件値を設定する場合,CASE句で指定します。
CASE句の書式を次に示します。
CASE 選択条件値
なお,バイト列,およびビット列の選択条件値を指定する場合,16進数の定数を「'」で囲む必要があります。
データ種別の判定は,PICTURE句で型指定された基本項目の場合と,PICTURE句以外で型指定された基本項目の場合で,次のように異なります。
| SIZE句の前の句 | 単純内容要素のデータ種別 |
|---|---|
| INTEGER | 整数 |
| STRING | 文字列 |
| ZONE | ゾーン形式数値 |
| PACK | パック形式数値 |
| BYTE | バイト列 |
| BINARY | 符号付(無)2進整数 |
[単純内容要素]の[サイズ]を指定します。可変長([データの終端まで],[サイズノード])も含みます。
SIZE 整数
| 型指定句 | SIZE句で指定できる整数値 |
|---|---|
| INTEGER,ZONE,BYTE | 1〜2147483647 |
| STRING | 0※〜2147483647 |
| PACK | 1〜1073741823 |
| BINARY | 1〜8 |
| BIT | 1〜64 |
SIZE DEPENDING ON サイズノード指定データ項目名 [ABSOLUTE]
SIZE DEPENDING ON サイズノード指定データ項目名 [ABSOLUTE]
CALC {SYSTEM|DATA|NODE}
PACK SIZE DEPENDING ON サイズノード指定データ項目名 [ABSOLUTE] VALUE-UNIT {BYTES|DIGITS}
SIZE UNTIL EOD
次の項目について説明します。
[CHARSET {'MS932'|'UTF8'|'UTF16_BIG'|'UTF16_LITTLE'|'JIS'|'EUC'|'EUC_HJ'|'KEIS_EBCDIK'|'KEIS_EBCDIC'|'KEIS'|'IBM_EBCDIC_LATIN'|'IBM_EBCDIC_KANA'|'IBM_CODE'|'JEF_EBCDIK'|'JEF_EBCDIC'|'JEF'|'CUSTOM'}]
{JUSTIFIED|JUST} {LEFT|RIGHT}
EMBEDDING-CHARACTER {SPACE | NULL [TERMINATION]}
EMBEDDING-CHARACTER {ZERO | SPACE}
DELETE UNNECESSARY-CHARACTER
DECIMAL-DIGITS 小数部桁数
SIGN {NONE|MINUS-ONLY|ALWAYS}
SIGN {NONE|ALWAYS}
BASE64
CONVERT-LOW-VALUE
構文拡張したCOBOL登録集原文からバイナリフォーマット定義への変換例を示します。
●バイナリフォーマット定義の内容
| 要素名 | 区分 | 設定内容 |
|---|---|---|
| Cobol2FdxTool-Ex01 | フォーマット | 文字コード:UTF8
|
| root | 複合内容要素 | 構成区分:逐次構成 |
| simple-str | 単純内容要素 | データ種別:文字列 サイズ:1バイト 個別文字コード:JIS 埋め字:空文字(0x00) 左右寄せ:右 |
| complex-1 | 複合内容要素 | 構成区分:逐次構成
|
| simple-int1 | 単純内容要素 | データ種別:整数 サイズ:可変(データの終端まで) 符号の有無:負だけあり 埋め字:0 |
| simple-int2 | 単純内容要素 | データ種別:整数 サイズ:可変(データの終端まで) 符号の有無:負だけあり 左右寄せ:左 |
| simple-str | 単純内容要素 | データ種別:文字列 サイズ:可変(データの終端まで) 左右寄せ:左 |
| simple-pack | 単純内容要素 | データ種別:パック形式数値 サイズ:可変(データの終端まで) |
| simple-byte | 単純内容要素 | データ種別:バイト列 サイズ:1バイト |
●COBOL登録集原文の内容
01 root CHARSET 'UTF8' ESCAPE-CHARACTER '@'
LINEFEED LF DELETE EXTRA-SEPARATORS SEPARATOR 'Sepa-1' X'AA'.
03 simple-str STRING SIZE 1 JUSTIFIED RIGHT CHARSET 'JIS' EMBEDDING-CHARACTER NULL.
03 complex-1 MIDDLE-SEPARATOR 'Sepa-1'.
05 simple-int1 INTEGER SIZE UNTIL EOD EMBEDDING-CHARACTER ZERO SIGN MINUS-ONLY.
05 simple-int2 INTEGER SIZE UNTIL EOD JUSTIFIED LEFT SIGN MINUS-ONLY.
05 simple-str STRING SIZE UNTIL EOD.
05 simple-pack PACK SIZE UNTIL EOD.
05 simple-byte BYTE SIZE 1.
|
●バイナリフォーマット定義の内容
| 要素名 | 区分 | 設定内容 |
|---|---|---|
| root | 複合内容要素 | 構成区分:逐次構成 |
| complex-1 | 複合内容要素 | 構成区分:選択構成 選択種別:構成要素の開始セパレータ
中間区切りセパレータ:Sepa-2 終了セパレータ:Sepa-3 |
| simple-int | 単純内容要素 | データ種別:整数 サイズ:可変(データの終端まで) |
●COBOL登録集原文の内容
01 root SEPARATOR 'Sepa-1' X'AA' SEPARATOR 'Sepa-2' X'BB' SEPARATOR 'Sepa-3' X'CC'.
03 complex-1 CHOOSE BY START-SEPARATOR
START-SEPARATOR 'Sepa-1' MIDDLE-SEPARATOR 'Sepa-2'
TERMINAL-SEPARATOR 'Sepa-3'.
05 simple-int INTEGER SIZE UNTIL EOD.
|
●バイナリフォーマット定義の内容
| 要素名 | 区分 | 設定内容 |
|---|---|---|
| root | 複合内容要素 | − |
| size-node | 単純内容要素 | データ種別:整数 サイズ:4バイト |
| occurs-node | 単純内容要素 | データ種別:整数 サイズ:4バイト |
| choose-node | 単純内容要素 | データ種別:整数 サイズ:1バイト |
| complex-choose | 複合内容要素 | 構成区分:選択構成 選択種別:選択条件ノード 選択条件ノード:root/choose-node (絶対パス) |
| simple-str | 単純内容要素 | データ種別:文字列 サイズ:可変(サイズノード) サイズノード:root/size-node (絶対パス) 選択条件値:1 |
| simple-pack | 単純内容要素 | データ種別:パック形式数値 サイズ:可変(サイズノード) サイズノード:root/size-node (絶対パス) |
| complex-occurs | 複合内容要素 | 構成区分逐次構成 出現回数ノード:root/occurs-node (絶対パス) |
| simple-str | 単純内容要素 | データ種別:文字列 サイズ:可変(サイズノード) サイズノード:root/size-node (絶対パス) |
●COBOL登録集原文の内容
01 root.
03 size-node INTEGER SIZE 4.
03 occurs-node INTEGER SIZE 4.
03 choose-node INTEGER SIZE 1.
03 complex-choose CHOOSE DEPENDING ON choose-node ABSOLUTE.
05 simple-str STRING SIZE DEPENDING ON size-node ABSOLUTE CASE '1'.
05 simple-pack PACK SIZE DEPENDING ON size-node ABSOLUTE.
03 complex-occurs OCCURS DEPENDING ON occurs-node ABSOLUTE.
05 simple-str STRING SIZE DEPENDING ON size-node ABSOLUTE.
|
●バイナリフォーマット定義の内容
| 要素名 | 区分 | 設定内容 |
|---|---|---|
| root | 複合内容要素 | − |
| complex-1 | 複合内容要素 | − |
| size-node | 単純内容要素 | データ種別:整数 サイズ:4バイト |
| simple-str | 単純内容要素 | データ種別:文字列 サイズ:可変(サイズノード) サイズノード:complex-1/size-node (基準パス) |
●COBOL登録集原文の内容
01 root.
03 complex-1.
05 size-node INTEGER SIZE 4.
05 simple-str STRING SIZE DEPENDING ON size-node.
|
●バイナリフォーマット定義の内容
| 要素名 | 区分 | 設定内容 |
|---|---|---|
| root | 複合内容要素 | − |
| simple-int | 単純内容要素 | データ種別:整数 サイズ:8バイト 出現回数:固定(3回) |
| simple-str | 単純内容要素 | データ種別:文字列 サイズ:8バイト 出現回数:データの終端まで (データの省略不可) |
●COBOL登録集原文の内容
01 root.
05 simple-int INTEGER SIZE 8 OCCURS 3.
05 simple-str STRING SIZE 8 OCCURS 1 TO UNBOUNDED.
|
●バイナリフォーマット定義の内容
| 要素名 | 区分 | 設定内容 |
|---|---|---|
| root | 複合内容要素 | − |
| simple-int | 単純内容要素 | データ種別:整数 サイズ:8バイト 出現回数:データの終端まで (データの省略不可) |
| simple-str | 単純内容要素 | データ種別:文字列 サイズ:8バイト 出現回数:データの終端まで (データの省略可) |
●COBOL登録集原文の内容
01 root.
05 simple-int INTEGER SIZE 8 OCCURS 1 TO UNBOUNDED.
05 simple-str STRING SIZE 8 OCCURS 0 TO UNBOUNDED.
|
●バイナリフォーマット定義の内容
| 要素名 | 区分 | 設定内容 |
|---|---|---|
| root | 複合内容要素 | 2進整数のエンディアン:ビッグエンディアン |
| simple-bin | 単純内容要素 | データ種別:符号無2進整数 サイズ:4バイト |
●COBOL登録集原文の内容
01 root BIG-ENDIAN.
05 simple-bin PIC 9(8) COMP.
|
All Rights Reserved. Copyright (C) 2012, 2019, Hitachi, Ltd.