CICS 值数据区 (CVDA)

CVDA (CICS 值数据区) 是 CICS ® 为其分配了一组特定且有限的有意义值的自变量。 这些值都已命名,以使它们更直观且易于记忆,同时也是为了保持用户程序和 CICS 符号之间的接口,这样在版本和平台的更改时就不需要修改程序。

某些 CVDA 将信息发送到 CICS。 发送方 CVDA 是数据值的特殊情况,数据值的规则适用。 其他用户从 CICS 返回信息,您必须将这些规则用于数据区。 如果有任何关于信息流动方向的问题,你可以从选项描述中使用的动词中看出来。 指定表示将信息发送到 CICS (即,应用数据值规则); 返回指示 CICS 将返回自变量中的信息 (应用数据区规则)。

CICS 提供用于将 CVDA 值名称转换为相应数字表示的代码。 在内部, CVDA 存储为全字二进制数字,您必须始终为接收 CVDA 值的选项提供全字二进制区域。

发送 CVDA 值的一种方法是对相应的值进行命名 (该选项的名称包含在该值的名称中)。 例如:
EXEC CICS SET PROGRAM (TAXPGM)
              DPLSUBSET END-EXEC

将 EXECUTIONSET 选项值设置为 DPLSUBSET。 EXECUTIONSET 确定允许程序使用的命令集。 它有两个可能的值 :DPLSUBSET (将程序限制为分布式程序链接调用的程序中允许的命令) 和 FULLAPI (不限制命令集)。

替代方法是使用 CICS 提供的 DFHVALUE 函数,该函数将内部表示与值名称相关。 例如,此代码等同于上面的 COBOL 语句:
MOVE DFHVALUE(DPLSUBSET) TO TAXAPI.
EXEC CICS SET PROGRAM (TAXPGM)
          EXECUTIONSET(TAXAPI) END-EXEC.

当程序逻辑很复杂时,这种技术更容易使用。

当程序需要解释作为 CVDA 返回的值时,也可以使用 DFHVALUE。 例如,如果需要根据 EXECUTIONSET 值执行逻辑,那么将编写类似如下的内容:
EXEC CICS INQUIRE PROGRAM (TAXPGM)
          EXECUTIONSET (TAXAPI) END-EXEC.
IF TAXAPI = DFHVALUE(FULLAPI) PERFORM STND-INIT
ELSE PERFORM REMOTE-INIT.

所有命令使用的 CICS 值数据区 列出具有相应数字值的所有 CVDA 值名称。 但是,这些仅供参考; 您应该在代码中使用值名称和 DFHVALUE ,以使其与版本和平台无关。