使用 CICS 转换程序
语言转换程序将读取您的源程序并创建一个新程序。 大多数正常语言语句保持不变,但 CICS ® 命令会转换为您编码所用语言所需的格式的 CALL 语句。
这些调用将调用 CICS 提供的 EXEC
接口模块,这些模块稍后将链接编辑到装入模块中,这些模块将在执行时依次调用所请求的服务。
您可以通过指定转换程序选项来控制转换过程。 请参阅 定义转换程序选项。
您可以通过以下方式指定选项:
- 在编译器 (汇编程序) 为指定选项提供的语句上,将它们作为 XOPTS 选项的子选项列出。
表 1. 为每种语言提供的语句 语言 STATEMENT COBOL CBL COBOL PROCESS C #pragma C++ #pragma PL/I * 进程 汇编语言 *ASM 或 *PROCESS 1 - 在转换步骤的 EXEC 作业控制语句的 PARM 操作数中列出您的选项。
大多数安装使用编目过程来转换,编译 (汇编) 和链接 CICS 程序,因此您在调用该过程的 EXEC 作业控制语句中指定此 PARM 字段。
例如,如果 COBOL 程序的过程的名称为 DFHYITVL ,并且过程中的转换步骤的名称为 TRN ,那么以下示例语句将为 COBOL 程序设置转换程序选项:// EXEC DFHYITVL,PARM.TRN=(VBREF,QUOTE,SPACE(2),NOCBLCARD)
如果您使用一种方法来指定选项,并使用另一种方法来指定相同选项或发生冲突的选项,那么语言语句中的规范将覆盖 EXEC 语句中的规范。 类似地,如果为单个选项指定多个值,而这些值在任一类型的语句上都有冲突,那么最后一个设置优先。 除了 COBOL 程序,这些语句必须在每个源程序之前; 无法以其他语言对多个程序的处理进行批处理。
转换程序选项可以按任何顺序显示,用一个或多个空格或逗号分隔。 如果在选项的语言语句上指定它们,那么它们必须出现在 XOPTS 参数后面的括号中,因为其他选项将被转换程序忽略并传递到编译器。 以下 COBOL 示例显示了同时传递的转换程序和编译器选项:
CBL LIB XOPTS(QUOTE SPACE(2))
以下示例显示了单独传递的转换程序选项:
#pragma XOPTS(FLAG(W) SOURCE);
* PROCESS XOPTS(FLAG(W) SOURCE);
*ASM XOPTS(NOPROLOG NOEPILOG)
如果使用 EXEC 作业控制语句的 PARM 操作数来指定选项,那么不需要 XOPTS 关键字,因为此处允许的唯一选项是转换程序选项。 但是,您可以使用 XOPTS ,带或不带关联的括号。 如果使用带括号的 XOPTS ,请确保将所有转换程序选项括起来。 例如,以下格式有效:
PARM=(op1 op2 .. opn)
PARM=(XOPTS op1 op2 .. opn)
PARM=XOPTS(op1 op2 .. opn)
以下格式无效:
PARM=(XOPTS(op1 op2) opn)
为了与先前发行版兼容,可以将关键字 CICS 用作 XOPTS 的替代项,但在转换批处理 EXEC DLI 程序时除外。 请记住,如果使用 PARM 操作数更改 C 或 C++ #pragma 卡处理的缺省边界,那么也应该更改序列边界。 您可以使用 NOSEQUENCE 选项来执行此操作。
注意:
- 对于汇编语言程序, *ASM 语句仅包含转换程序选项。 它们被视为汇编程序的注释。 *PROCESS 语句可以包含高级汇编程序 HLASM 的转换程序或汇编程序选项。
- 转换程序和汇编程序选项不能共存于同一 *PROCESS 语句中。
- *PROCESS 和 *ASM 语句必须位于输入的开头,并且任何汇编程序语句都不得出现在它们之前。 这包括注释和语句,例如
PRINT ON
和EJECT
。 可以按任何顺序包括 *PROCESS 和 *ASM 语句。 - 仅包含转换程序选项的 *PROCESS 语句仅包含转换程序的信息,并且不会传递给汇编程序。
- 包含汇编程序选项的 *PROCESS 语句放置在转换后的程序中。