COBOL2002 Cosminexus連携機能ガイド


付録A.1 COBOLアクセス用Bean生成時のCOBOL定義注意事項/制限事項

COBOLアクセス用Bean生成時は,COBOL UAP引数定義を別ファイルにして,COBOLデータ定義として指定する必要があります。このCOBOLデータ定義で,変更が必要な項目を表A-1に示します。

なお,表A-1には制限事項も含めて記述しています。制限事項に該当する場合は,COBOL UAPの引数を変更してください。

表A‒1 COBOLアクセス用Bean生成時のCOBOL定義注意事項/制限事項一覧

項番

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句がない場合と同じです。

(2) GLOBAL句

GLOBAL句は削除してください。

Javaマッピングデータ属性は,GLOBAL句の指定有無にかかわらず,GLOBAL句がない場合と同じです。

(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句がない場合と同じです。

(6) VALUE句

初期値や条件名に対応する値を指定するVALUE句は削除してください。

Javaマッピングデータ属性は,VALUE句の指定有無にかかわらず,VALUE句がない場合と同じです。

(7) RENAMES句

基本項目を組み合わせて新たな集団を作る(再命名項目)RENAMES句は指定できないので,66レベル項目から削除してください。

[ 例 ]

<変更前>

[図データ]

<変更後>

[図データ]

(8) 条件名

条件名を指定する88レベルは指定できないので,88レベル項目を削除してください。Javaマッピングデータ属性は,条件名の指定有無にかかわらず,条件名がない場合と同じです。

(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倍した値を使用する必要があります。

(14) 行内注記(*>)

使用できません。削除してください。

(15) 修飾

基本項目のデータ名は,Beanのsetter/getterメソッド名称として使用されるので,修飾しなくても一意になっている必要があります。

一意となっていない場合は,「Bean生成ツール」で別名を指定して,一意の名称にしてください。

(16) 登録集原文中のCOPY文(COPY { 原文名 | 原文名定数 } .以外)

COPY文で指定されたCOPY原文を登録集原文に展開し,COPY文を削除してください。

(17) SAME AS句

使用できません。削除してください。

(18) TYPE句およびTYPEDEF句

使用できません。削除してください。

(19) 翻訳指令

使用できません。削除してください。

(20) PICTURE句(数字項目のけた拡張機能)

数字項目のけた拡張機能は使用できません。PICTURE句に指定するけた数は18けた以下にしてください。

(21) 動的長基本項目

DYNAMIC LENGTH句による動的長基本項目は使用できません。削除してください。

(22) 日本語集団項目

GROUP-USAGE句による日本語集団項目は使用できません。削除してください。