言語によって扱えるデータ型の範囲は異なりますが、アプリケーション連携実行基盤では、サーバアプリケーションの言語に合わせて、データ型の変換処理を行います。これにより、アプリケーションがどの言語で作成されているかを意識することなく、業務アプリケーションを作成することができます。
C言語とJava間では、特別な変換規則はありません。JavaとCOBOL間でデータ型が変換されます。
JavaとCOBOL間では、以下の規則に従って変換します。
直接対応関係を持つ整数型/非整数型
以下のデータ型については特別な変換規則はありません。
| Java | COBOL |
---|---|---|
定義 | short(java.lang.Short)(注) | PIC S9(1~4) COMP-5 |
PIC S9(1~4) COMP | ||
int(java.lang.Integer)(注) | PIC S9(5~9) COMP-5 | |
PIC S9(5~9) COMP | ||
long(java.lang.Long)(注) | PIC S9(10~18) COMP-5 | |
PIC S9(10~18) COMP | ||
float(java.lang.Float)(注) | COMP-1 | |
double(java.lang.Double)(注) | COMP-2 |
注)Mapを利用する場合は、かっこ内に示すラッパークラスと対応します。
英数字項目
JavaからCOBOLにデータ変換する場合
JavaからCOBOLにデータ変換する場合、COBOL側のデータ項目の大きさに合わせて、末尾に1バイト空白文字を挿入します。
| Java | COBOL |
---|---|---|
定義 | java.lang.String | PIC X(10) |
値 | “ABC△12” | “ABC△12△△△△” |
△:1バイト空白文字
COBOLからJavaにデータ変換する場合
COBOLからJavaにデータ変換する場合、末尾の1バイト空白文字を削除します。
| COBOL | Java |
---|---|---|
定義 | PIC X(10) | java.lang.String |
値 | “ABC△12△△△△” | “ABC△12” |
△:1バイト空白文字
日本語項目
JavaからCOBOLにデータ変換する場合
JavaからCOBOLにデータ変換する場合、COBOL側のデータ項目の大きさに合わせて、末尾に日本語空白文字を挿入します。
なお、COBOLのコンパイルオプションで文字コードがUnicode以外の場合は、送受信できません。
| Java | COBOL |
---|---|---|
定義 | java.lang.String | PIC N(10) |
値 | “あいう□えお” | “あいう□えお□□□□” |
□:日本語空白文字
COBOLからJavaにデータ変換する場合
COBOLからJavaにデータ変換する場合、末尾の日本語空白文字を削除します。
| COBOL | Java |
---|---|---|
定義 | PIC N(10) | java.lang.String |
値 | “あいう□えお□□□□” | “あいう□えお” |
□:日本語空白文字
整数型2進数項目(規格2進)
JavaからCOBOLにデータ変換する場合
JavaからCOBOLにデータ変換する場合、そのままの値が設定されます。
| Java | COBOL |
---|---|---|
定義 | short(java.lang.Short)(注) | PIC S9(4) COMP |
値 | 1234 | +1234 |
注)Mapを利用する場合は、かっこ内に示すラッパークラスと対応します。
JavaからCOBOLへのデータ変換で、COBOLのデータで定義した桁を超えて値が渡された場合、COBOL側でデータ型の桁数に合わせて、桁落としが行われます。
| Java | COBOL |
---|---|---|
定義 | short(java.lang.Short)(注) | PIC S9(4) COMP-5 |
値 | 12345 | +2345 |
注)Mapを利用する場合は、かっこ内に示すラッパークラスと対応します。
COBOLからJavaにデータ変換する場合
COBOLからJavaにデータ変換する場合、そのままの値が設定されます。
| COBOL | Java |
---|---|---|
定義 | PIC S9(4) COMP | short(java.lang.Short)(注) |
値 | +1234 | 1234 |
注)Mapを利用する場合は、かっこ内に示すラッパークラスと対応します。
直接対応関係をもたない整数型(外部10進)
JavaからCOBOLにデータ変換する場合
JavaからCOBOLにデータ変換する整数項目の場合、COBOL側でデータ型の桁数に合わせて、桁落としや0詰めが行われます。
| Java | COBOL |
---|---|---|
定義 | java.lang.String | PIC S9(8) |
値 | “+123456789” | +23456789 |
“+12345678” | +12345678 | |
“+123456” | +00123456 |
COBOLからJavaにデータ変換する場合
COBOLからJavaにデータ変換する整数項目の場合、値を文字列化するだけでなく、正符号や桁合わせの0削除が行われます。
| COBOL | Java |
---|---|---|
定義 | PIC S9(8) | java.lang.String |
値 | +00123456 | “123456” |
-00123456 | “-123456” |
直接対応関係をもたない非整数型(外部10進)
JavaからCOBOLにデータ変換する場合
JavaからCOBOLにデータ変換する非整数項目の場合、小数点位置をCOBOL側でデータ型の桁数に合わせて、桁落としや0詰めが行われます。
| Java | COBOL |
---|---|---|
定義 | java.lang.String | PIC S9(4)V9(4) |
値 | “+12345678” | +5678.0000 |
“+12.345678” | +0012.3456 | |
“+1234.5678” | +1234.5678 |
COBOLからJavaにデータ変換する場合
COBOLからJavaにデータ変換する非整数項目の場合、小数点位置に合わせて文字列化し、正符号や桁合わせの0削除が行われます。
| COBOL | Java |
---|---|---|
定義 | PIC S9(4)V9(4) | java.lang.String |
値 | +0012.3450 | “12.345” |
-0012.3456 | “-12.3456” | |
+0000.1234 | “0.1234” |
直接対応関係をもたない符号整数(符号付き)
JavaからCOBOLにデータ変換する場合
JavaからCOBOLにデータ変換する符号整数(符号付き)の場合、COBOL側で必要に応じて符号を補います。
| Java | COBOL |
---|---|---|
定義 | java.lang.String | PIC S9(8) |
値 | “+12345678” | +12345678 |
“-12.345678” | -00000012 | |
“1234.5678” | +00001234 |
直接対応関係をもたない符号整数(符号なし)
JavaからCOBOLにデータ変換する場合
JavaからCOBOLにデータ変換する符号整数(符号なし)の場合、COBOL側で常に符号を削除します。
| Java | COBOL |
---|---|---|
定義 | java.lang.String | PIC 9(8) |
値 | “+12345678” | 12345678 |
“-12.345678” | 00000012 | |
“1234.5678” | 00001234 |