< 前へ | 次へ >

演習 3: Java メソッドの作成

演習 3 では、Java™ メソッドの作成を学びます。
始める前に、演習 2: Web プロジェクトおよび Java インターフェースと実装のセットアップを完了しておく必要があります。
この演習では、以下を行います。
  1. これから、COBOL ソースと Java メソッドのデータ間でデータ型をマップする COBOL インポーターを使用する Java メソッドを作成します。 「ウィンドウ」>「ビューの表示」>「スニペット」をクリックして、「スニペット」ビューを開きます。「スニペット」ビューで「J2C」をクリックします。
  2. 「J2C Java Bean へのメソッドの追加」を右クリックして、「挿入」を選択します。
  3. 「新規 Java メソッド」ページで、「追加」をクリックします。
  4. 「名前」フィールドに getCustomerInfo と入力します。
  5. このステップで、アプリケーションの作成に必要な taderc25.cbl (COBOL) ファイルをインポートします。taderc25.cbl ファイルは、 <installdir>IBM/IBMIMShared/plugins/com.ibm.j2c.cheatsheet.content/Samples/CICS/taderc25 にあります。<installdir> はこの製品がインストールされているディレクトリーのことです。COBOL ファイルには CICS® サーバーを実行するプログラムが含まれています。また、通信領域 (COMMAREA) を介して CICS サーバーに渡される構造の定義も入っています。 この構造は CICS アプリケーション・プログラムから返される顧客レコードを表します。ファイルを操作する前に、ファイル・システムからワークベンチにこのファイルをインポートする必要があります。 「入力タイプ」フィールドの横の「新規」をクリックします。
  6. 「データのインポート」ページで、「マッピングの選択」フィールドが「COBOL から Java」になっていることを確認します。 COBOL ファイルの横の「参照」をクリックします。
  7. ファイル・システムで taderc25.cbl ファイルを見つけ、「開く」をクリックします。
    taderc25.cbl
          identification division.
           program-id. TADERC25.
           environment division.
           data division.
           working-storage section.
           01 tmp pic a(40).
           01  ICOMMAREA.
               02  ICustNo    PIC X(5).
               02  Ifiller    PIC X(11).
           01  GENCUST.
               02  GCUSTCODE PIC X(4).
               02  GFILLER PIC X(40).
           01  PREFCUST.
               02  PCUSTCODE PIC X(4).
               02  PCUSTNO    PIC X(5).
               02  ASSETS  PIC S9(6)V99.
           01  REGCUST.
               02  RCUSTCODE PIC X(4).
               02  RCUSTNO    PIC X(5).
               02  ACCOUNTNAME PIC A(10).
               02  BALANCE PIC S9(6)V99.
           01  BADCUST.
               02  BCUSTCODE PIC X(4).
               02  BCUSTNO    PIC X(5).
               02  DAYSOVERDUE PIC X(4).
               02  AMOUNT PIC S9(6)V99.
           LINKAGE SECTION.
           01 DFHCOMMAREA.
              02 inputfield pic x(50).
           procedure division.
           start-para.
               move DFHCOMMAREA to ICOMMAREA.
               IF ICustNo EQUAL '12345'
                  move 'PREC' to PCUSTCODE
                  move ICustNo to PCUSTNO
                  move 43456.33 to ASSETS
                  move PREFCUST TO DFHCOMMAREA
               ELSE IF ICustNo EQUAL '34567'
                       move 'REGC' to RCUSTCODE
                       move ICustNo to RCUSTNO
                       move 'SAVINGS' TO ACCOUNTNAME
                       move 11456.33 to BALANCE
                       move REGCUST TO DFHCOMMAREA
                    ELSE
                       move 'BADC' to BCUSTCODE
                       move ICustNo to BCUSTNO
                       move '132' to DAYSOVERDUE
                       move -8965.33 to AMOUNT
                       move BADCUST TO DFHCOMMAREA
          *         END-IF.
               END-IF.
               EXEC CICS RETURN
               END-EXEC.
  8. 「次へ」をクリックします。
  9. 「COBOL インポーター」ページで、「通信データ構造」を選択します。
    1. 「プラットフォーム名」「Win32」を選択します。
    2. 「コード・ページ」「ISO-8859-1」を選択します。
    3. 「照会」をクリックします。
    4. 「データ構造」「ICOMMAREA」を選択します。
  10. 「次へ」をクリックします。
  11. 「保存するプロパティー」ページで、以下を実行します。
    1. 「生成のスタイル」「デフォルト」を選択します。
    2. Web プロジェクト「Taderc25Sample」の横の「参照」をクリックします。
    3. 「パッケージ名」フィールドに sample.cics.data と入力します。
    4. 「クラス名」フィールドで、デフォルト値の「ICOMMAREA」「InputComm」で置き換えます。
  12. 「終了」をクリックします。
  13. 「Java メソッド」ページの「入出力タイプの指定 (Specify the input/output type)」フィールドで、出力タイプ領域の横にある「新規」をクリックします。
  14. 「データのインポート」ページで、「マッピングの選択」フィールドが「COBOL MPO から Java」になっていることを確認します。
  15. 「複数の可能性のある出力」領域の横の「新規」をクリックします。
  16. 「COBOL ファイル名」フィールドの横の「参照」をクリックして、taderc25.cbl ファイルのロケーションを見つけます。 「開く」をクリックします。
  17. 「次へ」をクリックします。
  18. 「COBOL インポーター」ページで、「通信データ構造」を選択します。
    1. 「プラットフォーム名」「Win32」を選択します。
    2. 「コード・ページ」「ISO-8859-1」を選択します。
    3. 「照会」をクリックします。
    4. 「データ構造」「PREFCUST」「REGCUST」、および「BADCUST」を選択します。
  19. 「終了」をクリックします。「データのインポート構成プロパティーを指定します」ページには、上記の 3 つのデータ型がリストされています。
  20. 「次へ」をクリックします。
  21. 「保存するプロパティー」ページで、それぞれの顧客タイプ・レコードにデフォルト値が設定されていることがわかります。 「プロジェクト名」フィールドに「Taderc25Sample」と表示されていることを確認します。「参照」をクリックして、Web プロジェクト「Taderc25Sample」を選択します。
    1. 「保存するプロパティーを指定します」ページで、「COBOL MPO コンテナー・タイプ」を強調表示します。
      • 「パッケージ名」フィールドに sample.cics.data と入力します。
      • 「クラス名」フィールドに OutputComm と入力します。
      • 「既存のクラスの上書き」を選択できます。
    2. 「COBOL MPO から Java 保存プロパティー」を展開します。3 つのデータ・バインディング・エレメントが表示されます。
    3. 「ファイル taderc25.cbl 内の "PREFCUST" の COBOL から Java 保存プロパティー」を強調表示します。
      • 「生成のスタイル」では「デフォルト」を選択します。
      • 「パッケージ名」フィールドに sample.cics.data と入力します。
      • 「クラス名」フィールドに PrefCust と入力します。
      • 「既存のクラスの上書き」を選択できます。
    4. 「ファイル taderc25.cbl 内の "REGCUST" の COBOL から Java 保存プロパティー」を強調表示します。
      • 「パッケージ名」フィールドに sample.cics.data と入力します。
      • 「クラス名」フィールドに RegCust と入力します。
      • 「既存のクラスの上書き」を選択できます。
    5. 「ファイル taderc25.cbl 内の "BADCUST" の COBOL から Java 保存プロパティー」を強調表示します。
      • 「パッケージ名」フィールドに sample.cics.data と入力します。
      • 「クラス名」フィールドに BadCust と入力します。
      • 「既存のクラスの上書き」を選択できます。
  22. 「終了」をクリックします。「OutputComm」を展開すると、「出力タイプ」フィールドに PrefCust、RegCust、および BadCust が含まれていることがわかります。
  23. 「Java メソッド」ページで「終了」をクリックします。
  24. 「Java メソッド」ページで、以下を実行します。
    1. 「functionName」フィールドに TADERC25 (COBOL プログラム ID) と入力します。
    2. 「詳細を表示」を選択します。
    3. 「interactionVerb」フィールドで「SYNC_SEND_RECEIVE(1)」を選択します。
    4. 「replyLength」フィールドに -1 と入力します。
  25. 「終了」をクリックします。
  26. 戻ってくる出力はいかなるデータ型でもあり得るため、これを一致させる唯一の方法として、データ・ストリームにパターンを事前定義しておきます。 突き合わせ方式が認識パターンを検査します。

    認識パターンのドックレット・タグの追加

    1. PrefCust の認識パターンを追加するには、以下のようにします。
      • Java エディターで PrefCust.java ファイルを開きます。
      • getPcustcode() メソッドにナビゲートします。 これを行う最良の方法として、「アウトライン」ビューを開き、目的のメソッドが見つかるまでスクロールダウンします。
      • メソッドのコメント領域で、タグ @type-descriptor.recognition-desc pattern="PREC" を追加するか、CTRL+ スペース・キーを押してコンテンツ・アシストを使用し、リストの下方向にナビゲートしてタグを見つけ、パターンとして "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);
        	}

    2. RegCust の認識パターンを追加するには、以下のようにします。
      • Java エディターで RegCust.java ファイルを開きます。
      • getRcustcode() メソッドにナビゲートします。 今回も、これを行う最良の方法として、「アウトライン」ビューを開き、必要なメソッドが見つかるまでスクロールダウンします。
      • メソッドのコメント領域で、タグ @type-descriptor.recognition-desc pattern="REGC" を追加するか、CTRL+ スペース・キーを押してコンテンツ・アシストを使用し、リストの下方向にナビゲートしてタグを見つけ、パターンとして "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);
        	}
    3. BadCust の認識パターンを追加するには、以下のようにします。
      • Java エディターで BadCust.java ファイルを開きます。
      • getBcustcode() メソッドにナビゲートします。 今回も、これを行う最良の方法として、「アウトライン」ビューを開き、必要なメソッドが見つかるまでスクロールダウンします。
      • メソッドのコメント領域で、タグ @type-descriptor.recognition-desc pattern="BADC" を追加するか、CTRL+ スペース・キーを押してコンテンツ・アシストを使用し、リストの下方向にナビゲートしてタグを見つけ、パターンとして "BADC" を入力します。
      • 変更を保存するとコード BadCust.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 (!("BADC".equals(getBcustcode().toString())))
        					return (false);
        			} catch (ClassCastException exc) {
        				return (false);
        			} finally {
        				buffer_ = currBytes;
        			}
        		} else
        			return (false);
        		return (true);
        	}
< 前へ | 次へ >

フィードバック