在本章节中:

前言

此扩展提供了对 COBOL copybook 的支持,使您能够使用 Parasoft 解决方案来配置、发送、验证和虚拟化 copybook 消息。从 Parasoft 市场下载的工件是一个可执行的构建器。运行可执行文件生成一个 JAR 文件,该文件将被安装到 SOAtest 和/或 Virtualize 中。下载的构建器 jar 文件不是要安装到 Virtualize/ SOAtest 中的 copybook jar。构建器可用于生成任意数量的 copybook jar 文件。可以在 Virtualize/SOAtest 中安装多个 copybook jar 文件。

当构建器执行时,它生成一个可使用的 jar 文件,其中包括:

  • 每个 copybook 的 XML 模式。
  • 用于操作 copybook 数据的 Java 类。
  • 将 copybook 集成为 Parasoft SOAtest 和 Virtualize 中消息类型的 XML 文件。

在生成并安装 copybook JAR 之后,将能够创建 copybook 响应器(针对 Virtualize)和 copybook 客户机(针对 SOAtest)。这两个工具都允许在 Parasoft 的标准图形消息树中以及在“文字”(纯文本)模式下处理 copybook 消息。 

此工具支持语法正确的 copybook,包括:

  • 支持所有 COBOL 数字类型,包括 COMP-3 (Packed Decimal)。
  • 支持在基本字段和组级字段上多次出现(OCCURS 语句)。
  • 支持嵌套 copy 语句。

该工具不支持 OCCURS DEPENDING ON 语句或 COPY REPLACING 语句。

要求

  • Java 6 或 7 (非 Java 8)
  • 合适的 JDK 
  • Parasoft Virtualize 或 Parasoft SOAtest 9.9.4 或更高版本

准备 Copybook 文件

Copybook 工具在运行时提供的目录列表中搜索 Copybook 文件。在每个目录中,该工具搜索要处理的 copybook 文件的文件名和通配符列表。

建议您的 copybook 文件具有与 COBOL 源代码(.cpy 与 .cob)或者将 copybook 文件存储在与任何 COBOL 源代码不同的目录中。

来自 Z/OS 系统的 Copybook 文件被限制为 8 个字符,但是 Copybook 工具不需要这样做。

如果 copybook 文件包含 COPY 语句,copybook 工具将通过检查与运行时提供的扩展名相同的文件,从而解析该名称。

例如,如果 copybook 包含一个 COPY ACCTDATA 语句和文件名列表 *.cpy,*cbl,则 copybook 工具将尝试在运行时提供的目录列表中查找 ACCTDATA.cpy 或 ACCTDATA.cbl 。

使用说明

SOAtest 和 Virtualize 支持各种类型的请求(SOAtest)和响应程序(Virtualize)。这些类型可以包括 XML、JSON、CSV、纯文本和固定长度。当 Parasoft Copybook Builder 的输出集成到这些产品中时,将创建一个新的 Copybook 消息类型。每个 copybook 都成为 Copybook 格式请求和响应程序的消息格式。执行以下步骤来使用 Copybook 消息类型:

生成 Copybook JAR

运行 com.parasoft.soavir .messages.copybook-<version>.jar 文件,使用以下命令构建 read the copybook 文件并生成要集成到 UI 中的 JAR 文件:

java -jar <path to executable copybook.jar> -copybookinput <path to copybook directory> -filenames <filename1, filename2, etc.> -name <name> -apijar <path to com.parasoft.api.jar>

该命令使用以下参数:

-jar指定来自 Parasoft 应用市场的 Copybook 扩展名
-copybookinput

指定 copybook 目录或用逗号分隔的 copybook 目录列表。如果没有指定,则使用当前目录。

构建器不会递归子目录。将子目录指定为单独的条目,如果目录包含空格或特殊字符,则使用引号。

-filenames指定以逗号分隔的 copybook 文件列表(允许使用通配符)。
-name指定构建器创建的 copybook jar 扩展名。这个名称还将在 Virtualize/SOAtest 中用作 UI 标签。如果未指定 –name ,则 jar 文件将命名为 copybook.jar。
-apijar指定 com.parasoft.api.jar 文件的绝对路径或相对路径。如果使用 -name 参数,这个参数是必须的。可以通过 [INSTALL]/plugins/com.parasoft.xtest.libs.web_[version]/root/com.parasoft.api.jar 访问这个 jar 文件。
-log设置控制台消息的日志级别。可以使用 DEBUGINFOWARNERROR
-preprocess告诉构建器在预处理完成后停止执行。
-help打印文档。

例如

java -jar parasoft_copybook_builder.jar -copybookinput "C:\My Projects\proj_a\cobol_src","C:\My Projects\proj_a\cobol_src\copy books" -filenames *.cbl,*.cpy -name Ps01CommArea -apijar com.parasoft.api.jar

示例搜索以下文件夹:

  • C:\My Projects\prog_a\cobol_src
  • C:\My Projects\proj_a\cobol_src\copy books.

匹配通配符 *.cbl 或 *.cpy 的任何文件都将作为 copybook 处理。

当 Copybook 工具完成时,将在目录中创建两个文件:copybook.jar 和 velocity.log。假设没有错误,可以删除 velocity.log。按照 Integrating the Copybook Extension中描述的那样集成 copybook.jar 文件。

集成 Copybook 扩展

Copybook 工具在 SOAtest 和 Virtualize UI 中实现为一个系统 JAR 文件,该文件通过执行 Generating the Copybook JAR中的 JAR 来输出。

  1. 选择 Parasoft> Preferences
  2. 选择 System Properties 并删除所有现有的 copybook.jar 条目。 
  3. 单击 Add JARs ,并浏览在执行 Generating the Copybook JAR中 JAR 文件之后创建的 copybook.jar 文件。
  4. 单击 Open 并应用更改。
  5. 重启 SOAtest/Virtualize。

还可以通过将 copy.jar 文件添加到 system.properties 中,从命令行安装扩展。在 localsettings 属性文件中设置 classpath 属性。例如:

system.properties.classpath=<path to jar>/copybook1.jar

还可以将 copybook.jar 文件添加到 VirtualAssets/system_jars 文件夹中(如果这个文件还不存在,那么现在就创建它)。执行以下 API 调用来重新加载 jar:

http://<virtualize_server_host>:<virtualize_server_port>/soavirt/api/<version>/preferences/systemProperties/reload

在响应程序中使用 Copybook

可以从流量中生成 Copybook 响应程序和 Copybook 客户机,也可以手动添加它们。如果要手动添加它们,请确保从消息类型下拉列表中选择所需的 copybook。一旦选择了 copybook,将根据该 copybook 填充树。这个例子演示了如何从 copybook 创建一个 Virtualize 响应器。

  1. 在 Virtualize 透视图中,选择 Parasoft> Show View> Virtual Asset Explorer
  2. 右键单击 VirtualAssets 文件夹,然后选择 Add New> Virtual Asset (.pva) File… 
  3. 输入文件名,然后单击 Next
  4. 选择 Empty ,然后单击 Finish。在 VirtualAssets 文件夹中创建一个新的 .pva 文件。
  5. 右键单击新 .pva 下的 Responder Suite 并 选择 Add New> Responder
  6. 选择 CopyBook Message Responder ,然后单击 Finish
  7. 打开刚才创建的 Copybook 消息响应器。 
  8. 所有可用的 copybook 都显示在消息类型下拉菜单中。选择一个 copybook, copybook 的字段将显示为 responder 字段。

可以重复这些步骤,在 SOAtest 环境中创建 copybook 请求。 

  • No labels