Uso de variables en un JCL

Para definir una variable en un JCL y asignarle valor se utiliza el comando SET:

// SET PROGRAMA=CARGACLI
// SET FICHENT=FF.CLIENTES.ENT
// SET FICHSAL=FF.CLIENTES.SAL
// SET NUEVO='DISP=(NEW,CATLG,DELETE)'

Las variables así definidas se pueden usar en cualquiera de los siguientes pasos del JCL añadiendo un ‘&’ a su nombre:

//CLIENTES  EXEC PGM=&PROGRAMA
//SYSOUT    DD SYSOUT=*
//ENTRADA   DD DSN=&FICHENT,DISP=SHR
//SALIDA    DD DSN=&FICHSAL,&NUEVO,
//                 SPACE=(CYL,(5,1),RLSE),
//                 DCB=(LRECL=350,RECFM=FB)

Es importante no confundir las variables de JCL con las variables y constantes simbólicas de los planificadores (Control-M, TWS-OPC, etc.). Estas últimas van precedidas por ‘%%’ y se definen dentro de un comentario.  Por ejemplo, así se define una variable de Control-M:

//* %%SET %%FECHASTA  =  2013-04-03

Esta variable podríamos utilizarla en el INCLUDE de un Sort:
INCLUDE COND=(1,10,LE,C'%%FECHASTA')

Pero a diferencia de las variables de JCL, estas variables solo serán sustituidas por su valor si lanzamos el job a través de Control-M. Si lo lanzamos mediante un SUBMIT se producirá un JCL ERROR.

Deja un comentario