Está en la página 1de 4

PRACTICA JCL 1-Realizar un paso de borrado a travs de la utilidad IDCAMS.

Como identificacin del JOB, pueden utilizar la siguiente lnea:

//DESIPGBX JOB (UL21173),MSGCLASS=X,CLASS=D,NOTIFY=&SYSUID

Como ejemplo del paso de borrado pueden usar la siguiente definicin:

//********************************************************** //**** BORRADO DE FICHEROS **** //********************************************************** //DELET1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * xxxxxxxxxxxxxxxxxxxxx PURGE Nombre del fichero a borrar SET LASTCC=0 SET MAXCC=0 // Forzado del cdigo de retorno (ltimo) Forzado del cdigo de retorno (mximo)

El fichero a borrar ser DES.ADC.REPRO1.<nombre de usuario>. Para generarlo copien el fichero DES.ADC.FICHERO.REPRO1. Submitir y verifiquen que el fichero ha sido eliminado. Luego, submitir el JOB nuevamente, para verificar que el retorno (a pesar de que no encuentre el fichero) sigue siendo 0 (gracias al forzado de retorno). El JCL, crearlo en la librera de su usuario en el host. 2-Hacer un JCL que a partir de el fichero DES.ADC.FICHERO.REPRO1, genere un nuevo fichero DES.ADC.FICHERO. <nombre de usuario> los registros del 3 al 9. Es decir, el fichero DES.ADC.FICHERO.REPRO1 contiene esto: AAAAAAAA1 AAAAAAAA2 AAAAAAAA3 AAAAAAAA4 AAAAAAAA5 AAAAAAAA6 AAAAAAAA7 AAAAAAAA8

AAAAAAAA9 AAAAAAA10 AAAAAAA11 AAAAAAA12 El DES.ADC.FICHERO.< nombre de usuario> deber contener esto: AAAAAAAA3 AAAAAAAA4 AAAAAAAA5 AAAAAAAA6 AAAAAAAA7 AAAAAAAA8 AAAAAAAA9 Para realizar esto codificar un paso de IDCAMS con la siguiente SYSIN:

//COPIA EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //FILE1 DD DSN=fichero de entrada,DISP=SHR //FILE2 DD DSN=fichero de salida, // DISP=(,CATLG,DELETE), // SPACE=(TRK,(300,100),RLSE), // DCB=(RECFM=FB,LRECL=9,BLKSIZE=0) //SYSIN DD * REPRO INFILE(FILE1) OUTFILE(FILE2) COUNT(x) - sentencia de copiado. COUNT indica cuantos registros se copian SKIP(x) SKIP indica cuantos registros se saltean /*

Submitirlo y verificar que el fichero de salida contenga los registros requeridos. Submitirlo nuevamente y observar el error que se produce (por estar ya creado el fichero de salida). Para subsanar esto, agregar, antes del paso de copia, un paso de borrado para el fichero de salida (DES.ADC.FICHERO.< nombre de usuario>) con IDCAMS (como el ejercicio 1), y probar submitirlo varias veces observando que el retorno sea 0 y se genere el fichero de salida.

3-Realizar la descarga completa de la tabla CP_ORDEN_ACTUA a un fichero con el nombre DES.ADC.ORDENACT.DESCARGA.usuario donde el usuario ser una variable. Utilizar de ejemplo cualquiera de los JCL ubicado en la librera DES.ADC.DESCARGA.JCL.

4-Ordenar el fichero descarga de la tabla CP_ORDEN_ACTUA por los campos E2772_CODPROD, E2772_NUMSOR. Ejemplo:
SORT FIELDS=(1,8,A)

5-Realizar un sort sobre el fichero resultante del punto 2 que filtre por el campo E2772_NUMSOR = 'BBBBBBC' Ejemplo:
SORT FIELDS=COPY INCLUDE=(19,1,CH,EQ,C'2')

6-Realizar un sort sobre el fichero resultante del punto 3 que filtre por el campo E2772_IDEMPR donde los valores 0015 quedaran en el fichero de salida 1, los valores 0030 en el fichero de salida 2 y los valores 0049 en el fichero de salida 3. Ejemplo:
SORT FIELDS=COPY OUTFIL FNAMES=SORTOUT1, INCLUDE=(19,1,CH,EQ,C'B') OUTFIL FNAMES=SORTOUT2, INCLUDE=(19,1,CH,EQ,C'1') OUTFIL FNAMES=SORTOUT3, INCLUDE=(19,1,CH,EQ,C'2')

7-Realizar un sort sobre el fichero de salida 1 del punto 4 donde se edite su formato separando por comas (,) cada uno de sus campos. Ejemplo:
SORT FIELDS=COPY OUTREC FIELDS=(X'' ,1 ,4 ,X'%',C ' ; ' ,X ' ' , 5,4,X' ' ,C ' ; ' ,X ' ' , 9,3,X' ' ,C ' ; ' ,X ' ' , 12,7,X'',C';',X'')

Salida correspondiente al ejemplo:


0030%;

8-Realizar un sort sobre el fichero de salida 2 del punto 4 y cruzar las claves con la descarga de la tabla PL_H_EM_CTA_EXT que se realizar en este punto tambin. La clave de cruce ser el campo IDEMPR utilizando la sentencia JOINKEYS. Antes, sacar duplicados de ambos ficheros con la sentencia SUM FIELDS. Ejemplo:
SORT FIELDS=(1,4,A) SUM FIELDS=NONE

Utilizar de ejemplo el jcl PRUEBA1 de la librera DES.JTRA.DESIMME.JCL para la sentencia JOINKEYS. 9-Realizar un sort sobre la descarga de la tabla CP_ORDEN_ACTUA y excluir del mismo los registros donde el campo E2772_IDCENT= 1051 y ordenarlo por el mismo campo. Ejemplo:
SORT FIELDS=(1,2,A),FORMAT=CH OMIT COND(28,3,PD,EQ,10,OR,28,3,PD,EQ,20)

10-Realizar un sort sobre la descarga de la tabla CP_ORDEN_ACTUA donde habr que descomprimir el campo E2772_CODINCLI para poder verlo en el fichero plano. Tener en cuenta que deben ponerse todas las posiciones del fichero y no solo el campo a descomprimir para que salga completo. Ejemplo COMP-3: Convertir 9(8) a S9(9) COMP-3 y viceversa:
SORT FIELDS=COPY OUTREC FIELDS=(1,8,ZD,TO=PD,LENGTH=5) -> COMPRIMIR OUTREC FIELDS=(1,5,PD,TO=ZD,LENGTH=8) -> DESCOMPRIMIR

Ejemplo COMP: Convertir 9(8) COMP a 9(8) y viceversa:


SORT FIELDS=COPY OUTREC FIELDS=(1,8,ZD,TO=BI,LENGTH=4) - > COMPRIMIR OUTREC FIELDS=(1,4,BI ,TO=ZD,LENGTH=8) -> DESCOMPRIMIR

11-Realizar un sort sobre la descarga de la tabla CP_ORDEN_ACTUA donde habr que comprimir el campo E2772_IDEMPR donde para poder verlo en el fichero plano habr que utilizar el comando HEX dentro del fichero. HEX OFF para sacar la vista de comprimidos. Tener en cuenta que deben ponerse todas las posiciones del fichero y no solo el campo a comprimir para que salga completo.