Sintaxis de pseudo JCL

El aspecto del pseudo-JCL que utiliza el servidor de construcción z/OS es parecido al del JCL estándar con algunas extensiones y restricciones. En este panel de ayuda, a las líneas de script (una línea de pseudo-JCL) se las llama carta.

Las diferencias principales entre el pseudo-JCL que se utiliza en los scripts de construcción z/OS y el JCL que se utiliza para someter un trabajo z/OS son las siguientes:

Están soportados los tipos siguientes de cartas:

CALL
Define un paso de trabajo nuevo y especifica el trabajo JCL externo a ejecutar.

Sintaxis:
Sintaxis CALL de pseudo-JCL

Donde:

label
El nombre del paso.
jcl
El archivo JCL externa a ejecutar. Especifique un conjunto de datos secuencial totalmente calificado o un miembro de un PDS especificado en la sentencia DD llamado CCUPROC.
WAIT
Especifica si el servidor de construcción debe esperar a la consecución de este paso antes de ejecutar el paso siguiente.
code
Es el valor que se va a probar con el código de retorno en el paso anterior.
op
Es el operador de comparación.
step
Es el nombre del paso que emite el código de retorno.
Tenga en cuenta los aspectos siguientes al llamar al JCL externo desde el pseudo-JCL:
  • El contenido del archivo JCL debe ser una corriente de trabajo autónoma con una carta de trabajo adecuada.
  • El JCL especificado se somete a ejecución, después de modificarlo para sustituir las variables conocidas por el pseudo-JCL.
  • Si se especifica WAIT=NO (o está implícito por omisión) la construcción continúa con cualquier paso siguiente, dando por supuesto que la condición de retorno del JCL llamado es 0. En este caso, el trabajo JCL llamado finaliza de forma independiente y el servidor de construcción no está al tanto de esa ejecución.
  • Si se especifica WAIT=YES, debe haber una variable definida con la información siguiente definida en la carta VARS--
      CCULIB=buildServerLoadLibrary
    buildServerLoadLibrary
    La biblioteca de carga del servidor de construcción.
  • Para WAIT=YES, el servidor de construcción modifica el JCL a someter y añade un paso al final para capturar la finalización del trabajo. Este paso escribe un valor de 0 a 1 en un conjunto de datos temporal basado en el último paso del trabajo sometido. El servidor de construcción utiliza este valor para el código de retorno del paso.

    Excepto 0 y 1, no hay ningún código de retorno posible y el trabajo debe finalizar normalmente para que el código de retorno esté disponible. El servidor de construcción espera un máximo de 2 minutos a que finalice el trabajo y después supone que el trabajo ha finalizado con el código de retorno 1.

A continuación se proporciona un ejemplo de un archivo pseudo-JCL que utiliza la sentencia CALL:
//V VARS CCULIB=SYS1.SCCULOAD
//T0 EXEC PGM=IEFBR14
//T1 CALL MEMBER=MISC.JCL(COBCOMP),WAIT=YES,COND=(0,EQ,T0)
 
//T2 EXEC PGM=IEFBR14,COND=(0,EQ,T1) 
// 
EXEC
Define un paso de trabajo nuevo y especifica el nombre del programa a ejecutar.

Sintaxis:


Sintaxis de EXE de pseudo-JCL

Donde:

