为 3270 应用程序设计元数据项目

本指南演示如何为 3270 应用程序设计元数据项目,并将这些项目保存为 Host Integration Server 定义 XML (HIDX) 文件和 Host Integration Server 的 C# 类。

在 3270 屏幕驱动的应用中,屏幕和数据字段对你的方案是唯一的。 如果使用 Azure 逻辑应用 创建并运行包含 IBM 3270 连接器操作的自动化工作流,则连接器需要有关应用的信息,你可以在 HIDX 文件中作为元数据提供这些信息。 此元数据描述有助于工作流识别和识别屏幕的信息,描述如何在屏幕之间导航、在何处输入数据以及预期结果的位置。 若要指定并生成此元数据,请使用 3270 设计工具,它会引导你完成这些特定的模式或阶段,本文稍后会提供更多详细信息:

  • “捕获”:在此模式下,记录使用大型机应用完成特定任务所需的屏幕,例如,获取银行余额。

  • “导航”:在此模式下指定有关如何针对特定的任务浏览大型机应用屏幕的计划或路径。

  • “方法”:在此模式下定义用于描述屏幕导航路径的方法,例如 GetBalance。 还可以选择每个屏幕中要用作方法的输入和输出参数的字段。

先决条件

捕获屏幕

在此模式下,可在每个 3270 屏幕中标记一个用于唯一标识该屏幕的项。 例如,可以指定一行文本或一组更复杂的条件,例如特定的文本和非空字段。 可以通过与主机服务器建立的实时连接来录制这些屏幕,或者从 IBM 基本映射支持 (BMS) 映射导入此信息。 该实时连接使用 TN3270 仿真器连接到主机。 每个连接器的操作必须映射到单个任务,该任务最初是连接到会话,最后是断开会话的连接。

  1. 如果尚未打开 3270 设计工具,请将其打开。 在工具栏中,选择“捕获”进入捕获模式。

  2. “会话”菜单中,选择“主机设置”。 输入TN3270E服务器设置的信息,然后选择“ 确定”。

  3. 在“会话”菜单中,选择“连接”。

  4. 若要开始录制,在“录制”菜单中选择“开始录制”。 (键盘:Ctrl + E)

  5. 在“捕获”窗格中,从应用的第一个屏幕开始,针对要录制的特定任务逐步运行应用。

  6. 完成该任务后,像往常一样从应用注销。

  7. 在“会话”菜单中,选择“断开连接”。

  8. 若要停止录制,在“录制”菜单中选择“停止录制”。 (键盘:Ctrl + Shift + E)

    捕获任务的屏幕后,设计器工具会显示表示这些屏幕的缩略图。 有关这些缩略图的一些说明:

    • 捕获的屏幕中包括一个名为“空”的屏幕。

      首次连接到 CICS 时,必须先发送“清空”键,然后才能输入所要运行的事务的名称。 在其中发送“清空”键的屏幕不包含任何识别属性(例如屏幕标题),可以使用屏幕识别编辑器添加此类属性。 缩略图包含名为“空”的屏幕用于表示此屏幕。 稍后可以使用此屏幕来表示要在其中输入事务名称的屏幕。

    • 默认情况下,捕获的屏幕的名称使用屏幕上的第一个单词。 如果该名称已存在,则设计工具会在名称的后面追加一个下划线和数字,例如“WBGB”和“WBGB_1”。

  9. 若要为捕获的屏幕提供更有意义的名称,请执行以下步骤:

    1. 在“主机屏幕”窗格中,选择要重命名的屏幕。

    2. 在同一窗格中的底部附近,找到“屏幕名称”属性。

    3. 将当前屏幕名称更改为更具描述性的名称。

  10. 现在,指定用于标识每个屏幕的字段。

    对于 3270 数据流,屏幕不包含默认标识符,因此你需要在每个屏幕上选择唯一的文本。 对于复杂方案,可以指定多个条件,例如唯一文本和具有特定条件的字段。

选择识别字段后,转到下一模式。

用于标识重复屏幕的条件

为使连接器在屏幕之间导航以及区分不同的屏幕,通常需要查找用作不同捕获屏幕之间的标识符的唯一文本。 对于重复的屏幕,可能需要更多的标识方法。 例如,假设有两个屏幕的外观相同,但其中一个屏幕返回有效值,而另一个屏幕返回错误消息。

在设计工具中,可以使用屏幕识别编辑器添加识别属性,例如,屏幕标题“获取帐户余额”。 如果存在分叉的路径,并且两个分支返回相同的屏幕但不同的结果,则你需要添加其他识别属性。 在运行时,连接器将使用这些属性来确定当前分支和分叉。 下面是可以使用的条件:

  • 特定值:此值与指定位置的指定字符串相匹配。
  • 非特定值:此值与指定位置的指定字符串不匹配。
  • 空:该字段为空。
  • 非空:此字段不为空。

有关详细信息,请参阅本主题稍后所述的示例导航计划

定义导航计划

在此模式下,定义有关浏览特定任务的大型机应用屏幕的流或步骤。 例如,应用有时可能会采用多个路径,其中一个路径生成正确的结果,而另一个路径生成错误。 对于每个屏幕,请指定所需的击键以转到下一个屏幕,例如 CICSPROD <enter>

提示

如果你正在自动化使用相同连接和断开连接屏幕的多个任务,设计工具会提供特殊的连接和断开连接计划类型。 定义这些计划时,可将其添加到导航计划的开头和末尾。

计划定义的准则

  • 包含所有屏幕,以连接开始,以断开连接结束。

  • 可以创建独立的计划,或者使用连接和断开连接计划,这样就可以重复使用所有事务通用的一系列屏幕。

    • 连接计划中的最后一个屏幕必须是导航计划中的第一个屏幕。

    • 断开连接计划中的第一个屏幕必须是导航计划中的最后一个屏幕。

  • 捕获的屏幕可能包含许多重复的屏幕,因此,请对计划中的任何重复屏幕仅选择并使用一个实例。 下面是重复屏幕的一些示例:

    • 登录屏幕,例如“MSG-10”屏幕
    • CICS 的欢迎屏幕
    • “清空”或“空”屏幕

创建计划

  1. 在 3270 设计工具的工具栏上,选择“导航”以进入导航模式。

  2. 若要开始创建计划,请在“导航”窗格中选择“新建计划”。

  3. 在“选择新计划名称”下,输入计划的名称。 从“类型”列表中选择计划类型:

    计划类型 描述
    Process 适用于独立计划或组合计划
    “连接” 适用于连接计划
    断开连接 适用于断开连接计划
  4. 在“主机屏幕”窗格中,将捕获的缩略图拖放到“导航”窗格中的导航计划图面。

    若要显示用于输入事务名称的空白屏幕,请使用“空”屏幕。

  5. 按照所要定义的任务的描述顺序排列屏幕。

  6. 若要定义屏幕之间的流路径(包括分叉和联接),请在设计工具的工具栏上选择“流”。

  7. 选择流中的第一个屏幕。 将某个连接拖动并绘制到流中的下一个屏幕。

  8. 对于每个屏幕,提供“AID 键”属性(注意标识符)和“固定文本”属性的值,以便将流转到下一屏幕。

    可以仅输入 AID 键,或同时输入 AID 键和固定文本。

完成导航计划后,可以在下一模式下定义方法

示例

在此示例中,假设运行名为“WBGB”的 CICS 事务,其中包含以下步骤:

  1. 在第一个屏幕上输入名称和帐户。
  2. 在第二个屏幕上获取帐户余额。
  3. 退出并转到“空”屏幕。
  4. 从 CICS 注销并转到“MSG-10”屏幕。

另外,假设你要重复这些步骤,但会输入错误的数据,以便可以捕获显示错误的屏幕。 下面是捕获的屏幕:

  • MSG-10
  • CICS 欢迎
  • WBGB_1(输入)
  • WBGB_2(错误)
  • Empty_1
  • MSG-10_1

尽管此处的许多屏幕都有唯一的名称,但某些屏幕是相同的屏幕,例如“MSG-10”和“MSG-10_1”。 应重命名WBGB_1,并WBGB_2内容更详细。 对于重复的屏幕,请在计划中对该屏幕仅使用一个实例。 以下示例显示了独立计划、连接计划、断开连接计划和组合计划的外观:

  • 独立计划

    独立导航计划

  • 连接计划

    连接计划

  • 断开连接计划

    断开连接计划

  • 组合计划

    组合计划

示例:标识重复的屏幕

示例计划包含一个分叉,可在其中获取类似的屏幕。 其中一个屏幕返回帐户余额,另一个屏幕返回错误消息。

在设计工具中,可以使用屏幕识别编辑器添加识别属性,例如,名为“获取帐户余额”的屏幕标题。 对于类似的屏幕,需要添加其他属性。 在运行时,连接器将使用这些属性来确定分支和分叉。

  • 在返回有效输入的分支(包含帐户余额的屏幕)中,可以添加附带“不为空”条件的字段。

  • 在返回错误的分支中,可以添加附带“空”条件的字段。

定义方法

