May 19

DFSORT (Programas del MVS)

compártelo en Facebook!

esta utilidad realiza varias funciones

* Ordenación de registros en un fichero
* Unión de dos o más ficheros (un máximo de 16) de entrada en uno de salida. Se van incluyendo en el SORTINnn del ejemplo.
* Copia de ficheros sin ordenación ni mezclar ficheros.
* Eliminación de registros de un fichero.
* Reformateo de registros de un fichero.
* Acumular los valores de los registros.

Vamos a ver unos ejemplos (Ordenación, Unión y Copia) para poder especificar cuáles son las sentencias control para la utilidad SORT.

Ordenación:

01             1         2         3         4         5         6         7
02    ----+----0----+----0----+----0----+----0----+----0----+----0----+----0--
03    //PRUEBJOB JOB
04    //PROGRAMA EXEC PGM=SORT
05    //SYSOUT   DD SYSOUT=*
06    //SYSIN    DD   *
07           SORT FIELDS=(1,5,CH,A,7,8,CH,D)
08           INCLUDE COND=(1,5,CH,EQ,'00001')
09           SUM FIELDS=(14,9,PD)
10           OUTREC FIELDS=(1,100)
11    //SORTIN   DD DSN=TUTORIAL.PRUEBA.FICHERO1,DISP=SHR
12    //SORTOUT  DD DSN=TUTORIAL.PRUEBA.FICHERO2,DISP=...
13    //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,(1,1),RLSE)

* SYSOUT: fichero de salida donde la utilidad SORT deja los mensajes de la ejecución.
* SORTIN: fichero de entrada que se quiere ordenar hasta un total de 99 ficheros.
* SORTOUT: fichero de salida ya ordenado y reformateado.
* SORTWKnn: ficheros de trabajo que se utilizan para que el sistema tenga mejor rendimiento al realizar la ordenación del fichero.
* SYSIN: codificación de las sentencias de control:
o SORT FIELDS=(inicio, longitud, tipo, orden):
Indica los campos por los que se quiere ordenar el fichero. Dichos campos se especifican mediante su posición de inicio y su longitud, el orden puede ser Ascendente o Descendente, y el tipo de campo: CH (carácter); BI (binario); PD (empaquetado); ZD (decimal).
o INCLUDE COND=(inicio, longitud, tipo, operador comparación, valor)
Incluye únicamente los registros que cumplen la condición especificada, en este caso que sean iguales a ‘00001’. Para poner varias condiciones, se utilizan los operadores lógicos (AND, OR) separados por comas.
o OMIT COND
Se excluyen los registros que cumplen una condición especificada. Tiene el mismo formato que la sentencia INCLUDE COND.
o SUM FIELDS=(posición inicio campo, longitud, tipo)
Permite sumar los valores del campo que comienza en la posición indicada y que ocupa los bytes indicados. Sólo se pueden sumar campos numéricos, empaquetados o decimales.
o SUM FIELDS=NONE
Se eliminan registros duplicados.
o OUTREC FIELDS=(posición, longitud)
Se utiliza para reformatear el registro de salida, en este caso le decimos que solo saque en el fichero de salida desde la posición 1 ocupando 100. Reformatea los registros después de ordenar.
o INREC FIELDS
Reformatea los registros antes de ordenar. Tiene el mismo formato que la sentencia OUTREC FIELDS.

Unión:

01             1         2         3         4         5         6         7
02    ----+----0----+----0----+----0----+----0----+----0----+----0----+----0--
03    //PRUEBJOB JOB
04    //PROGRAMA EXEC PGM=SORT
05    //SYSOUT   DD SYSOUT=*
06    //SYSIN    DD   *
07           MERGE FIELDS=(1,5,CH,A,7,8,CH,D)
08           INCLUDE COND=(1,5,CH,GT,6,5,CH)
09           SUM FIELDS=(14,9,PD)
10           OUTREC FIELDS=(1,100)
11    //SORTINnn DD DSN=?,DISP=SHR
12    //SORTOUT  DD DSN=TUTORIAL.PRUEBA.FICHERO2,DISP=...

Copia:

01             1         2         3         4         5         6         7
02    ----+----0----+----0----+----0----+----0----+----0----+----0----+----0--
03    //PRUEBJOB JOB
04    //PROGRAMA EXEC PGM=SORT
05    //SYSOUT   DD SYSOUT=*
06    //SYSIN    DD   *
07           SORT FIELDS=COPY
08           INCLUDE COND=(1,5,CH,GT,6,5,CH)
09           OUTREC FIELDS=(1,100)
10    //SORTIN   DD DSN=TUTORIAL.PRUEBA.FICHERO1,DISP=SHR
11    //SORTOUT  DD DSN=TUTORIAL.PRUEBA.FICHERO2,DISP=...

link original: http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=JCLIntro

Enlace permanente a este artículo: http://www.borhaps.es/sort/

publi

Deja un comentario