COBOL2002 Javaプログラム呼び出し機能ガイド
プログラム作成支援ツールの-TypeオプションにSampleを指定すると,Javaプログラム呼び出し機能によってJavaのフィールドやメソッドを利用するCOBOLコードのサンプル(以降,Javaクラス利用サンプルと表記します)を作成します。
cbl2kjgen -Type Sample 〔オプション〕 Javaプログラム指定オプション |
Javaクラス利用サンプルの生成の概要を次の図に示します。
図7-5 Javaクラス利用サンプルの生成の概要
作成したJavaクラス利用サンプルには,Javaプログラムに含まれるフィールドやメソッドを,Javaプログラム呼び出し機能を使用して呼び出すCOBOLプログラムが記述されます。
Javaクラス利用サンプルを使用する場合は,作成されたプログラムを編集し,必要な定義や処理を選択して,Javaクラスを利用するCOBOLプログラムを完成させます。
Javaクラス利用サンプルの構造を次の図に示します。
図7-6 Javaクラス利用サンプルの構造
Javaクラス利用サンプルとして,COBOLソースファイルがJavaクラス単位に一つずつ作成されます。
Javaクラス利用サンプルにはプログラムが一つあり,その中にJavaプログラム呼び出し機能を使用するための処理が作成されます。また,各処理で使用するデータ項目の定義も自動生成されます。
不要な処理を削除したり,データ名を変更したりするなど,生成されたプログラムを編集して,目的のプログラムを完成させてください。
図中の(a)〜(f)の処理について説明します。なお,(d)〜(f)の処理は一つの処理につき,次に示す内容を生成します。
プログラムの概要を先頭のコメントとして記載します。記載する内容を次に示します。
項番 | 項目 | 内容(引用符(")で囲んだ文字列は固定) |
---|---|---|
1 | タイトル | 次の内容を記載します。 "COBOL2002 Javaプログラム呼び出し機能 クラス利用サンプルソース" |
2 | 利用クラス | 対象のクラス名を記載します。 |
3 | cbl2kjgenのバージョン | cbl2kjgenのバージョンを記載します。 例:"03-02" |
4 | オプション | cbl2kjgenに指定されたオプションを記載します。1行につき1オプションを記載します。 |
5 | 生成日時 | Javaクラス利用サンプルの生成日時を記載します。 形式はYYYY/mm/dd HH:MM:SSです。 |
プログラム名に"*SAMPLE*"を指定します。※
動的長基本項目を使用するため,次に示すように構成節を記載します。
作業場所節に次に示す順番でデータ項目を定義します。ただし,Javaクラス利用サンプル中で使用しないデータ項目は定義しません。
各データ項目について説明します。
手続き部の内容について説明します。
プログラムを終了します。
Javaクラス利用サンプル中に各データ項目を定義する際に使用するルールを示します。
用途 | データ項目※ |
---|---|
Java VMに渡すオプションを1個定義するCBLJENV集団項目を定義する。 | 01 CBLJENV GLOBAL. 02 CBLJENVCORE USAGE POINTER VALUE NULL. 02 CBLJEXCEPTION USAGE POINTER VALUE NULL. 02 CBLJFLAGS PIC 1(32) USAGE BIT VALUE ALL B'0'. 02 CBLJSTRMAXLEN PIC S9(9) USAGE COMP VALUE STRMAXLEN. 02 CBLJVMOPTIONS. 03 CBLJOPTCOUNT PIC S9(9) USAGE COMP VALUE 1. 03 CBLJOPTION-1 PIC X(STRMAXLEN) VALUE 'VMOPT-1'. |
項番 | 用途 | データ項目※ |
---|---|---|
1 | クラス名を設定する。 | 01 classname PIC X DYNAMIC C-STRING VALUE 'classnameOrg'. |
2 | クラス参照のアドレスを設定する。 | 01 CLASSREF USAGE POINTER. |
3 | オブジェクト参照のアドレスを設定する。 | 01 OBJREF USAGE POINTER. |
項番 | 用途 | データ項目※ |
---|---|---|
1 | メソッド名を設定する。 | 01 methodname PIC X DYNAMIC C-STRING VALUE 'methodname'. |
2 | n番目のメソッドの第m引数を設定するための集団項目を定義する。 | (基本型の場合)01 ARGn-m. 02 ARGn-m-TYPE PIC X(1) VALUE 'SIGNATURE'. 02 FILLER PIC X(7) VALUE ALL LOW-VALUE. 02 ARGn-m-AREA TYPE-DEF. (基本型以外の場合) 01 ARGn-m. 02 ARGn-m-TYPE PIC X(STRMAXLEN) VALUE 'SIGNATURE'. 02 ARGn-m-AREA TYPE-DEF. |
3 | n番目のメソッドの第m引数が配列オブジェクトの場合,配列の全要素とCOBOLの繰り返し項目をマッピングするための集団項目およびサイズを定義する。 | 01 ARGn-m-1-MAP-LEN PIC S9(9) USAGE COMP VALUE ARRAYMAXLEN. : 01 ARGn-m-k-MAP-LEN PIC S9(9) USAGE COMP VALUE ARRAYMAXLEN. 01 ARGn-m-MAP. 02 ARGn-m-1 OCCURS ARRAYMAXLEN TIMES DEPENDING ON ARGn-m-1- MAP-LEN. : 08 ARGn-m-k OCCURS ARRAYMAXLEN TIMES DEPENDING ON ARGn-m-k-MAP-LEN. 09 ARGn-m-ELEM TYPE-DEF. |
4 | n番目のメソッドの第m引数が配列オブジェクトの場合,配列の最下層の要素とCOBOLの繰り返し項目をマッピングするための作業用集団項目およびサイズを定義する。 | 01 ARGn-m-TEMP-MAP-LEN PIC S9(9) USAGE COMP VALUE ARRAYMAXLEN. 01 ARGn-m-TEMP-MAP ADDRESSED BY ARGn-m-TEMP-MAP-P. 02 ARGn-m-TEMP-MAP-ELEM TYPE-DEF OCCURS ARRAYMAXLEN TIMES DEPENDING ON ARGn-m-TEMP-MAP-LEN. |
5 | n番目のメソッドの戻り値を設定するための集団項目を定義する。 | (基本型の場合)01 RTNn. 02 RTNn-TYPE PIC X(1) VALUE 'SIGNATURE'. 02 FILLER PIC X(7) VALUE ALL LOW-VALUE. 02 RTNn-AREA TYPE-DEF. (基本型以外の場合) 01 RTNn. 02 RTNn-TYPE PIC X(STRMAXLEN) VALUE 'SIGNATURE'. 02 RTNn-AREA TYPE-DEF. |
6 | n番目のメソッドの戻り値が配列オブジェクトの場合,配列の全要素とCOBOLの繰り返し項目をマッピングするための集団項目およびサイズを定義する。 | 01 RTNn-1-MAP-LEN PIC S9(9) USAGE COMP VALUE ARRAYMAXLEN. : 01 RTNn-k-MAP-LEN PIC S9(9) USAGE COMP VALUE ARRAYMAXLEN. 01 RTNn-MAP. 02 RTNn-1 OCCURS ARRAYMAXLEN TIMES DEPENDING ON RTNn-1-MAP-LEN. : 08 RTNn-k OCCURS ARRAYMAXLEN TIMES DEPENDING ON RTNn-k-MAP-LEN. 09 RTNn-ELEM TYPE-DEF. |
7 | n番目のメソッドの戻り値が配列オブジェクトの場合,配列の最下層の要素とCOBOLの繰り返し項目をマッピングするための作業用集団項目およびサイズを定義する。 | 01 RTNn-TEMP-MAP-LEN PIC S9(9) USAGE COMP VALUE ARRAYMAXLEN. 01 RTNn-TEMP-MAP ADDRESSED BY RTNn-TEMP-MAP-P. 02 RTNn-TEMP-MAP-ELEM TYPE-DEF OCCURS ARRAYMAXLEN TIMES DEPENDING ON RTNn-TEMP-MAP-LEN. |
項番 | 用途 | データ項目※ |
---|---|---|
1 | フィールド名を設定する。 | 01 fieldname PIC X DYNAMIC C-STRING VALUE 'fieldname'. |
2 | n番目のフィールドの値を設定するための集団項目を定義する。 | (基本型の場合)01 FIELDn. 02 FIELDn-TYPE PIC X(1) VALUE 'SIGNATURE'. 02 FILLER PIC X(7) VALUE ALL LOW-VALUE. 02 FIELDn-AREA TYPE-DEF. (基本型以外の場合) 01 FIELDn. 02 FIELDn-TYPE PIC X(STRMAXLEN) VALUE 'SIGNATURE'. 02 FIELDn-AREA TYPE-DEF. |
3 | n番目のフィールドが配列オブジェクトの場合,配列の全要素とCOBOLの繰り返し項目をマッピングするための集団項目およびサイズを定義する。 | 01 FIELDn-1-MAP-LEN PIC S9(9) USAGE COMP VALUE ARRAYMAXLEN. : 01 FIELDn-m-MAP-LEN PIC S9(9) USAGE COMP VALUE ARRAYMAXLEN. 01 FIELDn-MAP. 02 FIELDn-1 OCCURS ARRAYMAXLEN TIMES DEPENDING ON FIELDn-1-MAP-LEN. : 08 FIELDn-m OCCURS ARRAYMAXLEN TIMES DEPENDING ON FIELDn-m-MAP-LEN. 09 FIELDn-ELEM TYPE-DEF. |
4 | n番目のフィールドが配列オブジェクトの場合,配列の最下層の要素とCOBOLの繰り返し項目をマッピングするための作業用集団項目およびサイズを定義する。 | 01 FIELDn-TEMP-MAP-LEN PIC S9(9) USAGE COMP VALUE ARRAYMAXLEN. 01 FIELDn-TEMP-MAP ADDRESSED BY FIELDn-TEMP-MAP-P. 02 FIELDn-TEMP-MAP-ELEM TYPE-DEF OCCURS ARRAYMAXLEN TIMES DEPENDING ON FIELDn-TEMP-MAP-LEN. |
作成したJavaクラス利用サンプルは,そのままコンパイルして使用できません。少なくとも次の項目を修正する必要があります。
Javaクラス利用サンプルの例を次に示します。
cbl2kjgen -Type Sample -StrMaxLen 256 -Class mylib.sample.SampleClass |
All Rights Reserved. Copyright (C) 2014, 2016, Hitachi, Ltd.