En muchas ocasiones nos habéis preguntado como unir dos ficheros con JCL de la siguiente forma:
Fichero 1 Fichero 2
aaaaa xxxxx
bbbbb yyyyy
ccccc zzzzz
Unión de los dos ficheros
aaaaaxxxxx
bbbbbyyyyy
ccccczzzzz
Una solución para aquellos que dispongáis de Easytrieve sería usar un paso sencillo como este:
//CONSULL JOB (EASY),'easy',CLASS=A,MSGCLASS=X,
// MSGLEVEL=(1,1),REGION=0M,COND=(4,LT)
//JOBLIB DD DSN=LIB.EJECUCION.EJEM,DISP=SHR
//****************************************************
//* OBTIENE REGISTRO DE CONTRIOL DE TRANSMISION *
//****************************************************
//EASY0001 EXEC PGM=EZTPA00
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//EZTVFM DD UNIT=SYSDA,SPACE=(CYL,(40,10))
//ENTRADA1 DD DSN=FICHERO.ENTRADA.NUMERO1,DISP=SHR
//ENTRADA2 DD DSN=FICHERO.ENTRADA.NUMERO2,DISP=SHR
//SALIDA DD DSN=FICHERO.SALIDA.EASY,
// DISP=(,CATLG,DELETE),
// SPACE=(CYL,(150,50),RLSE),
// DCB=(RECFM=FB,LRECL=200,BLKSIZE=0)
//SYSIN DD *
FILE ENTRADA1
ENTRADA1-TS 1 100 A
*
FILE ENTRADA2
ENTRADA2-TS 1 100 A
*
FILE SALIDA
SALIDA-TS1 1 100 A
SALIDA-TS2 101 200 A
*
JOB INPUT NULL
GET ENTRADA1
GET ENTRADA2
DO WHILE (NOT EOF ENTRADA1)
SALIDA-TS1 = ENTRADA1-TS
SALIDA-TS2 = ENTRADA2-TS
PUT SALIDA
GET ENTRADA1
GET ENTRADA2
END-DO
STOP
En este JOB podéis ver que el programa que se ejecuta es el EZTPA00. Este programa es el compilador de easytrieve.
Será en la sysin donde incluiremos el código easytrieve propiamente dicho:
En primer lugar declaramos los ficheros de entrada ENTRADA1 y ENTRADA2 de longitud 100 en ambos casos. Definimos también el fichero de salida SALIDA como la suma de los 2, en total 200 posiciones de longitud.
En segundo lugar escribimos el código del programa:
Leer fichero: con la instrucción GET.
Escribir en el fichero de salida: con la instrucción PUT.
Lo hacemos dentro de un bucle donde vamos informando el área de salida, escribimos y leemos el siguiente registro de ambos ficheros.
Y listo! Nuestro paso de JCL nos ha ahorrado un programa cobol : )
Se os ocurren otras formas de hacerlo? Esperamos sugerencias!
No hay comentarios: