Diversos JCLs para la creación y manipulación de archivos de datos de ejemplo. Los datos corresponden a un ejemplo contable.
Los dataset se crean en el volumen DATA00
, siendo su HLQ USER
.
CUENTAS (55 bytes): 01 REG-CTA. 10 KEY-CTA. 20 CTA-NUM PIC 9(5). 10 CTA-DESC PIC X(50). ASIENTOS (43 bytes): 01 REG-ASTO. 10 KEY-ASTO. 20 ASTO-NUM PIC 9(5). 10 ASTO-FECHA PIC 9(8). Formato AAAAMMDD 10 ASTO-OBS PIC X(30). APUNTES (21 bytes): 01 REG-APTE. 10 KEY-APTE. 20 APTE-ASTO PIC 9(5). 20 APTE-CTA PIC 9(5). 20 APTE-DH PIC X. 10 APTE-IMPORTE PIC 9(8)V99.
CREACTB: Crea los archivos secuenciales con los datos de ejemplo (devuelve un RC=0000
):
//CREACTB JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=HERC01 //*--------------------------------------------------------------------- //* CREA LOS DATASET SECUENCIALES PARA LOS EJEMPLOS //*--------------------------------------------------------------------- //STEP1 EXEC PGM=IEBDG //SYSPRINT DD SYSOUT=* //SYSIN DD * DSD INPUT=(ENTRADA),OUTPUT=(SALIDA) FD NAME=FIELD1,LENGTH=55,INPUT=ENTRADA CREATE NAME=FIELD1,INPUT=ENTRADA END /* //ENTRADA DD * 00001CAJA 00002BANCO 00003CLIENTES 00004MERCADERIAS 00005MAQUINARIA 00006INSTALACIONES 00007MOBILIARIO Y ENSERES 00008PROVEEDORES 00009EFECTOS COMERCIALES A PAGAR 00010CAPITAL 00011EFECTOS COMERCIALES A COBRAR 00012TRABAJOS, SUMINISTROS Y SERVICIOS EXTERIORES 00013ACREEDORES DIVERSOS 00014GASTOS DIVERSOS 00015DEUDORES DIVERSOS 00016INGRESOS ACCESORIOS A LA EXPLOTACION 00017EXPLOTACION DE MERCADERIAS 00018DOTACIONES DEL EJERCICIO PARA AMORTIZACION 00019AMORTIZACION ACUMULADA DE MAQUINARIA 00020AMORTIZACION ACUMULADA DE INSTALACIONES 00021AMORTIZACION ACUMULADA DE MOBILIARIO Y ENSERES 00022EXPLOTACION 00023PERDIDAS Y GANANCIAS /* //SALIDA DD DSN=CONTA.CUENTAS.SEQ,DISP=(NEW,CATLG), // UNIT=SYSDA,VOL=SER=DATA00,SPACE=(CYL,(1,1)), // DCB=(RECFM=FB,LRECL=55,BLKSIZE=2145) //*--------------------------------------------------------------------- //STEP2 EXEC PGM=IEBDG //SYSPRINT DD SYSOUT=* //SYSIN DD * DSD INPUT=(ENTRADA),OUTPUT=(SALIDA) FD NAME=FIELD1,LENGTH=43,INPUT=ENTRADA CREATE NAME=FIELD1,INPUT=ENTRADA END /* //ENTRADA DD * 0000120170101ASIENTO DE APERTURA 0000220170103 0000320170105 0000420170110 0000520170116 0000620170119 0000720170126 0000820170131REGULARIZACION DE MERCADERIAS 0000920170131AMORTIZACIONES 0001020170131 0001120170131 0001220170131 0001320170131 0001420170131ASIENTO DE CIERRE /* //SALIDA DD DSN=CONTA.ASIENTOS.SEQ,DISP=(NEW,CATLG), // UNIT=SYSDA,VOL=SER=DATA00,SPACE=(CYL,(1,1)), // DCB=(RECFM=FB,LRECL=43,BLKSIZE=1677) //*--------------------------------------------------------------------- //STEP3 EXEC PGM=IEBDG //SYSPRINT DD SYSOUT=* //SYSIN DD * DSD INPUT=(ENTRADA),OUTPUT=(SALIDA) FD NAME=FIELD1,LENGTH=21,INPUT=ENTRADA CREATE NAME=FIELD1,INPUT=ENTRADA END /* //ENTRADA DD * 0000100001D0000100000 0000100002D0000080000 0000100003D0000050000 0000100004D0000150000 0000100005D0000090000 0000100006D0000200000 0000100007D0000060000 0000100008H0000030000 0000100009H0000050000 0000100010H0000650000 0000200008D0000030000 0000200009H0000030000 0000300003D0000050000 0000300004H0000100000 0000300011D0000050000 0000400012D0000015000 0000400013H0000015000 0000500001H0000010000 0000500014D0000010000 0000600015D0000008000 0000600016H0000008000 0000700003H0000060000 0000700011D0000060000 0000800004D0000020000 0000800017H0000020000 0000900018D0000035000 0000900019H0000009000 0000900020H0000020000 0000900021H0000006000 0001000012H0000015000 0001000014H0000010000 0001000018H0000035000 0001000022D0000060000 0001100016D0000008000 0001100017D0000020000 0001100022H0000028000 0001200022H0000032000 0001200023D0000032000 0001300010D0000032000 0001300023H0000032000 0001400001H0000090000 0001400002H0000080000 0001400003H0000040000 0001400004H0000070000 0001400005H0000090000 0001400006H0000200000 0001400007H0000060000 0001400009D0000080000 0001400010D0000618000 0001400011H0000110000 0001400013D0000015000 0001400015H0000008000 0001400019D0000009000 0001400020D0000020000 0001400021D0000006000 /* //SALIDA DD DSN=CONTA.APUNTES.SEQ,DISP=(NEW,CATLG), // UNIT=SYSDA,VOL=SER=DATA00,SPACE=(CYL,(1,1)), // DCB=(RECFM=FB,LRECL=21,BLKSIZE=819) //
CREAVSAM: Crea los archivos VSAM a partir de los secuenciales (devuelve un RC=0000
).
//CREAVSAM JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=HERC01 //*--------------------------------------------------------------------- //* CREA LOS VSAM PARA LOS EJEMPLOS //*--------------------------------------------------------------------- //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //CUENTAS DD DSN=CONTA.CUENTAS.SEQ,DISP=SHR //ASIENTOS DD DSN=CONTA.ASIENTOS.SEQ,DISP=SHR //APUNTES DD DSN=CONTA.APUNTES.SEQ,DISP=SHR //SYSIN DD * SET MAXCC = 0 DEFINE CLUSTER (NAME(CONTA.CUENTAS) VOLUMES(DATA00) CYLINDERS(1 1) - RECORDSIZE(55 55) KEYS(5 0) INDEXED UNIQUE) - DATA (NAME(CONTA.CUENTAS.DATA)) - INDEX (NAME(CONTA.CUENTAS.INDEX)) DEFINE CLUSTER (NAME(CONTA.ASIENTOS) VOLUMES(DATA00) CYLINDERS(1 1) - RECORDSIZE(43 43) KEYS(5 0) INDEXED UNIQUE) - DATA (NAME(CONTA.ASIENTOS.DATA)) - INDEX (NAME(CONTA.ASIENTOS.INDEX)) DEFINE CLUSTER (NAME(CONTA.APUNTES) VOLUMES(DATA00) CYLINDERS(1 1) - RECORDSIZE(21 21) KEYS(11 0) INDEXED UNIQUE) - DATA (NAME(CONTA.APUNTES.DATA)) - INDEX (NAME(CONTA.APUNTES.INDEX)) REPRO INFILE(CUENTAS) OUTDATASET(CONTA.CUENTAS) REUSE REPRO INFILE(ASIENTOS) OUTDATASET(CONTA.ASIENTOS) REUSE REPRO INFILE(APUNTES) OUTDATASET(CONTA.APUNTES) REUSE /* //
BORRVSAM: Borra los VSAM (devuelve un RC=0000
).
//BORRVSAM JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=HERC01 //*--------------------------------------------------------------------- //* BORRA LOS VSAM DE LOS EJEMPLOS //*--------------------------------------------------------------------- //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE CONTA.CUENTAS DELETE CONTA.ASIENTOS DELETE CONTA.APUNTES //