共用方式為


匯入 CICS、IMS 和主機檔案的 COBOL 主機定義

原始的主機整合伺服器 TI Designer功能引進了從頭開始設計中繼資料成品的完整功能,以及大型主機程式設計人員的協助。 之後,新增了以 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 程式設計模型

  1. 在 Visual Studio 中,開啟 CICS 主應用程式解決方案,自動開啟 Logic Apps 的 HIS Designer。

  2. 在設計工具的左窗格中,開啟元件節點的快捷方式功能表,然後選取 [匯入>主機定義]。

    在下列範例中,元件節點名為 NetCInt1

    顯示 Visual Studio、HIS 設計檢視和 NetCInt1 元件節點快捷方式功能表的螢幕擷取畫面,其中已選取 [匯入]、[主機定義]。

  3. 在 [ 匯入系統 z COBOL 來源檔案] 方塊中,選取 [ 流覽]。

    此螢幕擷取畫面顯示 CICS 的 [匯入系統 Z COBOL 來源檔案] 方塊。

  4. 尋找並選取要匯入的複製簿,然後選取 [ 開啟]。

    畫面顯示檔案總管和選取的複製簿,以用於 CICS 主機應用程式。

    下列範例顯示要匯入的 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.
    
  5. 檢閱要匯入的 copybook。 在您準備就緒後,選取 [下一步]。

    此螢幕擷取畫面顯示 [匯入系統 z COBOL 來源檔案] 方塊,其中已選取並預先載入 CICS 的主機定義。

  6. 在 [ 專案選項] 方塊開啟並填入成品名稱和 [連結到程式名稱] 值之後,選取 [ 下一步]。

    顯示 [專案選項] 方塊的螢幕擷取畫面,可選取專案類型,例如 CICS 的 [方法]、[資料表]、[結構] 或 [聯集]。

    設計工具會顯示從 COBOL 複製簿產生的中繼資料成品。

    此螢幕擷取畫面顯示 HIS Designer中 CICS 的中繼資料成品設計檢視。

    設計工具也會產生 copybook 的主機定義。 此主機定義不包含整個提供的複製簿,但只會包含成品與大型主機程式互動所需的欄位和資料類型。 雖然先前提供的範例是整個程式,但 HIS Designer只會根據選取的程式設計模型擷取所需的資訊。

    顯示 HIS Designer 中 CICS 已剖析主機定義檢視的螢幕擷取畫面。

  7. 若要產生 HIDX,請選取 [ 全部儲存]。

    顯示 Visual Studio 工具列的螢幕擷取畫面,其中已選取 [全部儲存]。

  8. 若要尋找產生的 HIDX 檔案,請移至主應用程式的資料夾。

(IMS) 匯入 COBOL 主機定義

CICS 和 IMS 主機任務關鍵性程式,但各有不同的需求。 下列步驟示範如何將 IMS 主應用程式專案的 COBOL 複製簿匯入至 Logic Apps 的 HIS Designer。 此 COBOL 程式遵循 IMS Connect 程式設計模型

  1. 在 Visual Studio 中,開啟 IMS 主應用程式解決方案,自動開啟 Logic Apps 的 HIS Designer。

  2. 在設計工具的左窗格中,開啟元件節點的快捷方式功能表,然後選取 [匯入>主機定義]。

    在下列範例中,元件節點名為 NetCInt1

    此螢幕擷取畫面顯示 Visual Studio、HIS 設計檢視,以及已選取 [匯入]、[主機定義] 的 NetCInt1 元件節點快捷方式功能表。

  3. 在 [ 匯入系統 z COBOL 來源檔案] 方塊中,選取 [ 流覽]。

    此螢幕擷取畫面顯示 IMS 的 [匯入系統 Z COBOL 來源檔案] 方塊。

  4. 尋找並選取要匯入的複製簿,然後選取 [ 開啟]。

    畫面顯示檔案總管和選取的複製簿,以用於 IMS 主應用程式。

    下列範例顯示要匯入的 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.
    
  5. 檢閱要匯入的 copybook。 在您準備就緒後,選取 [下一步]。

    顯示 [匯入系統 z COBOL 來源檔案] 方塊的螢幕擷取畫面,其中已選取並預先載入 IMS 的主機定義。

  6. 在 [ 專案選項] 方塊開啟並填入成品名稱和 交易識別碼 值之後,選取 [ 下一步]。

    注意

    在下一個步驟中,請確認未選取或使用 [ 使用匯 入工具預設值] 選項,這應該是您使用 IMS 主應用程式時的預設行為。

    顯示 [專案選項] 方塊的螢幕擷取畫面,可選取專案類型,例如 IMS 的 [方法]、[資料表]、[結構] 或 [聯集]。

  7. 在 [ 輸入區域] 方塊開啟之後,選取 [ 輸入區域 ] 節點中的所有專案,然後選取 [ 下一步]。

    此螢幕擷取畫面顯示 IMS 主機交易的 [輸入區域] 方塊。

  8. 開啟 [ 輸出區域] 方塊之後,選取 [ 輸出區域 ] 節點中的所有專案,然後選取 [ 下一步]。

    此螢幕擷取畫面顯示 IMS 主機交易的 [輸出區域] 方塊。

  9. 在 [ 傳回值 ] 方塊開啟之後,針對傳回值選取 [ 輸出區域] 節點中的專案,然後選取 [ 下一步]。

    此螢幕擷取畫面顯示 IMS 主機交易的 [傳回值] 方塊。

  10. 在 [ 資料表、結構和等位 ] 方塊開啟之後,選取要用於資料表和結構的群組,然後選取 [ 下一步]。

    此範例不需要任何選取專案,因此不會選取任何專案。

    此螢幕擷取畫面顯示 IMS 的 [資料表]、[結構和等位] 方塊。

  11. 在 [ LL 欄位區域] 方塊開啟之後,選取必須從交易中排除的 LL 欄位。 在您準備就緒後,選取 [下一步]。

    此螢幕擷取畫面顯示 IMS 的 [LL 欄位區域] 方塊。

  12. 開啟 [ ZZ 欄位區域] 方塊之後,選取必須從交易中排除的 ZZ 欄位。 在您準備就緒後,選取 [下一步]。

    顯示 [ZZ 欄位區域] 方塊的螢幕擷取畫面。

  13. 開啟 [TRANCODE 欄位區域] 方塊之後,選取必須從交易中排除的 TRANCODE 欄位。 在您準備就緒後,選取 [完成]。

    顯示 [TRANCODE 欄位區域] 方塊的螢幕擷取畫面。

    設計工具會顯示從 COBOL 複製簿產生的中繼資料成品:

    此螢幕擷取畫面顯示 HIS Designer中 IMS 的中繼資料成品設計檢視。

    設計工具也會產生 copybook 的主機定義。 此主機定義不包含整個提供的複製簿,但只會包含成品與大型主機程式互動所需的欄位和資料類型。 雖然先前提供的範例是整個程式,但 HIS Designer只會根據選取的程式設計模型擷取所需的資訊。

    此螢幕擷取畫面顯示 HIS Designer 中 IMS 的已剖析主機定義檢視。

  14. 選取 [全部儲存] 以產生 HIDX。

    顯示 Visual Studio 工具列的螢幕擷取畫面,其中已選取 [全部儲存]。

  15. 若要尋找產生的 HIDX 檔案,請移至主應用程式的資料夾。

