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.