La estructura general de un SORT es la siguiente:
//SORT001 EXEC PGM=SORT,PARM=('DYNALLOC=(SYSALLDA,32)')
//SORTIN DD DSN=nombre.fichero.entrada1,DISP=SHR
// DD DSN=nombre.fichero.entrada2(opcional),DISP=SHR
//SORTOUT DD DSN=nombre.fichero.salida1,
// DISP=(,CATLG,DELETE),SPACE=(CYL,(500,100))
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
…
…
PGM=SORT --> Indica el programa a utilizar, en este caso el SORT.
PARM=('DYNALLOC=(SYSALLDA,32)') --> Cantidad de memoria que se da a la ejecución del paso. Si se queda corto, aumentarla en valores de 8,12,32,64,128, 256 (como las memorias RAM)
SORTIN --> Ficheros de entrada
SORTOUT --> Ficheros de salida
SYSIN --> Indica el tipo de sort a realizar, las opciones disponibles son muchas y muy variadas, pudiendo utilizarse varias juntas en un mismo paso. Algunas de ellas son SORT, SUM, OMIT, INCLUDE, INREC, OUTREC, OUTFIL, OPTION … .
En este documento se explica en detalle algunas de estas funciones:
INREC
INREC FIELDS --> Toma los registros del fichero de entrada y los guarda formateados en el fichero de salida. A diferencia del OUTREC, el INREC modifica los registros de entrada antes de ordenarlos.
//SORT001 EXEC PGM=SORT,PARM=('DYNALLOC=(SYSALLDA,32)')
//SORTIN DD DSN=nombre.fichero.entrada1,DISP=SHR
// DD DSN=nombre.fichero.entrada2,DISP=SHR
//SORTOUT DD DSN=nombre.fichero.salida1,
// DISP=(,CATLG,DELETE),SPACE=CYL,500,100))
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=...
INREC FIELDS=(I,L,D(opcional))
I – Inicio. Posición donde empieza el campo.
L – Longitud máxima del campo.
D – Dato a incluir (opcional).
Hay diferentes formas y ejemplos de utilizar el INREC, no voy a explicarlas pues se realizan del mismo modo que en el OUTREC (Ir al artículo):
- FORMATEO DE FICHEROS - Seleccionar y alterar los campos de los registros del fichero de entrada.
– CONVERSIÓN DE DATOS - Permite cambiar el formato de los campos. Se realiza del siguiente modo:
- CHANGE – Cambiar datos - Sustituir datos del fichero por otros.
- CONDICIONES - IFTHEN. Incluir condiciones
NOTA:La forma de codificar es la misma que en el OUTREC pero poniendo INREC. Lo único que se ha de tener en cuenta es acordarse que va a realizar la operación antes de ordenar el/los fichero/s de entrada. En algunas operaciones hay que tener en cuenta esta situación porque el resultado puede variar.
Este comentario ha sido eliminado por el autor.
ResponderEliminarExcelente documentación, mas de una ves me ha ayudado a resolver los problemas que tengo.
ResponderEliminarMuchas gracias.
Gracias por leernos jccisneros!
ResponderEliminar