Descarga de una tabla con DSNTIAUL

La utilidad DB2 DSNTIAUL permite realizar una descarga de tabla a fichero fácilmente. Tiene menos restricciones de seguridad que la utilidad UNLOAD, por lo que es ideal para hacer descargas en entornos DB2 de prueba. En su forma más sencilla se ejecutaría con un JCL como el siguiente: //DESCARGA EXEC PGM=IKJEFT01,DYNAMNBR=20 //STEPLIB DD DSN=PRE.SDSNLOAD,DISP=SHR //…

SYMNAMES: Nombres simbólicos en un Sort

En este artículo vamos a introducir el uso de nombres simbólicos (SYMNAMES) en un SORT para hacer referencia a campos y constantes. Se trata de una facilidad que hace más legibles  los Sort y facilita su mantenimiento. Por ejemplo, supongamos que tenemos un fichero con la siguiente estructura: Campo Pos. Inicio Longitud Formato COBOL COD_FACTURA…

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=*…

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…

Condicionar pasos de un JCL: parámetro COND

En este artículo vamos a examinar la forma “clásica” de condicionar la ejecución de un paso de JCL: el parámetro COND. Al incluir COND en un paso, podemos comprobar el código de retorno de uno o varios pasos anteriores mediante expresiones relacionales. Si alguna de las expresiones es verdadera, entonces el paso NO se ejecuta…

Condicionar pasos de un JCL: estructura IF/THEN/ELSE/ENDIF

Para condicionar la ejecución de un paso de un JCL al resultado de los pasos anteriores tenemos dos opciones: La estructura IF/THEN/ELSE/ENDIF El parámetro COND En este artículo vamos a analizar la primera de ellas, que es la más sencilla y la recomendada por IBM en su manual oficial. Su sintaxis es la siguiente: //IF…

Cruce de ficheros con Joinkeys avanzado

En un artículo anterior vimos un ejemplo de Joinkeys en su forma más básica. A continuación vamos a introducir el resto de posibilidades que ofrece esta aplicación que se ejecuta dentro de la utilidad sort del mainframe (tanto DFSORT como su clon Syncsort) JNF1CNTL Y JNF2CNTL: DD para incluir sentencias de control (INCLUDE, OMIT, INREC…

Cruce de ficheros con Joinkeys básico

El modo más sencillo de realizar un enfrentamiento de ficheros por JCL es usando la utilidad Joinkeys de DFSORT. Está disponible en z/OS desde 2009. Hasta entonces solo era posible enfrentar ficheros mediante Icetool usando el operador SPLICE. Veamos un ejemplo sencillo de Joinkeys para cruzar dos ficheros y generar un fichero de salida con…

Cruce de ficheros con ICETOOL (Splice)

Si queremos montar un JCL que cruce ficheros mediante SORT, sin utilizar un programa adicional, tenemos varios opciones. Una de ellas es emplear el operador SPLICE del ICETOOL, disponible desde la actualización de DFSORT de 2003. Veamos un ejemplo extraído del manual Smart DFSORT Tricks de IBM. Tenemos dos ficheros con dos listas de nombres:…