EXEC CICS 命令格式和编程注意事项

EXEC CICS 命令用于以汇编程序、C®、 或 编写的应用程序。 COBOL PL/I EXEC CICS 命令的一般格式是 EXECUTE CICS(或 EXEC CICS),后面是所需命令的名称,可能还有一个或多个选项。

有关 Java 应用程序中的相应命令,请参阅 JCICS API 与 EXEC CICS API 的映射

EXEC CICS 命令格式

命令格式如下:
EXEC CICS command option(arg)....
其中:
  • 命令描述了所需的操作(例如,READ)。
  • 选项描述了每个功能的许多可选功能。 某些选项后跟括号中的自变量。 您可以按任何顺序编写选项 (包括需要自变量的选项)。
  • 参数 (参数的简称)是一个值,如数据值或名称。 数据值可以是常数;这意味着向 CICS® 发送数据的参数通常是一个数据值。 从 CICS 接收数据的参数必须是数据区。

    一些被描述为数据区的参数既可以发送数据,也可以接收数据。 在这种情况下,必须确保数据区不在受保护存储区内。

EXEC CICS 命令示例
EXEC CICS READ
          FILE('FILEA')
          INTO(FILEA)
          RIDFLD(KEYNUM)
          UPDATE
您必须在每条 EXEC CICS 命令的末尾添加适当的命令结束分隔符,具体取决于编程语言。
表 1. 按语言划分的命令结束分隔符
语言 命令结束定界符
C/C++ 分号 (;)
COBOL END-EXEC 语句
PL/I 分号 (;)
限制:在 C 语言中,空字符可用作字符串的结束标记,但 CICS 并不承认这一点;因此,您绝不能在编码行的中间使用逗号或句号,并在其后使用空格(X'40')。

用户代码注释

如果您想为 EXEC CICS 命令添加注释,可以在最后一个参数后使用句号或逗号作为分隔符,但仅限于汇编程序。

示例
EXEC CICS ADDRESS EIB(MYUEIB),        @F1A

如果在 EXEC CICS 命令中使用了句号或逗号,则下一行必须从第 2 列和第 16 列之间开始,续字符位于第 72 列。 以下行不能在第 17 列之后开始。 如果未添加逗号或句点,那么下一行必须以第 2 列开头或之后的第 71 列结尾,并在第 72 列中使用连续字符。

所有 EXEC CICS 命令的通用选项

NOHANDLERESPRESP2 是可以添加到所有 EXEC CICS 命令中的常用选项,用于处理错误条件。

您可以将 RESP 选项与任何命令一起使用,以测试该命令执行期间是否触发了条件。 在某些命令中,当一个条件可能因不止一个原因而触发时,如果已经指定了 RESP 选项,则可以使用 RESP2 选项来确定条件发生的确切原因。 使用 RESP 意味着 NOHANDLE. 有关 RESP 值的更多信息,请参阅 EXEC 接口块字段

您可以在任何命令中使用 NOHANDLE 选项,指定不对执行该命令后产生的任何条件或注意标识符 (AID) 采取任何操作。 使用 C 或 C++ 语言意味着所有命令都要使用 NOHANDLE

要了解如何在 EXEC CICS 命令中使用 NOHANDLERESP 选项来处理异常条件,请参阅 通过内联代码处理异常条件

无手柄
不对执行命令后产生的任何条件或 AID 采取任何行动。 此选项关闭特定 EXEC CICS 命令调用上的 CICS 默认异常处理。
示例
下面的示例显示了一条使用 NOHANDLE 选项的 EXEC CICS 命令。 如果命令成功执行,将返回 R3 中的 CWA 地址。
EXEC CICS ADDRESS CWA(R3) NOHANDLE
RESP (xxx )
该选项也会关闭 CICS 默认的异常处理,关闭方式与 NOHANDLE 选项相同,但会更新用户定义的全字二进制数据区(xxx )。 命令返回时,它包含一个与可能出现的情况或正常返回值相对应的值,即 xxx=DFHRESP(NORMAL) 。 您可以通过 DFHRESP 测试该值。 有关详细信息,请参阅 通过内联代码处理异常条件

由于 RESP 的使用意味着 NOHANDLE,因此在使用 RESP 和 RECEIVE 命令时要小心。 NOHANDLE 会覆盖 HANDLE AIDHANDLE CONDITION 命令,从而忽略 PF 键的响应。

RESP2 (yyy )
yyy 是用户定义的全字二进制数据区。 从命令返回时,它包含一个值,可进一步限定对某些命令的响应。 与 RESP 值不同,RESP2 值没有相关的符号名称,也没有与 DFHRESP 相对应的内置翻译函数,因此必须测试二进制全字值本身。
示例
EXEC CICS 下面的示例显示了 COBOL 中使用 RESPRESP2 选项。
EXEC CICS WRITEQ TS FROM(abc)
                    QUEUE(qname)
                    NOSUSPEND
                    RESP(xxx)
                    RESP2(yyy)
                    END-EXEC.

NOHANDLERESPRESP2选项没有明确包含在各个命令语法图和选项说明中。

EXEC CICS 命令限制

一些一般限制适用于所有访问用户数据的 EXEC CICS 命令。

  • 调用任何 CICS 服务时,程序必须处于主寻址方式。 主地址空间必须是主地址空间。 传递到 CICS 的所有参数都必须位于主地址空间中。
  • 如果程序使用访问寄存器,那么 CICS 仅保留访问寄存器 2 到 13 ,因为 CICS 代码可以将访问寄存器 0 , 1 , 14 和 15 用于 z/OS® 宏调用。

EXEC CICS 命令语法符号

在 CICS 文档中,EXEC CICS 命令以标准方式呈现。 通过从左到右跟随箭头来解释语法。 有关文档中使用的语法约定的解释,请参阅 CICS 文档中使用的约定和术语

每个命令关键字之前的 EXEC CICS 都不包括在内,也不包括任何命令结束分隔符。