練習 1.3:建立 Java 方法
開始之前,您必須先完成練習 1.2:設定 Web 專案、Java 介面及實作。
練習 1.2 會引導您逐步執行 Java 方法 getCustomerInfo 的建立程序。在這個練習中,您將執行下列動作:
- 建立 Java 方法
- 建立 COBOL 及 Java 之間的輸入資料對映
- 建立 COBOL 及 Java 之間的輸出資料對映
建立 Java 方法
您現在將建立 Java 方法,以使用 COBOL 匯入器,對映 COBOL 程式碼和 Java 方法資料之間的資料類型。
- 在「Java 方法」頁面中,按一下新增。
- 在 Java 方法名稱欄位中,輸入 getCustomerInfo 做為作業名稱。按下一步。
建立輸入參數資料對映
在這個步驟中,您將匯入 taderc25.cbl (COBOL) 檔案,
建立應用程式時需要這個檔案。taderc25.cbl 檔案位於 <RSDP_installdir>\rad\eclipse\plugins\com.ibm.j2c.cheatsheet.content_6.0.0\Samples\CICS\taderc25,
其中 <RSDP_installdir> 是本產品的安裝目錄。此 COBOL 檔案包含執行於 CICS 伺服器上的程式。其中有透過通訊區域
(COMMAREA) 以傳遞至 CICS 伺服器的結構定義。這個結構代表從 CICS 應用程式所傳回的客戶記錄。使用檔案之前,
您必須先將它從檔案系統匯入工作台。
- 在「Java 方法」頁面的指定輸入/輸出類型欄位中,按一下新建。
- 在「資料匯入」頁面中,確定選擇對映欄位是 COBOL_TO_JAVA。
- 按一下 COBOL 檔名欄位旁的瀏覽。
- 尋找檔案系統中的 taderc25.cbl 檔案,再按一下開啟。
- 按下一步。
- 在「COBOL 匯入器」頁面中,選取通訊資料結構。
- 對於平台名稱,選取 Win32。
- 對於字碼頁,選取 Big5。
- 按一下查詢。
- 對於資料結構,選取 ICOMMAREA。按下一步。
- 在「儲存內容」頁面中,
- 對於產生樣式,選取預設值。
- 按一下瀏覽,以選擇 Web 專案 Taderc25Sample。
- 在套件名稱欄位中,輸入 sample.cics.data。
- 在類別名稱欄位中,預設值是 ICOMMAREA;將它取代成 InputComm。
按一下完成。
建立輸出參數的多個可能輸出
- 在「Java 方法」頁面的指定輸入/輸出類型中,按一下「輸出類型」區域旁的新建。
- 在「資料匯入」頁面中,確定選擇對映欄位是 COBOL_MPO_TO_JAVA。
-
按一下多個可能輸出區域旁的新建。
- 按一下 COBOL 檔名欄位旁的瀏覽,並尋找 taderc25.cbl 檔案的位置。
按一下開啟。
- 按下一步。
- 在「COBOL 匯入器」頁面中,選取通訊資料結構。
- 對於平台名稱,選取 Win32。
- 對於字碼頁,選取 Big5。
- 按一下「查詢」按鈕以選取資料結構。
- 對於資料結構,選取 PREFCUST、REGCUST 和 BADCUST。
- 按一下完成。
- 在「指定資料匯入配置內容」頁面中,您會看見這三個資料類型已列出。
- 按下一步。
指定儲存內容
- 在「儲存內容」頁面中,您會看見每個客戶類型記錄的預設值設定。
- 在「指定儲存內容」頁面的「資料連結」區段底下,
- 接受 Java 專案 Taderc25Sample。
- 在套件名稱欄位中,輸入 sample.cics.data。
- 在類別名稱欄位中,輸入 OutputComm。
- 在「COBOL 轉換成 Java 時儲存 "PREFCUST" 的屬性」中,
- 接受專案名稱 Taderc25Sample。
- 在套件名稱欄位中,輸入 sample.cics.data。
- 在類別名稱欄位中,輸入 PrefCust。
- 在「COBOL 轉換成 Java 時儲存 "REGCUST" 的屬性」中,
- 按一下瀏覽,以選擇 Web 專案 Taderc25Sample。
- 在套件名稱欄位中,輸入 sample.cics.data。
- 在類別名稱欄位中,輸入 RegCust。
- 在「COBOL 轉換成 Java 時儲存 "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 輸出資料對映檔案
因為傳回的輸出可能是其中任何一個資料類型,所以比對資料類型的唯一方式是,
在資料串流中預先定義一些型樣。比對方法可用來檢查識別型樣。
- 如果要新增 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);
}
- 如果要新增 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);
}
- 如果要新增 BadCust 的識別型樣,請遵循下列步驟:
- 在 Java 編輯器中開啟 BadCust.java 檔案。
- 瀏覽至 getBcustcode() 方法。
- 在方法註解區域中,新增 @type-descriptor.recognition-desc pattern="BADC" 標示,
您也可以使用內容輔助,方法是按住 CTRL + 空格鍵,並向下導覽清單,以尋找此標示,然後輸入 "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:部署應用程式。