(主機檔案) 匯入 COBOL 主機檔案定義

IBM 主機檔案有多個類型,而且可以存在於大型主機或中型系統中。 每個都有自己的類型和特性。 需求逐漸增加,以現代化或移轉使用主機檔案資料的大型主機和中型應用程式。 其中一個範例是將 VSAM) 檔案 (虛擬儲存體存取方法移轉至 Azure。 使用此需求時,使用案例會變得更常見,以便存取這些檔案,並將其整合到新式解決方案中。

下列步驟示範如何將主機檔案專案的 COBOL 複製簿匯入至 Logic Apps 的 HIS Designer。 此 COBOL 複製book 代表簡單的 VSAM 檔案。 匯入精靈會建立結構和等位。 匯入 copybook 之後,您可以建立資料表並將資料表指派給正確的架構。

  1. 在 Visual Studio 中,開啟您的主機檔案方案,自動開啟 Logic Apps 的 HIS Designer。

  2. 設計工具的左窗格,開啟元件節點的快捷方式功能表,然後選取 [匯入>主機定義]。

    在下列範例中,元件節點名為 HostFileDefinition1

    此螢幕擷取畫面顯示 Visual Studio、HIS 設計檢視,以及已選取 [匯入]、[主機定義] 的 HostFileDefinition1 元件節點快捷方式功能表。

  3. 在 [ 匯入系統 z COBOL 來源檔案] 方塊中,選取 [ 流覽]。

    此螢幕擷取畫面顯示主機檔案的 [匯入系統 Z COBOL 來源檔案] 方塊。

  4. 尋找並選取要匯入的複製簿,然後選取 [ 開啟]。

    畫面顯示要用於主機檔案的檔案總管和選取的複製簿。

    下列範例顯示要匯入的 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).
    
  5. 在 [ 匯入系統 z COBOL 來源檔案] 方塊中,檢閱要匯入的複製簿。

  6. 確認主機定義的下列選項選取專案: REDEFINE使用匯入工具預設值,以及在 縮排上產生結構。 在您準備就緒後,選取 [下一步]。

    此螢幕擷取畫面顯示 [匯入系統 z COBOL 來源檔案] 方塊,其中已選取並預先載入主機檔案的主機定義。

    設計工具會顯示從 COBOL 複製簿產生的中繼資料成品。 此成品不完整,因此您必須建立一或多個反映主機檔案的資料表。

    此螢幕擷取畫面顯示主機檔案之 HIS Designer中的中繼資料成品檢視。

  7. 在元件節點樹狀目錄中,開啟 [ 資料表 ] 快捷方式功能表,然後選取 [ 新增資料表]。

    此螢幕擷取畫面顯示成品設計檢視,以及已選取 [新增資料表] 的開啟 [資料表] 快捷方式功能表。

  8. 開啟新資料表的快捷方式功能表,然後選取 [ 屬性]。 在 [ 屬性] 視窗中,更新下列屬性:

    屬性 Description
    別名 資料表名稱,例如 CUSTOMER
    主機名稱 主機檔案的大型主機或中間範圍系統名稱,例如 HISDEMO。NWIND。客戶
    結構描述 先前匯入的架構,例如 ,CUSTOMER_RECORD

    下列範例顯示更新的資料表屬性:

    此螢幕擷取畫面顯示具有別名、主機名稱和架構屬性的資料表屬性視窗。

    下列範例顯示已完成的主機檔案中繼資料成品:

    此螢幕擷取畫面顯示主機檔案之 HIS Designer中已完成的中繼資料成品。

  9. 產生 HIDX。 檔案,選取 [ 全部儲存]。

    顯示 Visual Studio 工具列的螢幕擷取畫面,其中已選取 [全部儲存]。

  10. 若要尋找產生的 HIDX 檔案,請移至主應用程式的資料夾。