Hace unas semanas comenzamos a ver la forma en que había que implementar la invocación a la utilidad DFSORT para ejecutar su función SORT asociada (ver post Utilidad DFSORT para JCL - 1). Hoy trataremos de completar el estudio iniciado en aquel post.
Recordemos que estuvimos viendo parte de las Cards que había que especificar en el paso DFSORT: SYSOUT, SORTIN, SORTOUT y SORTWK01. A continuación, terminaremos de enumerar las declaraciones necesarias para el funcionamiento del SORT.
5º) Card SYSIN: Son las sentencias de control que se enviarán
en la entrada para el programa. Bajo esta sentencia tendremos que
indicar la función que debe ser implementada por la utilidad, cosa que
se conseguirá incluyendo el comando correspondiente: por ejemplo, SORT
para ordenar, COPY para copiar o MERGE para unir.
//SYSIN DD *
6º) Comando SORT: Con este comando le estamos indicando al
programa DFSORT que realice la ordenación de los registros del fichero
secuencial de entrada y deposite el resultado ordenado en el fichero de
salida.
SORT FIELDS=(1,7,CH,A)
El comando SORT va acompañado de 4 parámetros incluidos en la cláusula FIELDS.
- Parámetro 1: La ordenación se realizará en función del campo clave que comienza en la posición del registro indicada en este parámetro.
- Parámetro 2:
Aquí indicamos la longitud del campo clave que se empleará para
realizar la ordenación. Recordemos que dicho campo comenzaba en la
posición del registro indicada en el parámetro 1.
- Parámetro 3: Especifica el tipo de dato (formato) del campo clave seleccionado.
- Parámetro 4: Indica si la ordenación debe ser ascendente (A) o descendente (D).
En
nuestro ejemplo, la ordenación del fichero JJ00.FACTURAS.UNSORTED.DATA
se realizará de forma ascendente (A) y analizando el contenido, en
formato carácter (CH), del campo que comienza en la posicion 1 y acaba
en la posición 7 (longitud 7).
Una vez provisionadas
todas las cards indicadas, podremos submitir el JCL que incluya este
proceso de ordenación. Si seguimos las instrucciones al pie de la letra,
el job no debería darnos ningún error. En nuestro ejemplo, el
lanzamiento del JCL acabó con la generación del nuevo fichero
JJ00.FACTURAS.SORTED.DATA, donde aparecieron los mismos registros que en
el fichero original, pero ordenados en función del campo incluido entre
las posiciones 1 y 7.
Comentar que esta función de ordenación mediante el programa DFSORT (o ICEMAN) es muy utilizada en la mayoría de las instalaciones actuales.
Es practicamente imposible encontrar, hoy en día, una aplicación cuyos
JCL no utilicen comandos SORTS para realizar la ordenación de sus
ficheros secuenciales de datos.
Pues nada, eso es todo
lo que queríamos comentaros sobre la utilidad DFSORT y, en particular,
sobre su comando SORT. Ya sabéis que podéis preguntarnos cualquier duda
que os surja al respecto.
Saludos.
Cual es la diferencia de dfsort y sort
ResponderEliminarHola, Aly,
ResponderEliminarTe comento.
Por un lado, DFSORT hace referencia a la herramienta (el producto) de IBM que sirve para realizar operaciones de sort, merge y copy (entre otras adicionales). Otras empresas también tienen productos similares.
Por otro lado, SORT hace referencia al comando que hay que ejecutar para realizar la función de ordenación. A veces, SORT también se utiliza para referirnos de forma genérica a las herramientas de ordenación (sin especificar el DFSORT de IBM, el SYNCSORT de Syncsort o el producto de cualquier otra empresa).
Por cierto, comentar que DFSORT incluye también las utilidades ICEGENER, ICETOOL y OUTFIL.
Espero que con lo comentado haya quedado clara la diferencia entre un concepto y otro. Si no es así, dímelo e intentaré explicarlo de otra forma.
Saludos.