导入 CICS、IMS 和主机文件的 COBOL 主机定义
在大型机程序员的协助下,引入了原始的 Host Integration Server TI Designer功能,具有从头开始设计元数据项目的完整功能。 后来,添加了以 COBOL 或 RPG copybook 格式导入主机定义的功能,以支持自动化设计和减少大型机程序员参与的方案。 多年来,此功能成为创建元数据项目的主要选项。
先决条件
下载并安装 Visual Studio。 安装后,请确保还在 Visual Studio 中安装名为“使用 C++ 进行桌面开发的”工作负载。 否则,会收到 来自 HRESULT 0x800A007C的异常错误。
下载并安装适用于 Azure 逻辑应用的 HIS Designer。 唯一的必备组件是 Microsoft .NET Framework 4.8。
Visual Studio 主机应用程序解决方案和项目 (CICS 或 IMS 或要导入主机定义的 主机文件解决方案项目 。
注意
HIS Designer根据是打开 CICS、IMS 还是主机文件解决方案提供并显示不同的选项。
了解编程模型如何适用于要集成的技术(CICS 或 IMS)。 这两个平台有不同的要求和传递和接收信息的方式。 在导入主机定义之前,请确保了解适当的 编程模型 。
获取要导入到逻辑应用的 HIS Designer (副本) 的主机定义。 此设计器支持 COBOL 和 RPG 副本。
准备 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 编程模型。
在 Visual Studio 中,打开 CICS 主机应用程序解决方案,该解决方案会自动打开逻辑应用的 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.
查看要导入的复制本。 准备就绪后,选择“下一步”。
打开“ 项选项” 框并使用项目名称和 “链接到程序名称 ”值填充后,选择“ 下一步”。
设计器显示从 COBOL 副本簿生成的元数据项目。
设计器还会为 copybook 生成主机定义。 此主机定义不包括所提供的整个副本,而仅包含项目与大型机程序交互所需的字段和数据类型。 尽管之前提供的示例是整个程序,但 HIS Designer仅根据所选编程模型提取所需的信息。
若要生成 HIDX,请选择“ 全部保存”。
若要查找生成的 HIDX 文件,请转到主机应用程序的 文件夹。
(IMS) 导入 COBOL 主机定义
CICS 和 IMS 都托管任务关键型程序,但每个程序都有不同的要求。 以下步骤演示如何将 IMS 主机应用程序项目的 COBOL 副本导入逻辑应用的 HIS Designer。 此 COBOL 程序遵循 IMS Connect 编程模型。
在 Visual Studio 中,打开 IMS 主机应用程序解决方案,该解决方案会自动打开逻辑应用的 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.
查看要导入的复制本。 准备就绪后,选择“下一步”。
打开“ 项选项” 框并使用项目名称和 事务 ID 值填充后,选择“ 下一步”。
注意
对于后续步骤,请确认“ 使用导入程序默认值 ”选项未选中或不可用,这应该是使用 IMS 主机应用程序时的默认行为。
打开“ 输入区域 ”框后,选择“ 输入区域 ”节点中的所有项,然后选择“ 下一步”。
打开“ 输出区域 ”框后,选择“ 输出区域 ”节点中的所有项,然后选择“ 下一步”。
打开“ 返回值 ”框后,在“ 输出区域 ”节点中选择返回值的项,然后选择“ 下一步”。
打开 “数据表、结构和联合 ”框后,选择要用于数据表和结构的组,然后选择“ 下一步”。
此示例不需要任何选择,因此不会选择任何项。
打开“ LL 字段区域 ”框后,选择必须从事务中排除的 LL 字段。 准备就绪后,选择“下一步”。
打开“ ZZ 字段区域 ”框后,选择必须从事务中排除的 ZZ 字段。 准备就绪后,选择“下一步”。
打开“ TRANCODE 字段区域 ”框后,选择必须从事务中排除的 TRANCODE 字段。 准备就绪后,选择“完成”。
设计器显示从 COBOL copybook 生成的元数据项目:
设计器还会为 copybook 生成主机定义。 此主机定义不包括提供的整个 copybook,而仅包含项目与大型机程序交互所需的字段和数据类型。 尽管之前提供的示例是整个程序,但 HIS Designer仅根据所选编程模型提取所需的信息。
选择“ 全部保存 ”以生成 HIDX。
若要查找生成的 HIDX 文件,请转到主机应用程序的 文件夹。
导入 COBOL 主机文件定义 (主机文件)
IBM 主机文件具有多种类型,可以存在于大型机或中型机系统中。 每个都有其自己的类型和特征。 对使用主机文件数据的大型机和中型机应用程序进行现代化或迁移的需求正在增加。 一个示例是将虚拟存储访问方法 (VSAM) 文件迁移到 Azure。 随着这种需求,访问这些文件并将其集成到新式解决方案中的用例变得越来越普遍。
以下步骤演示如何将主机文件项目的 COBOL copybook 导入逻辑应用的 HIS Designer。 此 COBOL copybook 表示一个简单的 VSAM 文件。 导入向导创建结构和联合。 导入 copybook 后,可以创建表并将其分配给正确的架构。
在 Visual Studio 中,打开主机文件解决方案,该解决方案会自动打开逻辑应用的 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 源文件 ”框中,查看要导入的 copybook。
确认主机定义的以下选项的选择: REDEFINE、 使用导入程序默认值和缩 进时生成结构。 准备就绪后,选择“下一步”。
设计器显示从 COBOL copybook 生成的元数据项目。 此项目不完整,因此必须创建一个或多个反映主机文件的表。
在组件节点树中,打开 “表 ”快捷菜单,然后选择“ 添加表”。
打开新表的快捷菜单,然后选择“ 属性”。 在 “属性” 窗口中,更新以下属性:
属性 说明 Alias 表名称,例如 CUSTOMER 主机文件名 主机文件的大型机或中型系统名称,例如 HISDEMO。NWIND。客户 架构 以前导入的架构,例如 ,CUSTOMER_RECORD 以下示例显示了更新后的表属性:
以下示例显示了已完成的主机文件的元数据项目:
生成 HIDX。 文件,选择“ 全部保存”。
若要查找生成的 HIDX 文件,请转到主机应用程序的 文件夹。