Variables definidas por el usuario

La interfaz de usuario 3270 mejorada da soporte al uso de variables definidas por el usuario. Las variables se pueden crear y establecer en cualquier lugar de la definición de un espacio de trabajo mediante una sentencia SET. Además, los nombres de columna especificados utilizando la palabra clave KEYCOLS en un espacio de trabajo invocado anteriormente se pueden utilizar como variables en paneles siguientes, sin necesidad de utilizar una sentencia SET.
Las variables se pueden establecer en cualquier lugar de una definición, pero se procesan de forma diferente en función del lugar en el que aparezca la sentencia SET.
  • Las variables establecidas en una sección ALIASCOMMANDS se pueden utilizar en mandatos de vía de acceso rápida desde dicho espacio de trabajo, si SCOPE=LOCAL, o desde cualquier espacio de trabajo después de que se hayan definido y hasta que se suprimen, si SCOPE=GLOBAL.
  • Las variables establecidas en secciones PROLOG se asignan durante la ejecución de PROLOG. La asignación se produce después de cualquier incorporación y antes de la recopilación de datos. Si hay un ejecutable REXX, los mandatos SET se evalúan, según su ubicación, antes o después de la llamada al ejecutable REXX.
  • Las variables establecidas en secciones EPILOG se asignan durante la ejecución de EPILOG. La asignación se produce después de la recopilación de datos o evaluación de estado y antes de que se cree la pantalla. Si hay un ejecutable REXX, los mandatos SET se evalúan, según su ubicación, antes o después de la llamada al ejecutable REXX.
  • Las variables establecidas en una sección ONACTION se ejecutan directamente después de la asignación de la columna de clave y justo antes de cualquier navegación resultante de un mandato de acción. (Las columnas de clave se asignan antes de navegar hacia delante si se ejecuta cualquier mandato de acción desde un determinado subpanel.)
  • Las variables establecidas en cualquier otro lugar se procesan cuando se carga el espacio de trabajo.
Los nombres de variables pueden contener un máximo de 16 caracteres.
Nota: No cree variables que empiecen por Z (o z). Esta letra está reservada para las variables del sistema.
Los datos de variables pueden tener un máximo de 64 caracteres y pueden establecerse en valores especificados o en otras variables. Por ejemplo:
SET &var1=mytext
SET &var2=&colname
Existe un límite de 20 mandatos SET diferidas para un espacio de trabajo. (Los mandatos SET diferidos son los contenidos en las secciones PROLOG, EPILOG y ONACTION.)

Ejemplo: nombres de columna como variables

Los nombres de columna especificados utilizando la palabra clave KEYCOLS en un panel invocado previamente se pueden utilizar como variables en siguientes definiciones de paneles, sin necesidad de utilizar una sentencia SET. Por ejemplo, si los siguientes nombres de columna se han establecido en el panel anterior:

KEYCOLS='TRANID,USERID,TASKNO,TERMID,CICSNAME,SYSTEMID,ORIGINNODE'
uno o varios de estos nombres se pueden utilizar como variables en una cabecera, consulta o cualquier texto en un panel al que se navega desde el primer panel. Por ejemplo:

HEADER='Details for Transaction &TRANID Task &TASKNO'  
QUERY='SELECT TRANID, TASKNO, RTYPE, RNAME, STATE, CPUTIME, .SUSPTIME,   
ELAPTIME, CICSTRD.USEDA16, USEDB16,                
ATCHTIME, TIMEOFSU, SUSPDUE, FACTYPE, FACID, ORIGTRID, UMBTRID, 
QUEUE, FIRSTPGM, CURRPGM, USERID, EXECCMD, PURGEABL, PURGSTAT,
SUSPTYPE, UOWSTATE, 
FROM OMCICS.CICSTRD,
WHERE ORIGINNODE = "&SYSTEMID.&CICSNAME"
AND CICSTRD.TRANID = "&TRANID"
AND CICSTRD.TASKNO = "&TASKNO"'.