匯入 CICS、IMS 和主機檔案的 COBOL 主機定義
原始的主機整合伺服器 TI Designer功能引進了從頭開始設計中繼資料成品的完整功能,以及大型主機程式設計人員的協助。 之後,新增了以 COBOL 或 RPG 複製手冊格式匯入主機定義的功能,以支援自動化設計和減少大型主機程式設計人員介入的案例。 多年來,這項功能已成為建立中繼資料成品的主要選項。
必要條件
下載及安裝 Visual Studio。 安裝之後,請確定您也會 在 Visual Studio 中使用 C++ 安裝名為 Desktop 開發的工作負載。 否則,您會 從 HRESULT 0x800A007C收到錯誤例外狀況。
下載並安裝適用于 Azure Logic Apps 的 HIS Designer。 唯一的必要條件是 Microsoft .NET Framework 4.8。
Visual Studio 主應用程式方案和專案 (CICS 或 IMS 或 主機檔案方案專案 ,您要在其中匯入主機定義。
注意
HIS Designer會根據您開啟 CICS、IMS 或主機檔案解決方案,提供並顯示不同的選項。
瞭解程式設計模型如何適用于您想要整合的技術,也就是 CICS 或 IMS。 這兩個平臺都有不同的需求和傳遞和接收資訊的方式。 在您匯入主機定義之前,請務必先瞭解適當的 程式設計模型 。
取得您想要匯入 Logic Apps 之 HIS Designer的 copybook (主機定義) 。 此設計工具支援 COBOL 和 RPG 複製簿。
準備 COBOL 複製簿
COBOL 複製book 應遵循基本的 COBOL 編碼規則。 Logic Apps 的 HIS Designer會強制執行其中許多規則。 下表列出主要規則:
資料行 類型 觀測 1–6 序號 請勿在這些位置輸入任何專案。 7 指標 使用星號 (*) 或斜線 (/) 來撰寫批註的程式碼。 8-11 邊界 (區域 A) 77 層級數位和 01 個層級數位 12-72 B 邊界 (區 B) 保留給 02 個層級和更高層級 73-80 識別 這裡不允許定義。 確認 COBOL 或 RPG 複製book 符合所選 程式設計模型的需求。
確認每一行結尾的點。 請確定它們會出現,即使 COBOL 的最新版本不需要此格式設定也一樣。
如果您的複製手冊包含 REDEFINE,請讓大型主機程式設計人員確認您想要使用的主機定義,如果沒有可用的辨別。
移除先前資料表中所述的任何字元以外的任何字元。 請確定您有正確的字元數。
(CICS) 匯入 COBOL 主機定義
下列步驟示範如何將 CICS 主應用程式專案的 COBOL 複製簿匯入至 Logic Apps 的 HIS Designer。 此 COBOL 程式遵循 CICS ELM Link 程式設計模型。
在 Visual Studio 中,開啟 CICS 主應用程式解決方案,自動開啟 Logic Apps 的 HIS Designer。
在設計工具的左窗格中,開啟元件節點的快捷方式功能表,然後選取 [匯入>主機定義]。
在下列範例中,元件節點名為 NetCInt1。
在 [ 匯入系統 z COBOL 來源檔案] 方塊中,選取 [ 流覽]。
尋找並選取要匯入的複製簿,然後選取 [ 開啟]。
下列範例顯示要匯入的 COBOL 程式:
***************************************************************** ** THIS PROGRAM IS A SAMPLE CICS SERVER THAT DEMONSTRATES A * ** SIMPLE BANKING APPLICATION WHICH FORMATS AND RETURNS AN * ** ARRAY OF ACCOUNT RECORDS THAT WILL CONTAIN EITHER CHECKING OR* ** SAVINGS INFORMATION. * ***************************************************************** IDENTIFICATION DIVISION. PROGRAM-ID. GETAINFO. ENVIRONMENT DIVISION. DATA DIVISION. ***************************************************************** ** VARIABLES FOR INTERACTING WITH THE TERMINAL SESSION * ***************************************************************** WORKING-STORAGE SECTION. LINKAGE SECTION. 01 DFHCOMMAREA. 05 SSN PIC X(9). 05 ACCT-ARRAY OCCURS 2 TIMES. 10 ACCT-NUM PIC X(10). 10 ACCT-TYPE PIC X. 10 ACCT-INFO PIC X(39). 10 CHECKING REDEFINES ACCT-INFO. 15 CHK-OD-CHG PIC S9(3)V99 COMP-3. 15 CHK-OD-LIMIT PIC S9(5)V99 COMP-3. 15 CHK-OD-LINK-ACCT PIC X(10). 15 CHK-LAST-STMT PIC X(10). 15 CHK-DETAIL-ITEMS PIC S9(7) COMP-3. 15 CHK-BAL PIC S9(13)V99 COMP-3. 10 SAVINGS REDEFINES ACCT-INFO. 15 SAV-INT-RATE PIC S9(1)V99 COMP-3. 15 SAV-SVC-CHRG PIC S9(3)V99 COMP-3. 15 SAV-LAST-STMT PIC X(10). 15 SAV-DETAIL-ITEMS PIC S9(7) COMP-3. 15 SAV-BAL PIC S9(13)V99 COMP-3. 15 FILLER PIC X(12). PROCEDURE DIVISION. IF SSN = '111223333' THEN ********************************************************** * SSN = 111223333 IS AN INDICATION TO RETURN A * DISCRIMINATED UNION OF CHECKING AND SAVINGS ACCOUNTS ********************************************************** MOVE 'CHK4566112' TO ACCT-NUM OF ACCT-ARRAY(1) MOVE 'C' TO ACCT-TYPE OF ACCT-ARRAY(1) MOVE SPACES TO ACCT-INFO OF ACCT-ARRAY(1) MOVE 25.00 TO CHK-OD-CHG OF ACCT-ARRAY(1) MOVE 2000.00 TO CHK-OD-LIMIT OF ACCT-ARRAY(1) MOVE 'SAV1234567' TO CHK-OD-LINK-ACCT OF ACCT-ARRAY(1) MOVE '10/31/2005' TO CHK-LAST-STMT OF ACCT-ARRAY(1) MOVE 1 TO CHK-DETAIL-ITEMS OF ACCT-ARRAY(1) MOVE 41852.16 TO CHK-BAL OF ACCT-ARRAY(1) MOVE 'SAV1234567' TO ACCT-NUM OF ACCT-ARRAY(2) MOVE 'S' TO ACCT-TYPE OF ACCT-ARRAY(2) MOVE SPACES TO ACCT-INFO OF ACCT-ARRAY(2) MOVE 4.50 TO SAV-INT-RATE OF ACCT-ARRAY(2) MOVE 5.00 TO SAV-SVC-CHRG OF ACCT-ARRAY(2) MOVE '10/15/2005' TO SAV-LAST-STMT OF ACCT-ARRAY(2) MOVE 1 TO SAV-DETAIL-ITEMS OF ACCT-ARRAY(2) MOVE 146229.83 TO SAV-BAL OF ACCT-ARRAY(2) ELSE ********************************************************** * SSN = 333221111 IS AN INDICATION TO RETURN A * SIMPLE REDEFINITION OF CHECKING ACCOUNTS ONLY ********************************************************** MOVE 'CHK4566112' TO ACCT-NUM OF ACCT-ARRAY(1) MOVE 'C' TO ACCT-TYPE OF ACCT-ARRAY(1) MOVE SPACES TO ACCT-INFO OF ACCT-ARRAY(1) MOVE 25.00 TO CHK-OD-CHG OF ACCT-ARRAY(1) MOVE 2000.00 TO CHK-OD-LIMIT OF ACCT-ARRAY(1) MOVE 'SAV1234567' TO CHK-OD-LINK-ACCT OF ACCT-ARRAY(1) MOVE '10/31/2005' TO CHK-LAST-STMT OF ACCT-ARRAY(1) MOVE 1 TO CHK-DETAIL-ITEMS OF ACCT-ARRAY(1) MOVE 41852.16 TO CHK-BAL OF ACCT-ARRAY(1) MOVE 'CHK7896112' TO ACCT-NUM OF ACCT-ARRAY(2) MOVE 'C' TO ACCT-TYPE OF ACCT-ARRAY(2) MOVE SPACES TO ACCT-INFO OF ACCT-ARRAY(2) MOVE 25.00 TO CHK-OD-CHG OF ACCT-ARRAY(2) MOVE 2000.00 TO CHK-OD-LIMIT OF ACCT-ARRAY(2) MOVE 'SAV7891234' TO CHK-OD-LINK-ACCT OF ACCT-ARRAY(2) MOVE '10/31/2005' TO CHK-LAST-STMT OF ACCT-ARRAY(2) MOVE 1 TO CHK-DETAIL-ITEMS OF ACCT-ARRAY(2) MOVE 41852.16 TO CHK-BAL OF ACCT-ARRAY(2) END-IF. EXEC CICS RETURN END-EXEC.
檢閱要匯入的 copybook。 在您準備就緒後,選取 [下一步]。
在 [ 專案選項] 方塊開啟並填入成品名稱和 [連結到程式名稱] 值之後,選取 [ 下一步]。
設計工具會顯示從 COBOL 複製簿產生的中繼資料成品。
設計工具也會產生 copybook 的主機定義。 此主機定義不包含整個提供的複製簿,但只會包含成品與大型主機程式互動所需的欄位和資料類型。 雖然先前提供的範例是整個程式,但 HIS Designer只會根據選取的程式設計模型擷取所需的資訊。
若要產生 HIDX,請選取 [ 全部儲存]。
若要尋找產生的 HIDX 檔案,請移至主應用程式的資料夾。
(IMS) 匯入 COBOL 主機定義
CICS 和 IMS 主機任務關鍵性程式,但各有不同的需求。 下列步驟示範如何將 IMS 主應用程式專案的 COBOL 複製簿匯入至 Logic Apps 的 HIS Designer。 此 COBOL 程式遵循 IMS Connect 程式設計模型。
在 Visual Studio 中,開啟 IMS 主應用程式解決方案,自動開啟 Logic Apps 的 HIS Designer。
在設計工具的左窗格中,開啟元件節點的快捷方式功能表,然後選取 [匯入>主機定義]。
在下列範例中,元件節點名為 NetCInt1。
在 [ 匯入系統 z COBOL 來源檔案] 方塊中,選取 [ 流覽]。
尋找並選取要匯入的複製簿,然後選取 [ 開啟]。
下列範例顯示要匯入的 COBOL 程式:
IDENTIFICATION DIVISION. PROGRAM-ID. GETBAL. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. ************************************************************** * USER DATA DEFINITIONS. * ************************************************************** 01 INPUT-AREA. 05 LLI PIC S9(4) COMP VALUE ZERO. 05 ZZI PIC S9(4) COMP VALUE ZERO. 05 TRAN PIC X(7) VALUE SPACES. 05 NAME PIC X(30). 05 ACCNUM PIC X(6). 01 OUTPUT-AREA. 05 LLO PIC S9(4) COMP VALUE ZERO. 05 ZZO PIC S9(4) COMP VALUE ZERO. 05 ACCBAL PIC S9(7)V9(2) COMP-3. 01 IMS-VALUES. 02 END-OF-MSG PIC X(2) VALUE 'QD'. 02 QUEUE-EMPTY PIC X(2) VALUE 'QC'. 02 GU PIC X(4) VALUE 'GU '. 02 ISRT PIC X(4) VALUE 'ISRT'. 02 CHNG PIC X(4) VALUE 'CHNG'. LINKAGE SECTION. 01 IOTP-PCB. 05 IOTP-LTERM PIC X(8). 05 FILLER PIC X(2). 05 IOTP-STATUS PIC X(2). 05 IOTP-PREFIX. 10 IOTP-DATE PIC S9(7) COMP-3. 10 IOTP-TIME PIC S9(7) COMP-3. 10 IOTP-MSG-NUMBER PIC S9(4) COMP. 10 FILLER PIC X(2). 05 IOTP-MOD-NAME PIC X(8). 05 IOTP-USER-ID PIC X(8). PROCEDURE DIVISION. ENTRY 'DLITCBL' USING IOTP-PCB. CALL 'CBLTDLI' USING GU IOTP-PCB INPUT-AREA. IF IOTP-STATUS = END-OF-MSG DISPLAY 'IOTP-STATUS = END-OF-MSG' END-IF. IF IOTP-STATUS = QUEUE-EMPTY DISPLAY 'IOTP-STATUS = QUEUE-EMPTY' END-IF. IF IOTP-STATUS NOT = ' ' DISPLAY 'CALL FAILED IOTP-STATUS = ' IOTP-STATUS END-IF. MOVE 777.12 TO ACCBAL OF OUTPUT-AREA. MOVE LENGTH OF OUTPUT-AREA TO LLO. CALL 'CBLTDLI' USING ISRT IOTP-PCB OUTPUT-AREA. IF IOTP-STATUS NOT = ' ' DISPLAY 'SEND FAILED IOTP-STATUS = ' IOTP-STATUS END-IF. GOBACK.
檢閱要匯入的 copybook。 在您準備就緒後,選取 [下一步]。
在 [ 專案選項] 方塊開啟並填入成品名稱和 交易識別碼 值之後,選取 [ 下一步]。
注意
在下一個步驟中,請確認未選取或使用 [ 使用匯 入工具預設值] 選項,這應該是您使用 IMS 主應用程式時的預設行為。
在 [ 輸入區域] 方塊開啟之後,選取 [ 輸入區域 ] 節點中的所有專案,然後選取 [ 下一步]。
開啟 [ 輸出區域] 方塊之後,選取 [ 輸出區域 ] 節點中的所有專案,然後選取 [ 下一步]。
在 [ 傳回值 ] 方塊開啟之後,針對傳回值選取 [ 輸出區域] 節點中的專案,然後選取 [ 下一步]。
在 [ 資料表、結構和等位 ] 方塊開啟之後,選取要用於資料表和結構的群組,然後選取 [ 下一步]。
此範例不需要任何選取專案,因此不會選取任何專案。
在 [ LL 欄位區域] 方塊開啟之後,選取必須從交易中排除的 LL 欄位。 在您準備就緒後,選取 [下一步]。
開啟 [ ZZ 欄位區域] 方塊之後,選取必須從交易中排除的 ZZ 欄位。 在您準備就緒後,選取 [下一步]。
開啟 [TRANCODE 欄位區域] 方塊之後,選取必須從交易中排除的 TRANCODE 欄位。 在您準備就緒後,選取 [完成]。
設計工具會顯示從 COBOL 複製簿產生的中繼資料成品:
設計工具也會產生 copybook 的主機定義。 此主機定義不包含整個提供的複製簿,但只會包含成品與大型主機程式互動所需的欄位和資料類型。 雖然先前提供的範例是整個程式,但 HIS Designer只會根據選取的程式設計模型擷取所需的資訊。
選取 [全部儲存] 以產生 HIDX。
若要尋找產生的 HIDX 檔案,請移至主應用程式的資料夾。
(主機檔案) 匯入 COBOL 主機檔案定義
IBM 主機檔案有多個類型,而且可以存在於大型主機或中型系統中。 每個都有自己的類型和特性。 需求逐漸增加,以現代化或移轉使用主機檔案資料的大型主機和中型應用程式。 其中一個範例是將 VSAM) 檔案 (虛擬儲存體存取方法移轉至 Azure。 使用此需求時,使用案例會變得更常見,以便存取這些檔案,並將其整合到新式解決方案中。
下列步驟示範如何將主機檔案專案的 COBOL 複製簿匯入至 Logic Apps 的 HIS Designer。 此 COBOL 複製book 代表簡單的 VSAM 檔案。 匯入精靈會建立結構和等位。 匯入 copybook 之後,您可以建立資料表並將資料表指派給正確的架構。
在 Visual Studio 中,開啟您的主機檔案方案,自動開啟 Logic Apps 的 HIS Designer。
設計工具的左窗格,開啟元件節點的快捷方式功能表,然後選取 [匯入>主機定義]。
在下列範例中,元件節點名為 HostFileDefinition1。
在 [ 匯入系統 z COBOL 來源檔案] 方塊中,選取 [ 流覽]。
尋找並選取要匯入的複製簿,然後選取 [ 開啟]。
下列範例顯示要匯入的 COBOL 程式:
****************************************************************** *HIS TRANSACTION DESIGNER EXPORT, 9.0 *DATA DECLARATION GENERATED ON 9/23/2013 5:21:51 PM ****************************************************************** *LIBRARY NAME.............CustomerDatabaseZOS.HIDX *DESCRIPTION..............NONE AVAILABLE ****************************************************************** 01 CUSTOMER-RECORD. 05 CUSTOMER-NAME PIC X(30). 05 CUSTOMER-SSN PIC X(9). 05 CUSTOMER-ADDRESS. 10 CUSTOMER-STREET PIC X(20). 10 CUSTOMER-CITY PIC X(10). 10 CUSTOMER-STATE PIC X(4). 10 CUSTOMER-ZIP PIC 9(5). 05 CUSTOMER-PHONE PIC X(13). 05 CUSTOMER-ACCESS-PIN PIC X(4).
在 [ 匯入系統 z COBOL 來源檔案] 方塊中,檢閱要匯入的複製簿。
確認主機定義的下列選項選取專案: REDEFINE、 使用匯入工具預設值,以及在 縮排上產生結構。 在您準備就緒後,選取 [下一步]。
設計工具會顯示從 COBOL 複製簿產生的中繼資料成品。 此成品不完整,因此您必須建立一或多個反映主機檔案的資料表。
在元件節點樹狀目錄中,開啟 [ 資料表 ] 快捷方式功能表,然後選取 [ 新增資料表]。
開啟新資料表的快捷方式功能表,然後選取 [ 屬性]。 在 [ 屬性] 視窗中,更新下列屬性:
屬性 Description 別名 資料表名稱,例如 CUSTOMER 主機名稱 主機檔案的大型主機或中間範圍系統名稱,例如 HISDEMO。NWIND。客戶 結構描述 先前匯入的架構,例如 ,CUSTOMER_RECORD 下列範例顯示更新的資料表屬性:
下列範例顯示已完成的主機檔案中繼資料成品:
產生 HIDX。 檔案,選取 [ 全部儲存]。
若要尋找產生的 HIDX 檔案,請移至主應用程式的資料夾。