S/370

Emulador Hercules

Herramientas de usuario

Herramientas del sitio


mvs:ej:datos

USER.DATOS

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.

Estructura de los archivos

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.

Archivos secuenciales

CREACTB: Crea los archivos secuenciales con los datos de ejemplo (devuelve un RC=0000):

creactb.jcl
//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)
//

Archivos VSAM

CREAVSAM: Crea los archivos VSAM a partir de los secuenciales (devuelve un RC=0000).

creavsam.jcl
//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.jcl
//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
//
© 2021 por jCæsar

Herramientas de la página