Contadores y totales por campo clave en un Sort

Cuando en un Sort queremos obtener totales o contadores por un campo clave, y además deseamos mostrarlos con formato de informe o con un texto de acompañamiento, podemos utilizar los parámetros de informe de la instrucción OUTFIL. Los analizamos en un artículo anterior, pero aquí solo vamos a usar los que necesitamos para nuestro propósito….

Fecha del sistema en un JCL (Sort)

Para incluir la fecha de sistema en un Sort, ya sea al construir los registros (INREC, OUTREC, BUILD) o en una condición (INCLUDE, OMIT, IFTHEN, etc.), tenemos disponibles las siguientes constantes: Constante Formato DATE1  C’yyyymmdd’ DATE1(c) C’yyyycmmcdd’ DATE1P P’yyyymmdd’ DATE2 C’yyyymm’ DATE2(c) C’yyyycmm’ DATE2P P’yyyymm’ DATE3 C’yyyyddd’ DATE3(c) C’yyyycddd’ DATE3P P’yyyyddd’ DATE4 C’yyyy-mm-dd-hh.mm.ss’ DATE5 C’yyyy-mm-dd-hh.mm.ss.nnnnnn’…

Preguntas y respuestas sobre JOINKEYS

1 – ¿Hay que ordenar previamente los ficheros? No, ya que JOINKEYS los ordena automáticamente. De todas formas, si sabemos que los ficheros ya están ordenados podemos usar el operador SORTED para reducir el tiempo de ejecución del paso. Con este operador se evita la ordenación, aunque JOINKEYS comprueba que los ficheros estén realmente ordenados…

Numerar registros y añadir contador en un Sort

Numerar registros Al procesar un fichero, muchas veces surge la necesidad de numerar los registros. Es decir, incluir un en cada registro un número secuencial que identifique la posición del mismo en el fichero. Con DFSORT podemos hacerlo incluyendo el operador SEQNUM al construir un registro mediante BUILD/INREC/OUTREC. SEQNUM permite indicar la longitud y el…

Más de un registro de salida por cada registro de entrada en un Sort

En la definición de los registros de salida de un sort con BUILD se puede incluir una barra (carácter “/”) para insertar un registro en blanco. Los campos y/o literales que se incluyan a continuación formarán parte del nuevo registro. Por defecto se inserta un único registro. Si añadimos un número delante de la barra,…

Crear informes con un Sort

En este artículo vamos a introducir las sentencias de control del parámetro OUTFIL del Sort que permiten generar un fichero de salida con formato de informe. Las principales son: HEADER1 Cabecera general del informe. HEADER2 Cabecera de página. HEADER3 Cabecera de sección. TRAILER1 Pie final del informe TRAILER2 Pie de página. TRAILER3 Pie de sección….

Comprobar si un fichero está vacío con un Sort

En un Sort es posible forzar un código de retorno determinado (0, 4 u 8) si el SORTOUT (fichero de salida) no tiene registros. Se hace mediante la opción NULLOUT = RCn, donde n puede tomar el valor 0, 4 u 8 (el valor por defecto es 0). Gracias a esta utilidad podemos construir un…

Conversión de fichero de longitud variable a fija y viceversa

La conversión de un fichero de longitud variable a fija y viceversa en un Sort se hace mediante las opciones VTOF y FTOV del parámetro OUTFIL del Sort. Recordemos que el parámetro OUTFIL permite generar de 1 a n ficheros de salida. Cada uno de estos puede ser construido de forma independiente mediante instrucciones BUILD…

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…

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…