在本章节中:
前言
此扩展提供了对 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 | 设置控制台消息的日志级别。可以使用 DEBUG 、 INFO 、 WARN 或 ERROR 。 |
-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 来输出。
- 选择 Parasoft> Preferences。
- 选择 System Properties 并删除所有现有的 copybook.jar 条目。
- 单击 Add JARs ,并浏览在执行 Generating the Copybook JAR中 JAR 文件之后创建的 copybook.jar 文件。
- 单击 Open 并应用更改。
- 重启 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 响应器。
- 在 Virtualize 透视图中,选择 Parasoft> Show View> Virtual Asset Explorer
- 右键单击 VirtualAssets 文件夹,然后选择 Add New> Virtual Asset (.pva) File…
- 输入文件名,然后单击 Next。
- 选择 Empty ,然后单击 Finish。在 VirtualAssets 文件夹中创建一个新的 .pva 文件。
- 右键单击新 .pva 下的 Responder Suite 并 选择 Add New> Responder。
- 选择 CopyBook Message Responder ,然后单击 Finish。
- 打开刚才创建的 Copybook 消息响应器。
- 所有可用的 copybook 都显示在消息类型下拉菜单中。选择一个 copybook, copybook 的字段将显示为 responder 字段。
可以重复这些步骤,在 SOAtest 环境中创建 copybook 请求。