导入 CICS、IMS 和主机文件的 COBOL 主机定义

在大型机程序员的协助下,引入了原始的 Host Integration Server TI Designer功能,具有从头开始设计元数据项目的完整功能。 后来,添加了以 COBOL 或 RPG copybook 格式导入主机定义的功能,以支持自动化设计和减少大型机程序员参与的方案。 多年来,此功能成为创建元数据项目的主要选项。

先决条件

准备 COBOL 副本簿

  • COBOL copybook 应遵循基本的 COBOL 编码规则。 适用于逻辑应用的 HIS Designer强制实施其中许多规则。 下表列出了main规则:

    类型 观测
    1–6 序列号 请勿在这些位置输入任何内容。
    7 指示器 使用星号 (*) 或斜杠 (/) 来编码批注。
    8-11 边距 (区域 A) 77 个级别编号和 01 个级别编号
    12-72 B 边距 (区域 B) 保留为 02 级及更高级别
    73-80 识别 此处不允许定义。
  • 验证 COBOL 或 RPG 副本是否满足所选 编程模型的要求。

  • 验证每行末尾的点。 确保显示它们,即使 COBOL 的最新版本不需要此格式。

  • 如果副本手册包含 REDEFINEs,请让大型机程序员确认要使用的主机定义(如果没有可用的判别器)。

  • 删除前面表中所述的字符以外的任何字符。 请确保具有正确的字符数。

(CICS) 导入 COBOL 主机定义

以下步骤演示如何将 CICS 主机应用程序项目的 COBOL 副本导入逻辑应用的 HIS Designer。 此 COBOL 程序遵循 CICS ELM Link 编程模型

  1. 在 Visual Studio 中,打开 CICS 主机应用程序解决方案,该解决方案会自动打开逻辑应用的 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. 查看要导入的复制本。 准备就绪后,选择“下一步”。

    屏幕截图显示了“导入系统 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 副本导入逻辑应用的 HIS Designer。 此 COBOL 程序遵循 IMS Connect 编程模型

  1. 在 Visual Studio 中,打开 IMS 主机应用程序解决方案,该解决方案会自动打开逻辑应用的 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. 查看要导入的复制本。 准备就绪后,选择“下一步”。

    屏幕截图显示了“导入系统 z COBOL 源文件”框,其中包含 IMS 的选定和预加载的主机定义。

  6. 打开“ 项选项” 框并使用项目名称和 事务 ID 值填充后,选择“ 下一步”。

    注意

    对于后续步骤,请确认“ 使用导入程序默认值 ”选项未选中或不可用,这应该是使用 IMS 主机应用程序时的默认行为。

    屏幕截图显示用于选择项目类型的“项选项”框,例如 IMS 的“方法”、“数据表”、“结构”或“联合”。

  7. 打开“ 输入区域 ”框后,选择“ 输入区域 ”节点中的所有项,然后选择“ 下一步”。

    屏幕截图显示了 IMS 主机事务的“输入区域”框。

  8. 打开“ 输出区域 ”框后,选择“ 输出区域 ”节点中的所有项,然后选择“ 下一步”。

    屏幕截图显示了 IMS 主机事务的“输出区域”框。

  9. 打开“ 返回值 ”框后,在“ 输出区域 ”节点中选择返回值的项,然后选择“ 下一步”。

    屏幕截图显示了 IMS 主机事务的“返回值”框。

  10. 打开 “数据表、结构和联合 ”框后,选择要用于数据表和结构的组,然后选择“ 下一步”。

    此示例不需要任何选择,因此不会选择任何项。

    屏幕截图显示了 IMS 的“数据表、结构和联合”框。

  11. 打开“ LL 字段区域 ”框后,选择必须从事务中排除的 LL 字段。 准备就绪后,选择“下一步”。

    屏幕截图显示了 IMS 的“LL 字段区域”框。

  12. 打开“ ZZ 字段区域 ”框后,选择必须从事务中排除的 ZZ 字段。 准备就绪后,选择“下一步”。

    屏幕截图显示“ZZ 字段区域”框。

  13. 打开“ TRANCODE 字段区域 ”框后,选择必须从事务中排除的 TRANCODE 字段。 准备就绪后,选择“完成”。

    屏幕截图显示“TRANCODE 字段区域”框。

    设计器显示从 COBOL copybook 生成的元数据项目:

    屏幕截图显示了 HIS Designer中 IMS 的元数据项目设计视图。

    设计器还会为 copybook 生成主机定义。 此主机定义不包括提供的整个 copybook,而仅包含项目与大型机程序交互所需的字段和数据类型。 尽管之前提供的示例是整个程序,但 HIS Designer仅根据所选编程模型提取所需的信息。

    屏幕截图显示了 HIS Designer中 IMS 的已分析主机定义视图。

  14. 选择“ 全部保存 ”以生成 HIDX。

    屏幕截图显示了 Visual Studio 工具栏,其中选择了“全部保存”。

  15. 若要查找生成的 HIDX 文件,请转到主机应用程序的 文件夹。

导入 COBOL 主机文件定义 (主机文件)

IBM 主机文件具有多种类型,可以存在于大型机或中型机系统中。 每个都有其自己的类型和特征。 对使用主机文件数据的大型机和中型机应用程序进行现代化或迁移的需求正在增加。 一个示例是将虚拟存储访问方法 (VSAM) 文件迁移到 Azure。 随着这种需求,访问这些文件并将其集成到新式解决方案中的用例变得越来越普遍。

以下步骤演示如何将主机文件项目的 COBOL copybook 导入逻辑应用的 HIS Designer。 此 COBOL copybook 表示一个简单的 VSAM 文件。 导入向导创建结构和联合。 导入 copybook 后,可以创建表并将其分配给正确的架构。

  1. 在 Visual Studio 中,打开主机文件解决方案,该解决方案会自动打开逻辑应用的 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 源文件 ”框中,查看要导入的 copybook。

  6. 确认主机定义的以下选项的选择: REDEFINE使用导入程序默认值和缩 进时生成结构。 准备就绪后,选择“下一步”。

    屏幕截图显示了“导入系统 z COBOL 源文件”框,其中包含主机文件的选定和预加载的主机定义。

    设计器显示从 COBOL copybook 生成的元数据项目。 此项目不完整,因此必须创建一个或多个反映主机文件的表。

    屏幕截图显示了主机文件的 HIS Designer中的元数据项目视图。

  7. 在组件节点树中,打开 “表 ”快捷菜单,然后选择“ 添加表”。

    屏幕截图显示了项目设计视图和打开的“表”快捷菜单,其中选择了“添加表”。

  8. 打开新表的快捷菜单,然后选择“ 属性”。 在 “属性” 窗口中,更新以下属性:

    属性 说明
    Alias 表名称,例如 CUSTOMER
    主机文件名 主机文件的大型机或中型系统名称,例如 HISDEMO。NWIND。客户
    架构 以前导入的架构,例如 ,CUSTOMER_RECORD

    以下示例显示了更新后的表属性:

    屏幕截图显示了表属性窗口,其中包含“别名”、“主机文件名”和“架构”属性。

    以下示例显示了已完成的主机文件的元数据项目:

    屏幕截图显示了主机文件的 HIS Designer中已完成的元数据项目。

  9. 生成 HIDX。 文件,选择“ 全部保存”。

    屏幕截图显示了 Visual Studio 工具栏,其中选择了“全部保存”。

  10. 若要查找生成的 HIDX 文件,请转到主机应用程序的 文件夹。