JCL: Crear fichero de entrada/salida cuando no exista

En un artículo anterior veíamos la forma de evitar el fallo de un JCL por la inexistencia de un fichero. Se trataba de crear un paso IDCAMS LISTCAT para generar un retorno 0 en caso de encontrar el fichero y 4 en caso contrario. Esto nos permitía condicionar el resto de pasos al código de retorno obtenido.

Otras veces lo que nos interesa no es evitar la ejecución del paso sino crear el fichero cuando no exista. Por ejemplo, cuando ejecutamos un programa que actualiza DB2 y usamos un fichero de control de entrada/salida para controlar los registros que se han actualizado con COMMIT y poder rearrancar desde el último tratado en caso de error. Dicho fichero no existirá en la primera ejecución, por lo que habrá que crearlo. Para ello lo definiremos con DISP=(MOD,CATLG,CATLG).

Ejemplo de ficha:

//FICHER1 DD DSN=USUARIO.NOMJCL.%%$ODATE.CONTROL
// DISP=(MOD,CATLG,CATLG),
// UNIT=SYSDA,SPACE=(TRK,(10,5),RLSE),
// DCB=(RECFM=FB,LRECL=11,BLKSIZE=0,DSORG=PS)

Este fichero se puede utilizar en un programa COBOL de las siguientes formas dependiendo del tipo de apertura:

    • OPEN INPUT: Lectura a partir del primer registro.
    • OPEN EXTEND: Escritura a partir del último registro.
    • OPEN OUTPUT: Escritura borrando previamente el contenido del fichero.



Deja un comentario