label
Es el nombre del paso.
program
Es el nombre de un módulo de carga ejecutable.
script name
Es el nombre de un script pseudo-JCL existente en el PDS asignado por el nombre de definición de datos (ddname) CCUPROC cuando se inicia el servidor de construcción.
parameter string
Es una serie de parámetro que puede contener espacios incorporados y comillas. Si desea incorporar unas comillas en la serie, especifíquelas entre apóstrofes ('"') o como comillas dobles (""). Si desea incorporar un apóstrofe en la serie, especifíquelo como dos apóstrofes. Por ejemplo, si el valor de la variable de sustitución X es it y el pseudo-JCL tiene el campo PARM='&X''s', el campo en el pseudo-JCL adquiere el valor siguiente:
PARM='it's'
code
Es el valor que se va a probar con el código de retorno en el paso anterior.
op
Es el operador de comparación.
step
Es el nombre del paso que emite el código de retorno.
DD
Define la definición de datos para cualesquiera archivos de entrada o de salida. Los datos de dentro de la corriente van a continuación de una sentencia DD * y finalizan con un símbolo /*.

Sintaxis:


Sintaxis DD de pseudo-JCL

Donde:

label
Es el nombre de DD.
dsn
Es el nombre del conjunto de datos.
stat
es el estado: NEW (el valor por omisión), OLD, SHR (compartido) o MOD (modificado).
ndisp y adisp
Son las disposiciones normales y anormales: DELETE, KEEP (el valor por omisión), CATLG (catalogar) o UNCATLG (descatalogar).
rlen
Es la longitud del registro en bytes.
bsize
Es el tamaño del bloque en bytes.
rfmt
Es el formato de registro.
data-set organization
Es PS o PO.
unit type
Es el tipo de unidad.
unit
Es la unidad de asignación: TRK, CYL o un número igual al tamaño de bloque.
pri
Es el número primario de unidades de asignación.
sec
Es el número secundario de unidades de asignación.
dir
Es el número de bloques de directorio para asignaciones de PDS.
volume
Especifica el volumen en el que desea asignar el conjunto de datos. Cuando DSN especifica un nombre de conjunto de datos permanente y DISP especifica NEW por omisión se utiliza el volumen asignado por el sistema.
extension
Especifica una extensión de nombre de archivo y se utiliza para correlacionar los nombres de archivo de mensajes, de entrada y de salida con el ddname destino. Por ejemplo:
//USERLIB DD DSN=MY.HEADERS,DISP=SHR,CCUEXT=(H,HPP)
Esto especifica que todos los archivos de entrada y dependientes con la extensión .h y .hpp (no sensibles a las mayúsculas y minúsculas) se colocarán en el conjunto de datos asignado al ddname USERLIB. La misma extensión puede aparecer solamente una vez en el script JCL.
CCUOUT
Especifica que el ddname correspondiente es una conjunto de datos secuencial o un miembro de un conjunto de datos particionado (que normalmente contiene listados de mensajes) que necesita devolverse al cliente EGL. Por ejemplo:
//COMPILE EXEC PGM=CBCDRVR,..
//SYSIN ..
//SYSOUT DD CCUEXT=CCUOUT,DISP=(NEW,DELETE),SPACE=(32000,(30,30)),
//          DCB=(RECFM=VB,LRECL=137,BLKSIZE=882)
Después de ejecutar el programa CBCDRVR, se leerá el contenido de SYSOUT y se devolverá al cliente como el archivo COMPILE.SYSOUT en el sistema de archivos del cliente.
CCUSTD
Especifica que los ddname designados con este valor se escribirán en STDOUT en el cliente de construcción. Por ejemplo:
//COMPILE EXEC PGM=CBCDRVR,..
//SYSIN ..
//SYSOUT DD CCUEXT=CCUSTD,DISP=(NEW,DELETE),SPACE=(32000,(30,30)),
//          DCB=(RECFM=VB,LRECL=137,BLKSIZE=882)
Después de ejecutar el programa CBCDRVR, se leerá el contenido de SYSOUT, se colocará en STDOUT y se devolverá al cliente como el archivo COMPILE.SYSOUT en el sistema de archivos del cliente.
CCUERR
Especifica que los ddname designados con este valor los colocará en STDERR el cliente ccubldc. Por ejemplo:
//COMPILE EXEC PGM=CBCDRVR,..
//SYSIN ..
//SYSOUT DD CCUEXT=CCUERR,DISP=(NEW,DELETE),SPACE=(32000,(30,30)),
//          DCB=(RECFM=VB,LRECL=137,BLKSIZE=882)
Después de ejecutar el programa CBCDRVR, se leerá el contenido de SYSOUT, se colocará en STDERR y se devolverá al cliente como el archivo COMPILE.SYSOUT en el sistema de archivos del cliente.
ENQ
Si se establece en YES, indica al servidor de construcción que debe poner en cola el nombre del conjunto de datos que asigna la carta DD. Esto a veces es necesario cuando el script de construcción escribe en un conjunto de datos particionado al que pueden acceder simultáneamente más de una petición de construcción. Si un script de construcción pone en cola un nombre de conjunto de datos que previamente haya puesto en cola un script de construcción que todavía esté activo, el script de construcción se pone en cola y se va reintentando periódicamente. Es posible que con esto se sobrepase el tiempo de espera de la petición de construcción si un gran número de construcciones simultáneas están en cola en el mismo nombre de conjunto de datos.
VARS
Especifica valores por omisión para variables de sustitución.

Sintaxis:


Sintaxis de VARS de pseudo-JCL

Donde:

label
Es el nombre del paso.
name
Es el nombre de una variable de sustitución.
value
Es la serie que proporciona para el valor de la variable de sustitución.

Ejemplo:

//DEFAULTS VARS EZEPID=USER,
// SYSTEM=ZOSCICS

Puede utilizar variables de sustitución para modificar las cartas.

Conceptos relacionados
Script de construcción
Variables de sustitución de pseudo JCL

Tareas relacionadas
Modificar scripts de construcción EGL para z/OS

Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.