在此模式下,定义一个与导航计划相关联的方法。 对于每个方法参数,请指定字符串、整数、日期或时间等数据类型。 完成后,可以在实时主机上测试该方法,并确认该方法是否按预期方式工作。 然后生成元数据文件或主机集成设计器 XML (HIDX) 文件,该文件现在包含用于为 IBM 3270 连接器创建和运行操作的方法定义。 它还为 Host Integration Server 生成 C# 类。 还可以生成用于 Host Integration Server 的 C# 类。

  1. 在 3270 设计工具的工具栏上,选择“方法”以进入“方法”模式。

  2. 在“ 方法 ”窗格中,选择“ 新建方法” 按钮。 输入新方法的名称。 选择“确定”。

  3. 在“导航”窗格中,选择包含所需输入字段的屏幕。

  4. 若要添加方法的第一个输入参数,请执行以下步骤:

    1. 在 3270 仿真器屏幕上的“捕获”窗格中选择整个字段,而不仅仅是该字段中要用作第一个输入的文本。

      提示

      若要显示所有字段,并确保选择整个字段,并在“视图”菜单中选择“所有字段”。

    2. 在设计工具的工具栏上,选择“输入字段”。

  5. 若要添加更多的输入参数,请针对每个参数重复上述步骤。 请参阅上一步。

  6. 若要添加方法的第一个输出参数,请执行以下步骤:

    1. 在 3270 仿真器屏幕上的“捕获”窗格中选择整个字段,而不仅仅是该字段中要用作第一个输出的文本。

      提示

      若要显示所有字段,并确保选择整个字段,并在“视图”菜单中选择“所有字段”。

    2. 在设计工具的工具栏上,选择“输出字段”。

    若要添加更多的输出参数,请针对每个参数重复上述步骤。

  7. 添加方法的所有参数后,请定义每个参数的以下属性:

    属性名称 可能值
    数据类型 字节、日期时间、小数、整数、长整数、短整数、字符串
    字段填充方法 参数支持以下填充类型,必要时留空:

    - “类型”:在字段中按顺序输入字符。

    - “填充”:将字段内容替换为字符,必要时留空。

    - “EraseEofType”:清除字段,然后在字段中按顺序输入字符。

    格式字符串 某些参数数据类型使用格式字符串,告知 3270 连接器如何将屏幕中的文本转换为 .NET 数据类型:

    - “日期时间”:日期时间格式字符串遵循 .NET 自定义日期和时间格式字符串。 例如,日期 06/30/2019 使用格式字符串 MM/dd/yyyy

    - “小数”:小数格式字符串使用 COBOL Picture 子句。 例如,数字 100.35 使用格式字符串 999V99

保存并查看元数据

定义方法之后、测试方法之前,请将截止目前定义的所有信息保存到某个 RAP (.rap) 文件。 在任何模式下,随时可将信息保存到此 RAP 文件中。 设计工具还包含一个示例 RAP 文件。浏览到设计工具的安装文件夹并打开“WoodgroveBank.rap”文件即可查看该文件:

..\Program Files\Microsoft Host Integration Server - 3270 Design Tool\SDK\WoodgroveBank.rap

但是,如果在示例 RAP 文件仍保留在设计工具的安装文件夹中的情况下尝试保存对该文件所做的更改,或者基于该文件生成 HIDX 文件,可能会收到“拒绝访问”错误。 默认情况下,设计工具安装在 Program Files 文件夹中且不提供提升的权限。 如果出现错误,请尝试以下解决方法之一:

  • 将示例文件复制到另一个位置。
  • 以管理员身份运行设计工具。
  • 使自己成为 SDK 文件夹的所有者。

测试方法

  1. 若要针对实时主机运行上述方法,请在仍处于“方法”模式的情况下按 F5 键,或者在设计工具的工具栏中选择“测试”。

    提示

    随时可以更改模式。 在“ 文件 ”菜单上,选择“ 工具”,然后选择所需的模式: 使用最小进度窗体链方法

  2. 请输入参数的值,并选择“确定”。

  3. 若要转到下一屏幕,请选择“下一步”。

  4. 完成后,请选择“完成”,显示输出参数值。

生成并上传 HIDX 文件

准备就绪后,生成 HIDX 文件。 3270 设计工具将在保存 RAP 文件的新子文件夹中创建 HIDX 文件。 然后,可以将 HIDX 文件上传到链接到消耗或标准逻辑应用资源的集成帐户。 或者,可以通过资源菜单上的“映射”下的“项目”部分直接上传到标准逻辑应用资源。

  1. 在 3270 设计工具中,从“工具”菜单中,选择“生成定义”。 (键盘:F6)

  2. 转到包含 RAP 文件的文件夹,然后打开该工具在生成 HIDX 文件后创建的子文件夹。 确认该工具已创建 HIDX 文件。