練習 1.3: Java メソッドの作成
この練習を始める前に、「練習 1.2: Web プロジェクトおよび Java インターフェースと Java 実装のセットアップ」を完了しておく必要があります。
練習 1.2 では、Java メソッド getCustomerInfo の作成をステップごとに学習します。この練習では、次のことを行います。
- Java メソッドを作成する
- COBOL と Java の間の入力データ・マッピングを作成する
- COBOL と Java の間の出力データ・マッピングを作成する
Java メソッドの作成
ここでは、COBOL インポーターを使用して COBOL ソースと Java メソッドのデータの間でデータ型をマップする Java メソッドを作成します。
- 「Java メソッド」ページで、「追加」をクリックします。
- 「Java メソッド名 (Java method name)」フィールドに、操作の名前として getCustomerInfo と入力します。「次へ」をクリックします。
入力パラメーターのデータ・マッピングの作成
このステップでは、アプリケーションを作成するために必要な taderc25.cbl (COBOL) ファイルをインポートします。
taderc25.ccp ファイルは、
<RSDP_installdir>¥rad¥eclipse¥plugins¥com.ibm.j2c.cheatsheet.content_6.0.0¥Samples¥CICS¥taderc25 にあります。ここで、<RSDP_installdir> は、この製品がインストールされているディレクトリーです。この COBOL ファイルには、CICS サーバーで実行されるアプリケーション・プログラムが含まれています。これには、連絡域 (COMMAREA) を介して CICS サーバーに渡される構造の定義があります。この構造は、CICS アプリケーションから戻されるカスタマー・レコードを表します。ファイルで作業を行う前に、ファイル・システムからワークベンチにインポートしておく必要があります。
- 「Java メソッド」ページの「入出力タイプの指定 (Specify the
input/output type)」フィールドで、「新規」をクリックします。
- 「データ・インポート」ページで、「マッピングの選択」フィールドが COBOL_TO_JAVA となっていることを確認します。
- 「COBOL ファイル名 (Cobol file name)」フィールドの横にある「ブラウズ」をクリックします。
- ファイル・システム内で taderc25.cbl ファイルを探して選択し、「開く」をクリックします。
- 「次へ」をクリックします。
- 「COBOL インポーター (COBOL Importer)」ページで、通信データ構造を選択します。
- 「プラットフォーム名 (Platform Name)」には Win32 を選択する。
- 「コード・ページ」には ISO-8859-1 を選択する。
- 「クエリー」をクリックする。
- 「データ構造 (Data structures)」には「ICOMMAREA」を選択する。「次へ」をクリックします。
- 「プロパティーの保管 (Saving Properties)」ページで、次の手順を実行します。
- 「スタイルの生成」で「デフォルト」を選択する。
- 「ブラウズ」をクリックして、Web プロジェクト Taderc25Sample を選択する。
- 「パッケージ名」フィールドで、sample.cics.data と入力する。
- 「クラス名」フィールドで、デフォルト値 ICOMMAREA を InputComm に置き換える。「完了」をクリックします。
出力パラメーターに使用可能な複数の出力の作成
- 「Java メソッド」ページの「入出力タイプの指定 (Specify the input/output
type)」で、「出力タイプ (Output type)」エリアの横にある「新規」をクリックします。
- 「データ・インポート」ページで、「マッピングの選択」フィールドが COBOL_MPO_TO_JAVA となっていることを確認します。
-
可能な複数の出力エリアの横の「新規」をクリックします。
- 「COBOL ファイル名 (Cobol file name)」フィールドの横にある「ブラウズ」をクリックし、
taderc25.cbl ファイルのロケーションを指定します。「開く」をクリックします。
- 「次へ」をクリックします。
- 「COBOL インポーター (COBOL Importer)」ページで、通信データ構造を選択します。
- 「プラットフォーム名 (Platform Name)」には Win32 を選択する。
- 「コード・ページ」には ISO-8859-1 を選択する。
- 「クエリー」ボタンをクリックし、「データ構造 (Data structures)」を選択する。
- 「データ構造 (Data structures)」に、「PREFCUST」、「REGCUST」、および「BADCUST」を選択する。
- 「完了」をクリックする。
- 「データ・インポート構成プロパティーの指定 (Specify data import configuration properites)」ページで、これらの 3 つのデータ型がリストされます。
- 「次へ」をクリックします。
プロパティーの保管の指定
- 「プロパティーの保管 (Saving Properties)」ページで、それぞれのカスタマー・タイプ・レコードごとに設定されたデフォルト値が表示されます。
- 「プロパティーの保管の指定 (Specify the Saving properties)」ページの「データ・バインディング」セクションで、次の手順を実行します。
- Java プロジェクト Taderc25Sample を受け入れる。
- 「パッケージ名」フィールドに、sample.cics.data と入力する。
- 「クラス名」フィールドに、OutputComm と入力する。
- 「"PREFCUST" 用の COBOL から Java への保管プロパティー
(COBOL To Java Save Properties For "PREFCUST")」で、次の手順を実行します。
- 「プロジェクト名」Taderc25Sample を受け入れる。
- 「パッケージ名」フィールドに、sample.cics.data と入力する。
- 「クラス名」フィールドに、PrefCust と入力する。
- 「"REGCUST" 用の COBOL から Java への保管プロパティー (COBOL To Java Save Properties For "REGCUST")」で、次の手順を実行します。
- 「ブラウズ」をクリックして、Web プロジェクト Taderc25Sample を選択する。
- 「パッケージ名」フィールドに、sample.cics.data と入力する。
- 「クラス名」フィールドに、RegCust と入力する。
- 「"BADCUST" 用の COBOL から Java への保管プロパティー (COBOL To Java Save Properties For "BADCUST")」で、次の手順を実行します。
- 「ブラウズ」をクリックして、Web プロジェクト Taderc25Sample を選択する。
- 「パッケージ名」フィールドに、sample.cics.data と入力する。
- 「クラス名」フィールドに、BadCust と入力する。
- 「完了」をクリックします。これで、OutputComm の出力タイプに、PrefCust、RegCust、および BadCust が含まれます。
- 「Java メソッド」ページで、「完了」をクリックして操作を完了します。
- 「Java メソッド」ページで、次の手順を行います。
- 「functionName」フィールドに、COBOL プログラム ID (TADERC25) を入力する。
- 「commareaLength」フィールドに 50 と入力する。
- 「interactionVerb」フィールドで、値 SYNC_RECEIVE(1) を選択する。
- 「replyLength」フィールドに -1 と入力する。
「完了」をクリックします。
Java 出力データ・マッピング・ファイルを生成するための認識パターン・タグの追加
戻される出力のデータ型はこれらのいずれか 1 種類であり、どの型かは予想できないことから、データ・ストリームにパターンを事前定義しておくことが、データ型を一致させる唯一の方法となります。この一致メソッドは、認識パターンをチェックします。
- PrefCust 用の認識パターンを追加するには、次の手順を実行します。
- Java エディターで PrefCust.java ファイルを開く。
- getPcustcode() メソッドにナビゲートする。
- メソッドのコメント・エリアに、タグ @type-descriptor.recognition-desc pattern="PREC" を追加する。または、Ctrl+Space キーを押してコンテンツ・アシストを使用し、リストを下方にナビゲートしてこのタグを見つけ、パターンとして "PREC" を入力することもできます。
- 変更を保管する。コード PrefCust.java が再生成されます。
- 一致メソッドにナビゲートして、そこに変更が加えられていることを確認する。
/**
* @generated
*/
public boolean match(Object obj) {
if (obj == null)
return (false);
if (obj.getClass().isArray()) {
byte[] currBytes = buffer_;
try {
byte[] objByteArray = (byte[]) obj;
buffer_ = objByteArray;
if (!("PREC".equals(getPcustcode().toString())))
return (false);
} catch (ClassCastException exc) {
return (false);
} finally {
buffer_ = currBytes;
}
} else
return (false);
return (true);
}
- RegCust 用の認識パターンを追加するには、次の手順を実行します。
- Java エディターで RegCust.java ファイルを開く。
- getRcustcode() メソッドにナビゲートする。
- メソッドのコメント・エリアに、タグ @type-descriptor.recognition-desc pattern="REGC" を追加する。または、Ctrl+Space キーを押してコンテンツ・アシストを使用し、リストを下方にナビゲートしてこのタグを見つけ、パターンとして "REGC" を入力することもできます。
- 変更を保管する。コード RegCust.java が再生成されます。
- 一致メソッドにナビゲートして、そこに変更が加えられていることを確認する。
/**
* @generated
*/
public boolean match(Object obj) {
if (obj == null)
return (false);
if (obj.getClass().isArray()) {
byte[] currBytes = buffer_;
try {
byte[] objByteArray = (byte[]) obj;
buffer_ = objByteArray;
if (!("REGC".equals(getRcustcode().toString())))
return (false);
} catch (ClassCastException exc) {
return (false);
} finally {
buffer_ = currBytes;
}
} else
return (false);
return (true);
}
- BadCust 用の認識パターンを追加するには、次の手順を実行します。
- Java エディターで BadCust.java ファイルを開く。
- getBcustcode() メソッドにナビゲートする。
- メソッドのコメント・エリアに、タグ @type-descriptor.recognition-desc pattern="BADC" を追加する。または、Ctrl+Space キーを押してコンテンツ・アシストを使用し、リストを下方にナビゲートしてこのタグを見つけ、パターンとして "BADC" を入力することもできます。
- 変更を保管する。コード BadCust.java が再生成されます。
- 一致メソッドにナビゲートして、そこに変更が加えられていることを確認する。
public boolean match(Object obj) {
if (obj == null)
return (false);
if (obj.getClass().isArray()) {
byte[] currBytes = buffer_;
try {
byte[] objByteArray = (byte[]) obj;
buffer_ = objByteArray;
if (!("BADC".equals(getBcustcode().toString())))
return (false);
} catch (ClassCastException exc) {
return (false);
} finally {
buffer_ = currBytes;
}
} else
return (false);
return (true);
}
これで、「練習 1.4: アプリケーションのデプロイ」に進むことができます。