Áreas de datos de valores de CICS (CVDA)

Un CVDA CICS® data area) es un argumento al que CICS ha asignado un conjunto específico y limitado de valores significativos. A estos valores se les asigna un nombre, para que sean fáciles de recordar y para hacer que la interfaz entre los programas de usuarios y CICS sea simbólica, de forma que los cambios aplicados a esa versión o plataforma no requieren modificaciones en el programa.

Algunos CVDA envían información a CICS. Un CVDA emisor es un caso especial de un valor de datos, y se aplican las reglas de los valores de datos. Otros devuelven información de CICS, y debe utilizar las reglas para las áreas de datos. Si hay alguna duda sobre la dirección en la que fluye la información, se puede saber por el verbo utilizado en la descripción de la opción. Specifies significa que está enviando información a CICS (es decir, se aplican reglas de valor de datos); returns indica que CICS devolverá información en el argumento (se aplican reglas de área de datos).

CICS proporciona el código que convierte los nombres de los valores CVDA en las representaciones numéricas correspondientes. Internamente, los CVDA se almacenan como números binarios de palabra completa, y siempre debe proporcionar un área binaria de palabra completa para las opciones que reciben valores CVDA.

Una forma de enviar un valor CVDA es nombrar el valor apropiado (el nombre de la opción está implícito en el nombre del valor). Por ejemplo:
EXEC CICS SET PROGRAM (TAXPGM)
              DPLSUBSET END-EXEC

establece el valor de la opción EXECUTIONSET en DPLSUBSET. EXECUTIONSET determina el conjunto de comandos que el programa puede utilizar. Tiene dos valores posibles: DPLSUBSET, que restringe un programa a los comandos permitidos en un programa invocado por un enlace de programa distribuido, y FULLAPI, que no restringe el conjunto de comandos.

La alternativa es utilizar la función DFHVALUE CICS, que relaciona la representación interna con el nombre del valor. Por ejemplo, este código es equivalente a la instrucción anterior « COBOL »:
MOVE DFHVALUE(DPLSUBSET) TO TAXAPI.
EXEC CICS SET PROGRAM (TAXPGM)
          EXECUTIONSET(TAXAPI) END-EXEC.

Esta técnica es más fácil de utilizar cuando la lógica del programa es compleja.

También se utiliza DFHVALUE cuando el programa necesita interpretar un valor devuelto como CVDA. Por ejemplo, si necesitara realizar una lógica basada en el valor EXECUTIONSET, escribiría algo como esto:
EXEC CICS INQUIRE PROGRAM (TAXPGM)
          EXECUTIONSET (TAXAPI) END-EXEC.
IF TAXAPI = DFHVALUE(FULLAPI) PERFORM STND-INIT
ELSE PERFORM REMOTE-INIT.

Las áreas de datos CICS utilizadas por todos los comandos enumeran todos los nombres de valores CVDA con los valores numéricos correspondientes. Sin embargo, estos valores son sólo de referencia; debería utilizar nombres de valores y DFHVALUE en su código, para mantenerlo independiente de la versión y la plataforma.