Comprobar si un fichero está vacío con ICETOOL

Al diseñar un JCL, muchas veces interesa que ciertos pasos no se ejecuten si un determinado fichero está vacío, algo que podemos comprobar fácilmente mediante el operador COUNT de ICETOOL:

//-----------------------------
//PASO1 EXEC PGM=ICETOOL
//IN DD DSN=FICHERO,DISP=SHR
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//TOOLIN DD DATA
COUNT FROM(IN) EMPTY
/*
//-----------------------------
//INICOND IF PASO1.RC=0  THEN
//PASO2   EXEC PGM=NOVACIO
//FINCOND ENDIF

PASO1 devolverá código de retorno 12 si el fichero está vacío, lo que nos permite controlar mediante IF o COND la ejecución del resto de pasos. En este ejemplo, PASO2 se ejecutaría sólo si el fichero no está vacío.

12 es el código de retorno por defecto, pero es posible cambiarlo a 8 o 4:

COUNT FROM(IN) EMPTY RC8
COUNT FROM(IN) EMPTY RC4

También se puede invertir la condición para que el código de retorno distinto de 0 se devuelva si el fichero NO está vacío:

COUNT FROM(IN) NOTEMPTY RC4

Devolvería código de retorno 4 si el fichero tiene datos y 0 si está vacío.

Deja un comentario