付録A.1 COBOLアクセス用Bean生成時のCOBOL定義注意事項/制限事項
COBOLアクセス用Bean生成時は,COBOL UAP引数定義を別ファイルにして,COBOLデータ定義として指定する必要があります。このCOBOLデータ定義で,変更が必要な項目を表A-1に示します。
なお,表A-1には制限事項も含めて記述しています。制限事項に該当する場合は,COBOL UAPの引数を変更してください。
項番 |
COBOL定義 |
回避方法詳細 |
---|---|---|
1 |
EXTERNAL句 |
(1)を参照 |
2 |
GLOBAL句 |
(2)を参照 |
3 |
BLANK WHEN ZERO句 |
(3)を参照 |
4 |
SYNCHRONIZED句 |
(4)を参照 |
5 |
JUSTIFIED句 |
(5)を参照 |
6 |
VALUE句 |
(6)を参照 |
7 |
RENAMES句 |
(7)を参照 |
8 |
条件名 |
(8)を参照 |
9 |
外部浮動小数点項目 |
(9)を参照 |
10 |
外部ブール項目 |
(10)を参照 |
11 |
内部ブール項目 |
(11)を参照 |
12 |
OCCURS句(OCCURS 整数 TIMES以外) |
(12)を参照 ただし,反復回数が可変の場合,COBOLデータ定義によっては回避方法がありませんのでCOBOL UAP引数定義を変更してください。 |
13 |
位取り |
(13)を参照 |
14 |
行内注記(*>) |
(14)を参照 |
15 |
修飾 |
(15)を参照 |
16 |
登録集原文中のCOPY文(COPY { 原文名 | 原文名定数 } .以外) |
(16)を参照 |
17 |
SAME AS句 |
(17)を参照 |
18 |
TYPE句およびTYPEDEF句 |
(18)を参照 |
19 |
翻訳指令 |
(19)を参照 |
20 |
PICTURE句(数字項目のけた拡張機能) |
(20)を参照 |
21 |
動的長基本項目 |
(21)を参照 |
22 |
日本語集団項目 |
(22)を参照 |
- 〈この項の構成〉
-
(1) EXTERNAL句
LINKAGE SECTIONで指定できないEXTERNAL句は削除してください。
Javaマッピングデータ属性は,EXTERNAL句の指定有無にかかわらず,EXTERNAL句がない場合と同じです。
(3) BLANK WHEN ZERO句
数字項目の編集を指定するBLANK WHEN ZERO句は削除してください。
また,数字項目に指定されたBLANK WHEN ZERO句である場合は,同じ領域長の英数字項目に変更してください。
操作は数字編集項目と同様に,編集した値を設定し,受け取ったデータをJavaプログラムで数値に変換して使用します。
[ 例 ]
<変更前>
<変更後>
(4) SYNCHRONIZED句
計算機記憶の固有の境界に従った,基本項目の配置を指定するSYNCHRONIZED句は削除してください。また,SYNCHRONIZED句によって確保されていた暗黙のFILLERを明示的に定義してください。暗黙のFILLERについては,マニュアル「COBOL2002 言語 標準仕様編」のSYNCHRONIZED句の記述個所を参照してください。
[ 例 ]
<変更前>
<変更後>
(5) JUSTIFIED句
けた寄せを表すJUSTIFIED句は削除してください。
Javaマッピングデータ属性は,JUSTIFIED句の指定有無にかかわらず,JUSTIFIED句がない場合と同じです。
(9) 外部浮動小数点項目
外部浮動小数点項目は,英数字項目に変更してください。英数字項目のけた数は,外部浮動小数点項目の形式から算出してください。Javaプログラムでは,Stringデータを浮動小数点データに変換して使用してください。
[ 例 ]
<変更前>
<変更後>
(10) 外部ブール項目
外部ブール項目は,英数字項目に変更してください。
外部ブール項目の場合,英数字項目のけた数は,ブール項目のけた数と同じです。
また,Javaプログラムでは,文字'0'と'1'を使用します。
[ 例 ]
<変更前>
<変更後>
(11) 内部ブール項目
内部ブール項目は,バイト配列にマッピングした英数字項目に変更してください。英数字項目のけた数は,内部ブール項目が占有するバイト数と同じです。また,Javaプログラムでは,バイト配列をビット操作して使用してください。なお,内部ブール項目で遊びビットが取られる場合は,Javaプログラムで遊びビットを考慮してください。
[ 例 ]
<変更前>
<変更後>
(12) OCCURS句(OCCURS 整数 TIMES以外)
「OCCURS 整数 TIMES」以外の指定は,削除してください。
Javaマッピングデータ属性は,INDEXED指定,KEY指定の有無にかかわらず,INDEXED指定,KEY指定がない場合と同じです。
DEPENDING ON指定は繰り返し回数が可変であることを表します。
後続のデータ項目の開始位置が,繰り返し回数によって変わる場合は使用できません。項目の開始位置が,繰り返し回数に依存しない場合は,DEPENDING ON指定を削除して使用してください。
[ 例 ]
<変更前>
<変更後>
(13) 位取り
PICTURE文字列に指定した文字'P'を削除してください。Javaプログラムでは,想定した位取りを意識した演算を行う必要があります。
[ 例 ]
<変更前>
<変更後>
上記の例で,COBOLプログラムでHTC-OUTDATAに12300という値が入っている場合,Javaプログラムで見るHTC-OUTDATAは123という値になります。
したがって,Javaプログラムでこの値を使用する場合は,100倍した値を使用する必要があります。