Академический Документы
Профессиональный Документы
Культура Документы
JCL y Utileras
Objetivos
El presente curso tiene como objetivos:
Conocer los diferentes tipos de JCLs Identificar los requisitos para la codificacin de un JCL. Definir las sentencias utilizadas Explicar los cdigos de retorno, los cdigos de error y principales abends. Explicar las principales utileras de usadas.
JCL y Utileras
ndice
1. Introduccin 2. Conceptos de JCL 3. Sentencias de JCL 3.1. Sentencia JOB 3.2. Sentencia EXEC 3.3. Sentencia DD 3.4. Sentencias especiales 4. Cdigos de retorno 5. Procedimientos
JCL y Utileras
ndice
6. Utileras 6.1. DFSORT 6.2. IDCAMS 6.3 IEBCOPY 6.4. IEBGNENER 7. Generational Data Group (GDG)
JCL y Utileras
1. Introduccin
JCL y Utileras
Introduccin
El Sistema Operativo es el encargado de gestionar de forma eficiente todos los recursos de los que dispone un sistema de informacin. Dentro de sus principales ocupaciones estn la administracin de: Memoria, terminales de trabajo, discos, programas, comunicaciones etc.
Para llevar a cabo algunas de estas tareas en el sistema operativo OS/390, es necesario conocer el manejo de JCLs (Job Control Language), que son un conjunto de instrucciones necesarias para la ejecucin de un proceso batch, esto es semejante a un Batch de D.O.S. que ejecuta peticiones al sistema operativo. De esta manera el JCL le dice al sistema operativo todos los requerimientos de entrada y salida que se necesitan para ejecutar un proceso o varios en una secuencia determinada (Gestor de trabajos JES).
JCL y Utileras
2. Conceptos de JCL
JCL y Utileras
Definicin de JCL
JCL (Job Control Lenguage), es un lenguaje de programacin que permite codificar las instrucciones necesarias para la ejecucin de un proceso batch.
Estas instrucciones son interpretadas y ejecutadas por el gestor de trabajos (JES Job Entry Subsystem)
JCL y Utileras
Job (trabajo). Unidad de trabajo bsica independiente. Job Step (paso de job). Ejecucin de un programa dentro de un job. Tambin se puede hacer referencia como step (paso). Mximo de pasos permitidos en un JCL es de 255. Partes de un JCL: Cabecera. Informacin relativa al entorno en donde ser ejecutado el job, caractersticas de entorno, tiempo, nivel de mensajes, etc. Cuerpo. Contiene las sentencias de ejecucin de cada programa o utilera a ejecutar.
JCL y Utileras
Tipos de JCL
In-stream.
Procedimientos. Se ejecutan a travs de la definicin de procesos llamados por el JCL al momento de la ejecucin. (Procs)
Mixtos.
10
JCL y Utileras
11
JCL y Utileras
12
JCL y Utileras
Columna 1 y 2 // // // // /* // //
Campos (a partir de la columna 3) jobname JOB[operandos] stepname EXEC [oprendos] filename DD [operandos] (Comando) operandos
* comentarios
13
JCL y Utileras
3. Sentencias de JCL
14
JCL y Utileras
Sentencias de JCL
JOB.
DD.
15
JCL y Utileras
16
JCL y Utileras
Sentencia JOB
El jobname(CREAFILE) indica el nombre que se asignar al JCL, puede tener una longitud mxima de 8 caracteres. La sentencia JOB Indica el inicio del job a ser ejecutado, debe comenzar en la posicin 12.
17
JCL y Utileras
Sentencia JOB
Cuenta del jcl. Se debe indicar la cuenta (ABC) a la que es asignada el job, ya que ste es utilizado para determinar el gasto de recursos que el job necesita. Usuario del job. Mximo 20 caracteres. Puede ser especificado por la instalacin. Parmetros de ejecucin.
18
JCL y Utileras
CLASS=x
Indica la cola de ejecucin a la cual ser asignado el job En caso de no ser indicada, se asigna la predeterminada por la instalacin. Algunos valores asignados pueden ser : A Impresora X retener mensajes Z no imprimir mensajes
19 JCL y Utileras
MSGCLASS=x
Indica la cola de salida (x) a la cual se enviaran los mensajes que se generen durante la ejecucin del job.
20
JCL y Utileras
MSGLEVEL=(x,y)
Controla la salida de las sentencias y mensajes de salida en el log. Indica la clase de ejecucin a la cual se enviaran los mensajes que se generen durante la ejecucin del job. Valores a asignar : x Sentencias que se desplegarn en el log del job y Mensajes que sern desplegados en el job Si esta sentencia es omitida se asigna un valor por default de la instalacin.
21 JCL y Utileras
REGION=nnnn[K][M]
Especifica el mximo de memoria asignada a nivel de todo el JCL.
22
JCL y Utileras
NOTIFY=aaaaaaa
23
JCL y Utileras
COND=(n,a)
Especfica el cdigo de retorno (n) y la condicin (a) para que los pasos del JOB continen ejecutndose. Condiciones de retorno : GT - Mayor que LT - Menor que EQ - Igual a
LINES
Nmero mximo de lneas a desplegar en SYSOUT, y dependiendo de ste se cancela el job, se guarda la informacin en cartucho, o bien, se enva un mensaje al operador. LINES=nnnn Controla el reinicio del job a partir del paso especificado RESTART=stepname
RESTART
TIME TYPERUN
Determina el tiempo mximo de CPU que puede ser utilizado en la ejecucin del job. Localiza los errores de sintaxis del JCL con las opciones de no ejecutarlo, ejecutarlo hasta que el operador lo permita ejecutarlo en la clase de SYSOUT
25 JCL y Utileras
26
JCL y Utileras
Sentencia EXEC
//P01DE01
EXEC PGM=BG3C3330,PARM='20010101',COND=(0,EQ)
Inicia con el stepname, el cual puede tener una longitud mxima de 8 caracteres. La sentencia EXEC debe iniciar en la posicin 12, indica el inicio de cada paso. Se debe indicar si es un programa (PGM) o un procedimiento (PROC) el que se va a ejecutar. Parmetros de ejecucin a nivel de la sentencia EXEC.
27 JCL y Utileras
//P01DE01
EXEC PGM=BG3C3330,PARM='20010101',COND=(0,EQ)
PARM=valor
28
JCL y Utileras
29
JCL y Utileras
//P01DE01
EXEC PGM=BG3C3330,PARM='20010101',COND=(0,EQ)
COND=(n,a,[EVEN/ONLY])
Realiza la misma funcin que en la sentencia JOB, con la diferencia que sta slo aplica a nivel de paso, y con algunas condiciones adicionales. Las condiciones: EVEN. Indica que el paso se ejecutar an cuando algn paso anterior finalice anormalmente ONLY. Indica que este paso se ejecutar si algn paso ha finalizado anormalmente.
30 JCL y Utileras
REGION
Especifica el mximo de memoria asignada a nivel de paso. Puede ser expresada en Kilobytes o Megabytes Tiempo mximo de ejecucin a nivel de paso
TIME
31
JCL y Utileras
3.3 Sentencia DD
32
JCL y Utileras
Sentencia DD
//ddname //
El ddname indica el nombre del paso, tiene una longitud mxima de 8 caracteres y ste nombre debe ser nico por cada paso. DD (Data Definition). Describe los archivos que requiere el programa a ser ejecutado. Debe iniciar en la posicin 12, codificndose despus del ddname. Posterior a su codificacin, se asignan los parmetros opcionales necesarios para la definicin del archivo.
33 JCL y Utileras
34
JCL y Utileras
DSN=namefile
El namefile es el nombre con que el sistema debe localizar o alojar los archivos.
Existen diferentes tipos de archivos, los mas importantes son: Secuenciales, Particionados, Generacionales (GDG), VSAM, etc.
35
JCL y Utileras
Los nombres que son asignados generalmente a los diferentes tipos de archivos son: Archivos secuenciales. Mximo 44 caracteres nombre.del.archivo Archivos particionados. nombre.del.archivo(nom_elemento) Archivos generacionales. nombre.del.archivo(num_generacin) Archivos temporales. &&nombre
36
JCL y Utileras
DISP=(ind_1,ind_2,ind_3)
El parmetro DISP, tiene tres funciones: El primer indicador nos dice la situacin del archivo al inicio de la ejecucin. El segundo indicador nos dice que accin se debe de tomar con el archivo si el paso termina correctamente El tercer indicador nos dice que accin se debe de tomar con el archivo si el paso termina anormalmente.
37 JCL y Utileras
Las diferentes disposiciones de los archivos son: Disposicin NEW OLD SHR MOD El archivo es creado El archivo ya existe y mientras se esta utilizando ninguna otra tarea puede acceder a dicho archivo. El archivo existe y adems puede ser compartido. Si existe, ninguna otra tarea puede accederlo. En la adicin de registros nuevos, obliga al sistema de I/O a posicionarse en el ltimo registro que exista. Si el archivo no existe lo considera NEW.
Contina...
Descripcin
38
JCL y Utileras
Las diferentes disposiciones de los archivos son: Disposicin DELETE KEEP PASS CATLG UNCATLG El archivo es borrado Indica que el archivo debe mantenerse al final del paso. Indica que el archivo se utilizar en los pasos posteriores. Se borra al terminar el job. El archivo se guarda y es catalogado. El archivo se guarda y no es catalogado. Descripcin
39
JCL y Utileras
DISP=
Si el primer parmetro no es codificado se asume NEW. Si el segundo parmetro no es codificado se asume DELETE, si en el primer parmetro se informa NEW. Si el segundo parmetro no es codificado se asume KEEP, slo si en el primer parmetro se informa OLD. El tercer parmetro siempre debe ser codificado
40 JCL y Utileras
UNIT=[address/type][TAPE][SYSDA]
Especifica un dispositivo de entrada o salida, ya sea a unidad de cinta o disco, volumen o un grupo de discos designados por la instalacin (generalmente SYSDA o 3390). Este parmetro depende de la instalacin
41
JCL y Utileras
SPACE=([CYL][TRK][nnnn],(ext_primaria,ext_secundaria,[miembros]),[RLSE]) Indica el espacio que debe reservarse en disco para almacenar los datos del archivo. Slo debe indicarse cuando el archivo es nuevo.
Las unidades en las que se mide el espacio son :Cilindros (CYL), Tracks (TRK) o longitud del bloque(nnnn).
42
JCL y Utileras
El primer subparmetro (extensin primaria), indica el espacio que se reservar para el archivo al momento de crearlo. El segundo subparmetro (extensin secundaria) es la cantidad de espacio a aadir cada vez que el archivo se llene. Se pueden aadir hasta 15 extensiones secundarias. El tercer subparmetro (directorio), es principalmente para indicar el espacio a reservar para los miembros a alojar en caso de tratarse de un archivo particionado. RLSE, indica que al final de la ejecucin se libere el espacio no usado por el archivo alojado.
43 JCL y Utileras
VOL=disco VOL=SER=disco VOL, se utiliza para identificar el disco en el que se encuentra el archivo. Para archivos catalogados no es necesario se codifique esta sentencia. SER, indica el nmero de serie del disco. Normalmente, tiene el mismo valor que el volumen.
44
JCL y Utileras
DCB=(LRECL=______,RECFM=_____,BLKSIZE=_____) LRECL=______,RECFM=_____,BLKSIZE=_____
La sentencia DCB, puede ser omitida y especificar nicamente los subparmetros de sta (LREC,RECFM,BLKSIZE).
45 JCL y Utileras
LRECL=nnnn
46
JCL y Utileras
RECFM=nnnn
Indica el formato del bloqueo: F Fija FB Fija bloqueada V Variable VB Variable bloqueado U - Indefinida FBA Fijo bloqueado con caracteres ASA
47
JCL y Utileras
BLKSIZE=nnnn
Indica la longitud del bloque. Se calcula multiplicando la longitud del registro por el nmero de registros contenidos en un bloque. Si el blocksize es omitido o se le asigna el valor 0, el sistema lo calcula. En los sistemas actuales se recomienda informarlo con valor 0 (BLKSIZE=0)
48 JCL y Utileras
DUMMY
Se utiliza para simular las entradas y salidas a un archivo. El programa realiza todas las funciones como si el archivo existiera.
//S1DQ0001 DD DUMMY
SYSOUT
Indica el archivo lgico al que debe direccionarse a una clase de salida, en lugar de un disco o cinta.
//S1DQ0001 DD SYSOUT=X
COPIES
49
JCL y Utileras
DEST
Indica la impresora fsica por la que se listar el informe que se desea imprimir, ya sea a un terminal remoto (RTMnnn), o bien, a una impresora local(LOCAL).
//S1DQ0001 DD SYSOUT=X,COPIES=4,DEST=RTM005
OUTLIMIT
Indica el nmero mximo de lneas que se van a imprimir del listado. Cuando se alcanza el lmite de lneas, el paso termina.
//S1DQ0001 DD SYSOUT=X,COPIES=4,DEST=RTM005, // OUTLIMIT=1500
50
JCL y Utileras
51
JCL y Utileras
Sentencias especiales
Algunas sentencias son utilizadas para indicar dnde se encuentran los programas o archivos que intervienen en el job. Estas sentencias son:
JOBLIB
A travs de la cual se indican a nivel de JOB las libreras donde se encuentran los programas que se requieren ejecutar.
//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C //JOBLIB DD DSN=MBVD.BGA.NRNTLOAD,DISP=SHR // DD DSN=MBVD.TCA.NRNTLOAD,DISP=SHR // DD DSN=SYS1.COB2LIB,DISP=SHR
52
JCL y Utileras
Sentencias especiales
STEPLIB
Permite indicar a nivel de paso las libreras donde se encuentran los programas que se quieren ejecutar
//P01DE01 //STEPLIB EXEC PGM=BG3C3330 DD DSN=ACCEN.COMPLIB.LOAD
SYSABEND SYSDUMP
Muestra los mensajes de memoria en caso de producirse un mensaje de terminacin anormal (ABEND).
//SYSABEND DD //SYSUDUMP DD SYSOUT=* SYSOUT=*
53
JCL y Utileras
Sentencias especiales
DECLARACION EN JCL
//**************************************************** //* ESTE JCL ES UNA PRUEBA DE EJECUCION DE JCL //**************************************************** //PASO01 EXEC PGM=IKJEFT01 //STEPLIB DD DSN=DGDWP.BTCH.LOAD,DISP=SHR // DD DSN=DSTOP.BTCH.LOAD,DISP=SHR // DD DSN=DXAEP.BTCH.LOAD,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSOUT DD SYSOUT=* //LAYDB110 DD SYSOUT=* //LOGERR DD SYSOUT=* //SYSIN DD * 980603 //SYSTSIN DD * DSN SYSTEM(DB2D) RUN PROGRAM(BG4CINT0) PLAN(BVDBGPB)
54
JCL y Utileras
4. Cdigos de retorno
55
JCL y Utileras
Existen dos diferentes cdigos de error regresados por el OS/390. Los cdigos de retorno de un programa y cdigos de retorno propios del sistema. En caso de terminar con un ABEND (Terminacin anormal) el paso que se esta ejecutando realiza un bypass de los pasos restantes. Los cdigos del sistema, estn estructurados de la siguiente forma: Annn
Donde: A - Se refiere al tipo de Abend, adquiriendo los siguientes valores: S Sistema U Usuario I Informativo nnn - Indica el nmero de cdigo en hexadecimal
56 JCL y Utileras
Cdigos de retorno
Los cdigos de retorno pueden ser definidos por el propio programador Algunas veces se requiere del uso de cdigos de retorno especiales para detener la ejecucin de un programa por alguna condicin especfica.
CR 00 04 08 12 16 Mayor a16 y Menor de 500 Ejecucin exitosa Error informativo (Warning) Archivo no localizable No se encontr algn elemento necesario para la ejecucin ABEND no controlado Error controlado. Propio del programa Descripcin
57
JCL y Utileras
Salida de un spool
Display
Filter
View
Options
------------------------------------------------------------------------------SDSF STATUS DISPLAY ALL CLASSES COMMAND INPUT ===> NP JOBNAME IDBEX26 JOBID OWNER PRTY QUEUE 15 EXECUTION 1 PRINT A 1603 C POS SAFF MEX3 TSU08135 IDBEX26
58
JCL y Utileras
Salida de un spool
Display Filter View Print Options Help ------------------------------------------------------------------------------SDSF JOB DATA SET DISPLAY - JOB IDBEX26X (JOB05676) LINE 1-10 (10) COMMAND INPUT ===> SCROLL ===> CSR NP DDNAME STEPNAME PROCSTEP DSID OWNER C DEST REC-CNT PAGE JESMSGLG JES2 2 IDBEX26 X LOCAL 53 JESJCL JES2 3 IDBEX26 X LOCAL 150 JESYSMSG JES2 4 IDBEX26 X LOCAL 239 SYSOUT BG105207 105 IDBEX26 X LOCAL 26 S1DLINC0 BG105204 106 IDBEX26 X LOCAL 2 SYSTSPRT BG105204 110 IDBEX26 X LOCAL 6 SYSOUT BG105202 115 IDBEX26 X LOCAL 26 S1DLINC0 BG105201 116 IDBEX26 X LOCAL 2 SYSOUT BG105201 118 IDBEX26 X LOCAL 2 SYSTSPRT BG105201 120 IDBEX26 X LOCAL 6
59
JCL y Utileras
Salida de un spool
********************************* TOP OF DATA ********************************** J E S 2 J O B L O G -- S Y S T E M M E X 3 -- N O 08.44.44 08.44.44 08.44.45 08.44.45 08.44.45 08.44.48 08.44.50 08.44.50 08.44.50 08.44.50 08.44.52 08.44.52 08.44.52 08.44.52 08.44.54 08.44.55 08.44.55 08.44.55 08.44.58 08.44.58 08.44.58 08.44.58 08.44.58 08.45.46 08.45.46 08.45.48 08.45.49 08.45.49 JOB05676 ---- THURSDAY, 07 MAR 2002 ---JOB05676 IRR010I USERID IDBEX26 IS ASSIGNED TO THIS JOB. JOB05676 ICH70001I IDBEX26 LAST ACCESS AT 08:35:09 ON THURSDAY, MARCH JOB05676 $HASP373 IDBEX26X STARTED - INIT 1 - CLASS A - SYS MEX3 JOB05676 IEF403I IDBEX26X - STARTED - TIME=08.44.45 JOB05676 MBVD.BG.WKF.PROGRESA.CUENTAS.BANGOB.SORT SG(SGDASD03) JOB05676 VAM0516 DATASET (MBVD.BG.WKF.PROGRESA.CUENTAS.BANGOB.SORT JOB05676 VAM0511 DATASET (MBVD.BG.WKF.PROGRESA.CUENTAS.BANGOB.SORT JOB05676 VAM0511 DSDD18 JOB05676 MBVD.BG.WKF.PROGRESA.CUENTAS.BANGOB.SORT BORRADO POR ESTAR DU JOB05676 --TIMINGS (M JOB05676 -JOBNAME STEPNAME PROCSTEP RC EXCP CONN TCB SRB JOB05676 -IDBEX26X BG105207 00 138 806 .00 .00 JOB05676 MBVD.BG.FIX.PROGRESA.EDOCTAS.CTASFEB SG(SGDASD03) JOB05676 VAM0516 DATASET (MBVD.BG.FIX.PROGRESA.EDOCTAS.CTASFEB JOB05676 VAM0511 DATASET (MBVD.BG.FIX.PROGRESA.EDOCTAS.CTASFEB JOB05676 VAM0511 DSDD18 JOB05676 MBVD.BG.FIX.PROGRESA.EDOCTAS.CTASFEB BORRADO POR ESTAR DUPLIC JOB05676 -IDBEX26X BG105204 00 475 2072 .00 .00 JOB05676 DMS2987 DATA SET CATALOGED TO SAMS:DISK PSEUDO-VOLUME ARCIVE JOB05676 DMS2987 SAMS:DISK HAS ARCHIVED MBVD.BG.FIX.BG3C1052.MOVUMO.SO JOB05676 DMS3752 AUTO RESTORE REQUEST BY IDBEX26X JOB05676 DMS3752 IS PASSED TO THE SUBSYSTEM FOR DSN = MBVD.BG.FIX.BG3C JOB05676 DMS2993 DATA SET SUCCESSFULLY RESTORED JOB05676 MBVD.BG.FIX.BG3C1052.MOVUMO.SORT SG(SGDASD03) JOB05676 VAM0516 DATASET (MBVD.BG.FIX.BG3C1052.MOVUMO.SORT JOB05676 VAM0511 DATASET (MBVD.BG.FIX.BG3C1052.MOVUMO.SORT JOB05676 VAM0511 DSDD15
60
JCL y Utileras
Salida de un spool
IEF142I IDBEX26X BG105201 - STEP WAS EXECUTED - COND CODE 0000 IEF285I MBVD.BG.WKF.PROGRESA.CUENTAS.BANGOB.SORT KEPT IEF285I VOL SER NOS= DSDD28. IEF285I MBVD.BG.FIX.BG3C1052.MOVUMO.SORT KEPT IEF285I VOL SER NOS= DSDD16. IEF285I IDBEX26.PS.FIX.BGJC1052.EDOCTAS.FEB CATALOGED IEF285I VOL SER NOS= DSDA67. IEF285I IDBEX26.PS.FIX.BGJC1052.REPORT.FEB CATALOGED IEF285I VOL SER NOS= DSDA67. IEF285I IDBEX26.IDBEX26X.JOB05676.D0000116.? SYSOUT IEF285I IDBEX26.IDBEX26X.JOB05676.D0000117.? SYSOUT IEF285I IDBEX26.IDBEX26X.JOB05676.D0000118.? SYSOUT IEF285I IDBEX26.IDBEX26X.JOB05676.D0000119.? SYSOUT IEF285I IDBEX26.IDBEX26X.JOB05676.D0000120.? SYSOUT IEF285I IDBEX26.IDBEX26X.JOB05676.D0000121.? SYSOUT IEF285I IDBEX26.IDBEX26X.JOB05676.D0000122.? SYSOUT IEF285I IDBEX26.IDBEX26X.JOB05676.D0000123.? SYSOUT IEF285I IDBEX26.IDBEX26X.JOB05676.D0000103.? SYSIN IEF373I STEP/BG105201/START 2002066.0845
61
JCL y Utileras
5. Procedimientos
62
JCL y Utileras
Procedimientos
Se utilizan cuando este grupo de sentencias son usadas con frecuencia en el mismo o distinto job.
63
JCL y Utileras
Procedimientos In-stream
Este tipo de procedimientos se definen en el mismo job, mediante las sentencias de PROC y PEND. Son utilizados cuando un mismo proceso es realizado varias veces en el mismo job. Se ejecutan al ser referenciados a travs de la sentencia EXEC.
//DIARIO //CARGA //PASO1 //CLIENTES //... //PASO2 // PEND //PASO1 //ENTRADA //... //PASO2 //PASO3 JOB ... PROC EXEC PGM=... DD DSN=... EXEC EXEC DD EXEC EXEC PGM=... PGM=... DSN=... PROC=CARGA PGM=...
64
JCL y Utileras
Procedimientos Catalogados
Los procedimientos catalogados son aquellos que se definen y almacenan en Libreras. Comienzan con el procname y a continuacin la palabra PROC Se utilizan cuando se realiza un mismo proceso en distintos jobs. Se ejecutan a a travs de la sentencia EXEC.
//DIARIO //PASO1 //ENTRADA //... //PASO2 //PASO3 JOB ... EXEC PGM=... DD DSN=... EXEC EXEC PROC=CARGA PGM=... PROCEDIMIENTO CARGA
65
JCL y Utileras
Sentencias de procedimientos
Para codificar un procedimiento se siguen las mismas reglas explicadas en la codificacin de un job. Cuando el JES (Gestor de trabajos), inserta las lneas del procedimiento en el lugar correspondiente, las columnas 1 y 2 son modificadas: Catalogados In Stream // // se convierten se convierten XX
++
Cuando la lnea de codificacin tiene parmetros simblicos, las modificaciones son: Catalogados In Stream // // se convierten se convierten
66
X/
+/
JCL y Utileras
6. Utileras JCL
67
JCL y Utileras
Las utileras permiten realizar operaciones con archivos sin tener que codificar un programa.
Las principales utileras usadas son: DFSORT IDCAMS IEBCOPY Organiza la informacin contenida en un archivo Permite tratar archivos VSAM Copia archivos particionados
68
JCL y Utileras
6.1. DFSORT
69
JCL y Utileras
DFSORT - Definicin
Esta utilera es usada principalmente para llevar a cabo la organizacin de los datos contenidos en un archivo. Las funciones principales de esta utilera son: Ordenacin de registros de un archivo Fusin de dos archivos en uno Copia de archivos Eliminacin de registros de un archivo Reformateo de registros de un archivo Acumulacin de valores de los registros de un archivo.
70
JCL y Utileras
DFSORT Ordenacin
//ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=... //SORTOUT DD DSN=... //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
Va a continuacin de la sentencia EXEC. El programa que ejecuta esta utilera es SORT, y dependiendo de la instalacin ser invocado como programa o procedimiento.
71
JCL y Utileras
DFSORT Ordenacin
//ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=... //SORTOUT DD DSN=... //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
Los mensajes de salida que fueron generados en la ejecucin son dejados en el archivo de SYSOUT. Estos mensajes contienen informacin acerca de errores de la codificacin, nmero de registros de entrada y de salida.
72
JCL y Utileras
DFSORT Ordenacin
//ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=... //SORTOUT DD DSN=... //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
SYSIN es el archivo en el que se codifica los parmetros de acuerdo con la funcin o funciones que se requieran realizar.
73
JCL y Utileras
DFSORT Ordenacin
//ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=... //SORTOUT DD DSN=... //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
La sentencia SORT FIELDS se utiliza para indicar los campos por los que se desea ordenar el archivo y el orden que debe establecerse.
74
JCL y Utileras
DFSORT Ordenacin
//ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=... //SORTOUT DD DSN=... //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
En la primera posicin se indica el comienzo del registro, a partir de donde empieza el campo por el que se quiere ordenar.
75
JCL y Utileras
DFSORT Ordenacin
//ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=... //SORTOUT DD DSN=... //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
A partir de la segunda posicin se indica la longitud en bytes, del campo por el que se quiere ordenar. Debe tomarse en cuenta la longitud en caso de campos empaquetados
76
JCL y Utileras
DFSORT Ordenacin
//ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=... //SORTOUT DD DSN=... //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
Se indica el formato del campo por el que se quiere ordenar. Los formatos mas utilizados son: CH - Carcter ZD - Decimal PD - Compactado
Cuando el formato de los campos de ordenacin es el mismo, es posible codificar la sentencia de la siguiente forma:
//SORT FIELDS=(1,5,A,7,8,D),FORMAT=CH
77
JCL y Utileras
DFSORT Ordenacin
//ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=... //SORTOUT DD DSN=... //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
Para la sentencia SORT FIELDS es importante indicar el tipo de ordenacin, las cuales pueden ser: A ascendente D - Descendente
78
JCL y Utileras
DFSORT Seleccin
//ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=... //SORTOUT DD DSN=... //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
A travs de la sentencia INCLUDE se puede realizar la seleccin de registros que cumplan ciertas condiciones, o bien, realizar lo contrario con la sentencia OMIT. Las sentencias de INCLUDE y OMIT no pueden ser codificadas a la vez .
79
JCL y Utileras
DFSORT Seleccin
//ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=... //SORTOUT DD DSN=... //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
En la primera posicin se indica el comienzo del registro, es decir, la primera posicin a partir de donde empieza el campo que se quiere incluir. La segunda posicin indica la longitud del campo al que se hace referencia. La tercera posicin indica el formato del campo. En la cuarta posicin se indica el operador de comparacin (EQ,NE,GT,GE, LT, LE) y a continuacin la constante de control
80 JCL y Utileras
DFSORT Seleccin
//ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=... //SORTOUT DD DSN=... //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
Para el uso de constantes se codificar de la siguiente forma: Cx...x Xyy...yy +n...n donde donde donde x es un caracter EBCDIC y es un par de dgitos hexadecimales n es un dgito decimal
81 JCL y Utileras
DFSORT Seleccin
//ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ',OR, 1,5,CH,EQ,C'PEREZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=... //SORTOUT DD DSN=... //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
Si se desean poner varias condiciones, se separan con operadores lgicos AND y OR, separadas por comas.
82
JCL y Utileras
DFSORT Suma
//ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=... //SORTOUT DD DSN=... //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
La sentencia SUM permite sumar los valores de un campo. La primera posicin indica el comienzo de campo a sumar y la segunda la longitud de dicho campo, continuada por el formato. Los campos a sumar deben ser numricos, empaquetados o decimales. El resultado de la suma es guardado en un registro y el resto son borrados.
83 JCL y Utileras
DFSORT Suma
Cuando se desean eliminar los registros duplicados que tienen los mismos campos de control iguales, se utiliza lo siguiente: SUM FIELDS=NONE
84
JCL y Utileras
A travs de la sentencia OUTREC, se puede realizar el reformateo de registros despus de ser ordenados. Se debe codificar la localizacin y longitud de los campos que van a aparecer en el registro de salida. El resto de campos no especificados son eliminados.
85
JCL y Utileras
La sentencia OUTREC permite la insercin o borrado de campos en blanco en el registro. OUTREC FIELDS=(nnX,1,100,nnX) Donde nn X Por ejemplo: 20X 10X es el nmero de caracteres a insertar indicador de caracter en blanco inserta 20 caracteres blancos antes del campo inserta 10 caracteres blancos despus del campo
86
JCL y Utileras
La sentencia INREC tiene la misma funcin que la sentencia OUTREC, con la diferencia que realiza el reformateo antes de ser ordenados.
INREC FIELDS=(nnX,1,100,nnX)
Si se realizan INREC y SUM a la vez, la suma se realiza sobre los registros ya formateados. En cambio en OUTREC se procesa despus de realizar la suma. La sentencia INREC se procesa antes de SORT, SUM, OUTREC y despus de INCLUDE y OMIT.
87
JCL y Utileras
DFSORT SORTIN
//ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=... //SORTOUT DD DSN=... //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
SORTIN define el archivo de entrada que se desea ordenar. Debe codificarse con DD, con el nombre de SORTIN
88
JCL y Utileras
DFSORT SORTOUT
//ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=... //SORTOUT DD DSN=... //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
SORTOUT define el archivo de salida en el que se desea guardar el archivo ya ordenado y reformateado. Debe codificarse con DD, con el nombre de SORTOUT.
89
JCL y Utileras
La sentencia SORTWKnn, son utilizadas como reas de trabajo temporales donde se guardan los registros a ordenar. Se deben definir como archivos temporales sin longitud de registro. Se pueden codificar desde SORTWK01 hasta SORTWK16
90
JCL y Utileras
DFSORT Merge
//FUSION EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * MERGE FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,EQ,C'LOPEZ') SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTINnn DD DSN=... //SORTOUT DD DSN=...
La sentencia MERGE es utilizada para fusionar los registros ya ordenados de varios archivos. Pueden fusionarse hasta 16 archivos a la vez Los archivos deben tener el mismo formato y estar ordenados por los mismos campos de control. No puede utilizarse la sentencia SORT
91 JCL y Utileras
DFSORT Copy
//FUSION EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * INCLUDE COND=(1,5,CH,GT,6,5,CH) OUTREC FIELDS=(1,100) OPTION COPY //SORTIN DD DSN=... //SORTOUT DD DSN=...
La sentencia COPY, es utilizada para copiar datos de un archivo a otro sin realizar alguna ordenacin o fusin.
92
JCL y Utileras
6.2. IDCAMS
93
JCL y Utileras
IDCAMS - Definicin
El IDCAMS es una utilera para gestionar archivos VSAM (Virtual Storage Access Method), aunque tambin puede ser usada para archivos secuenciales.
Sus funciones principales son: Definir y borrar un archivo VSAM Copiar de un archivo a otro Construir ndices alternativos Listar catlogos Imprimir archivos Transferir archivos de un sistema a otro
94
JCL y Utileras
IDCAMS - Definicin
Un VSAM es un mtodo de acceso a los datos almacenados en un dispositivo de acceso directo
Se llaman archivos VSAM aquellos que son accedidos de acuerdo con lo descrito anteriormente.
95
JCL y Utileras
ESDS
KSDS
Los registros se recuperan en el orden de un campo definido como clave. Son los ms usados.
RRDS
96
JCL y Utileras
97
JCL y Utileras
98
JCL y Utileras
99
JCL y Utileras
IDCAMS - Codificacin
Debe codificarse despus de la sentencia EXEC como PGM=IDCAMS En SYSPRINT se encuentran los mensajes de salida del programa SYSIN muestra la codificacin de los mandatos
100
JCL y Utileras
EXEC PGM=IDCAMS DD SYSOUT=* DD * CLUSTER(NAME(ACCEN.MASTER.EMPL) REC(500 50)RECSZ(25 50)KEYS(10 0)VOLUME(DIR003)SHR(2 3)INDEXED DATA(NAME(ACCEN.MASTER.EMPL.DATA) INDEX(NAME(ACCEN.MASTER.EMPL.INDEX)) /*
En algunas instalaciones la definicin de archivos VSAM es realizada por el departamento de administracin de bases de datos
101
JCL y Utileras
EXEC PGM=IDCAMS DD SYSOUT=* DD * CLUSTER(NAME(ACCEN.MASTER.EMPL) REC(500 50)RECSZ(25 50)KEYS(10 0)VOLUME(DIR003)SHR(2 3)INDEXED DATA(NAME(ACCEN.MASTER.EMPL.DATA) INDEX(NAME(ACCEN.MASTER.EMPL.INDEX)) /*
El archivo es definido como un Cluster (DEFINE CLUSTER) Un CLUSTER en archivos KSDS, se encuentra formado por dos componentes: uno de los ndices (INDEX) y otro los datos (DATA) Los dems tipos de archivos slo estn formados por datos (DATA)
102 JCL y Utileras
EXEC PGM=IDCAMS DD SYSOUT=* DD * CLUSTER(NAME(ACCEN.MASTER.EMPL) REC(500 50)RECSZ(25 50)KEYS(10 0)VOLUME(DIR003)SHR(2 3)INDEXED DATA(NAME(ACCEN.MASTER.EMPL.DATA) INDEX(NAME(ACCEN.MASTER.EMPL.INDEX)) /*
103
JCL y Utileras
EXEC PGM=IDCAMS DD SYSOUT=* DD * CLUSTER(NAME(ACCEN.MASTER.EMPL) REC(500 50)RECSZ(25 50)KEYS(10 0)VOLUME(DIR003)SHR(2 3)INDEXED DATA(NAME(ACCEN.MASTER.EMPL.DATA) INDEX(NAME(ACCEN.MASTER.EMPL.INDEX)) /*
El parmetro REC indica el espacio requerido, el cual puede ser especificado en nmero de registros, tracks cilindros. El primer subparmetro indica la extensin primaria al crear el archivo y el segundo subparmetro indica la extensin secundaria a incrementar.
104 JCL y Utileras
EXEC PGM=IDCAMS DD SYSOUT=* DD * CLUSTER(NAME(ACCEN.MASTER.EMPL) REC(500 50)RECSZ(25 50)KEYS(10 0)VOLUME(DIR003)SHR(2 3)INDEXED DATA(NAME(ACCEN.MASTER.EMPL.DATA) INDEX(NAME(ACCEN.MASTER.EMPL.INDEX)) /*
El parmetro RECZ indica el tamao del registro. El primer subparmetro indica el tamao medio en bytes de los registros y el segundo subparmetro indica el tamao mximo en bytes de los registros.
105 JCL y Utileras
EXEC PGM=IDCAMS DD SYSOUT=* DD * CLUSTER(NAME(ACCEN.MASTER.EMPL) REC(500 50)RECSZ(25 50)KEYS(10 0)VOLUME(DIR003)SHR(2 3)INDEXED DATA(NAME(ACCEN.MASTER.EMPL.DATA) INDEX(NAME(ACCEN.MASTER.EMPL.INDEX)) /*
KEYS define la clave de acceso al archivo. El primer subparmetro indica el tamao en bytes de la clave y el segundo subparmetro la posicin relativa a partir del comienzo del registro. La primera posicin se codifica como 0.
106 JCL y Utileras
EXEC PGM=IDCAMS DD SYSOUT=* DD * CLUSTER(NAME(ACCEN.MASTER.EMPL) REC(500 50)RECSZ(25 50)KEYS(10 0)VOLUME(DIR003)SHR(2 3)INDEXED DATA(NAME(ACCEN.MASTER.EMPL.DATA) INDEX(NAME(ACCEN.MASTER.EMPL.INDEX)) /*
107
JCL y Utileras
EXEC PGM=IDCAMS DD SYSOUT=* DD * CLUSTER(NAME(ACCEN.MASTER.EMPL) REC(500 50)RECSZ(25 50)KEYS(10 0)VOLUME(DIR003)SHR(2 3)INDEXED DATA(NAME(ACCEN.MASTER.EMPL.DATA) INDEX(NAME(ACCEN.MASTER.EMPL.INDEX)) /*
El parmetro SHR indica las opciones activas, en caso de que el archivo se encuentre compartido. El primer subparmetro indica el nivel de acceso al archivo por una sola computadora y el segundo se refiere al nivel de acceso en caso de sean varias computadoras conectadas a travs de una red.
108 JCL y Utileras
EXEC PGM=IDCAMS DD SYSOUT=* DD * CLUSTER(NAME(ACCEN.MASTER.EMPL) REC(500 50)RECSZ(25 50)KEYS(10 0)VOLUME(DIR003)SHR(2 3)INDEXED DATA(NAME(ACCEN.MASTER.EMPL.DATA) INDEX(NAME(ACCEN.MASTER.EMPL.INDEX)) /*
El parmetro INDEXED indica que el archivo a crear es un KSDS. Si este parmetro no es codificado se asume INDEXED.
109 JCL y Utileras
EXEC PGM=IDCAMS DD SYSOUT=* DD * CLUSTER(NAME(ACCEN.MASTER.EMPL) REC(500 50)RECSZ(25 50)KEYS(10 0)VOLUME(DIR003)SHR(2 3)INDEXED DATA(NAME(ACCEN.MASTER.EMPL.DATA) INDEX(NAME(ACCEN.MASTER.EMPL.INDEX)) /*
Indica el nombre del archivo donde se almacenaran los datos del archivo.
110
JCL y Utileras
EXEC PGM=IDCAMS DD SYSOUT=* DD * CLUSTER(NAME(ACCEN.MASTER.EMPL) REC(500 50)RECSZ(25 50)KEYS(10 0)VOLUME(DIR003)SHR(2 3)INDEXED DATA(NAME(ACCEN.MASTER.EMPL.DATA) INDEX(NAME(ACCEN.MASTER.EMPL.INDEX)) /*
Este parmetro se utiliza para definir el nombre del ndice del archivo.
111
JCL y Utileras
El parmetro DELETE permite borrar archivos VSAM. Al borrar el CLUSTER se eliminan tambin el DATA y el INDEX que se encuentran asociados al archivo. Esta sintaxis tambin puede ser usada para el borrado de archivos secuenciales o particionados
112
JCL y Utileras
EXEC PGM=IDCAMS DD SYSOUT=* DD DSN=... DD DSN=... DD * REPRO INFILE(file1) OUTFILE(file2) SKIP(nnn) COUNT(nnnn)
/*
El parmetro REPRO permite: Copiar de VSAM a VSAM Copiar de secuencial a secuencial Convertir de secuencial a VSAM
113 JCL y Utileras
EXEC PGM=IDCAMS DD SYSOUT=* DD DSN=... DD DSN=... DD * REPRO INFILE (file1) OUTFILE(file2) SKIP(nnn) COUNT(nnnn)
/*
114
JCL y Utileras
EXEC PGM=IDCAMS DD SYSOUT=* DD DSN=... DD DSN=... DD * REPRO INFILE (ARCHIVO1) OUTFILE(ARCHIVO2) SKIP(100) COUNT(1500)
/*
El parmetro SKIP es opcional y es usado cuando se quiere indicar el nmero de registros que deben saltarse antes de comenzar la copia. Otra opcin es utilizar en el caso de estos archivos el parmetro FROMKEY, el cual indica la clave inicial a partir de la cual se quiere copiar. FROMKEY ('LOPEZ
115
')
JCL y Utileras
EXEC PGM=IDCAMS DD SYSOUT=* DD DSN=... DD DSN=... DD * REPRO INFILE (ARCHIVO1) OUTFILE(ARCHIVO2) SKIP(100) COUNT(1500)
/*
El parmetro COUNT indica el nmero de registros que quieren copiarse. En vez de este parmetro puede usarse TOKEY, en el cual se puede indicar la clave final. TOKEY ('LOPEZ99999')
116 JCL y Utileras
')
/*
El parmetro PRINT permite imprimir tanto archivos VSAM como secuenciales. Para limitar el listado se utilizan los mismos parmetros que en REPRO. El formato del listado puede ser de tres tipos: CHAR Caracteres HEX Hexadecimal DUMP caracter-Hexadecimal
117 JCL y Utileras
6.3. IEBCOPY
118
JCL y Utileras
IEBCOPY - Definicin
El IEBCOPY es una utilera que permite copiar archivos, principalmente particionados. Las funciones principales que tiene asociadas esta utilera son: Copiar miembros de un archivo particionado Copiar un archivo particionado Sobre otro particionado Sobre un secuencial Reemplazar miembros de un particionado.
119
JCL y Utileras
IEBCOPY - Codificacin
Debe codificarse despus de la sentencia EXEC como PGM=IEBCOPY namefile1 es el archivo de entrada donde se encuentran los datos a ser copiados namefile2 es el archivo de salida donde se guardarn los datos que fueron copiados. En SYSPRINT se encuentran los mensajes de salida del programa. SYSIN muestra la codificacin de los mandatos.
120 JCL y Utileras
//COPIAR EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //ENTRADA DD DSN=ACCEN.LIB1.FUENTES,DISP=SHR //SALIDA DD DSN=ACCEN.LIB2.FUENTES,DISP=SHR //SYSOUT1 DD * //SYSIN DD * COPY OUTDD=SALIDA,INDD=ENTRADA SELECT MEMBER=((item1,R),item2, (item3,itemn),item4)
OUTDD indica el nombre del archivo de salida donde se van a copiar los miembros. INDD indica el nombre del archivo de entrada donde se encuentran los miembros. Slo puede especificarse un archivo de entrada y uno de salida.
121 JCL y Utileras
La sentencia SELECT permite indicar los miembros a ser copiados. Esta funcin permite copiar, reemplazar o renombrar miembros Item1,item2 indican los nombres de los miembros a copiar El subparmetro R, indica que el miembro ser reemplazado con el mismo nombre en la librera de salida. El newname, es utilizado en caso de querer copiar un miembro con nombre diferente al original en la librera de salida.
122 JCL y Utileras
6.4. IEBGENER
123
JCL y Utileras
IEBGENER- Definicin
El IEBGENER es una utilera orientada al tratamiento de archivos secuenciales, pero tambin puede ser usada para archivos particionados.
Las funciones principales que tiene asociadas esta utilera son: Crear una copia de un archivo secuencial o crear una copia de un miembro en un archivo particionado Crear un archivo particionado o un miembro a partir de un Cambiar el blocaje de un archivo secuencial
124
JCL y Utileras
IEBGENER - Codificacin
Debe codificarse despus de la sentencia EXEC como PGM=IEBGENER SYSUT1 define al archivo de entrada que puede ser secuencial o particionado. SYSUT2 define al archivo de salida que puede ser un secuencial, particionado o un elemento de un archivo particionado. En SYSPRINT se encuentran los mensajes de ejecucin programa SYSIN es DUMMY, ya que para esta utilera no tiene sentencias de control.
125 JCL y Utileras
Cuando se trata de copiar un member de un archivo particionado a otro, la sintaxis de SYSUT1 y SYSUT2 cambia:
//SYSUT1 //SYSUT2 DD DD DSN=APHA.SBAS.ORIGINAL(member),DISP=SHR DSN=APHA.SBAS.COPIA(member),DISP=OLD
126
JCL y Utileras
127
JCL y Utileras
128
JCL y Utileras
Dependiendo del numero de versiones que sean definidas para el GDG, se deber hacer referencia a las versiones anteriores con n, es decir, -1,-2,-3,-4, etc. y a la ltima generacin se le asignar el valor 0. El mximo de generaciones permitidas es de 9999.
129
JCL y Utileras
//GDG EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE GDG (NAME(apl.name.gdg) LIMIT(n) [EMPTY/NOEMPTY] [SCRATCH/NOSCRATCH])
NAME. Define el nombre del GDG. LIMIT. Asigna el nmero mximo de generaciones (n). EMPTY. Cuando llega al lmite de generaciones, todas son descatalogadas. NOEMPTY. Al llegar al lmite de generaciones, se descataloga la ms antigua. SCRATCH NOSCRATCH. Indica que al descatalogar una generacin sea o no borrada definitivamente del volumen.
130 JCL y Utileras
Para crear la primera generacin vaca, es posible utilizar un archivo DUMMY. Depende de la instalacin la creacin de la primera generacin.
131
JCL y Utileras
132
JCL y Utileras
Prcticas
133
JCL y Utileras
Objetivo. Declarar los parmetros necesarios para la definicin de un JOB. Instrucciones. 1. Acceder a la librera ACCEN.Z.JCLLIB y editar el miembro JCL1 2. Codificar las instrucciones de la sentencia JOB necesarias para la ejecucin del miembro JCL1, de acuerdo con las siguientes indicaciones: El nombre del jcl deber ser : JCL1 Cuenta asociada : ACCENT Usuario el mismo de la cuenta asociada Clase de ejecucin y mensajes : X Memoria : 1024K. 3. Ejecutar el job. En caso de errores efectuar las correcciones necesarias, hasta que la ejecucin del job resulte exitosa.
134 JCL y Utileras
Prctica 2. Definicin de DD
Objetivo. Definir los archivos de entrada y salida necesarios para la ejecucin de un programa. Instrucciones. 1. Generar en la librera ACCEN.Z.JCLLIB, un jcl con el nombre de JCL2. 2. Codificar las instrucciones necesarias para ejecutar el programa PGMTEST, el cual se encuentra en la librera ACCEN.Z.COBOL. 3. El archivo que contiene los datos de entrada para el programa es: ACCEN.PBM.INTTEST 4. Ejecutar el job. En caso de errores efectuar las correcciones necesarias, hasta que la ejecucin del job resulte exitosa
135
JCL y Utileras
Objetivo. Generar un proc y el JCL de ejecucin correspondiente Instrucciones. 1. Generar en la librera ACCEN.Z.JCLLIB, un jcl con el nombre de PROCCAT. 2. Codificar las instrucciones necesarias para ejecutar el programa PGMTEST a travs de un procedimiento catalogado, el cual se encuentra en la librera ACCEN.Z.COBOL 3. El archivo que contiene los datos de entrada para el programa es: ACCEN.PBM.INTTEST 4. Generar en la librera ACCEN.Z.JCLLIB, un miembro nuevo con el nombre de JCL3, el cual contenga las instrucciones necesarias para ejecutar el procedimiento anterior. 5. Ejecutar el job. En caso de errores efectuar las correcciones necesarias, hasta que la ejecucin del job resulte exitosa.
136 JCL y Utileras
Objetivo. Generar un proceso in-stream. Instrucciones. 1. Generar en la librera ACCEN.Z.JCLLIB, un jcl con el nombre de JCL4. 2. Codificar las instrucciones necesarias para generar el proceso in-stream PROCIN que ejecute el programa PGMTEST, el cual se encuentra en la librera ACCEN.Z.COBOL. 3. El archivo que contiene los datos de entrada para el programa es: ACCEN.PBM.INTTEST 4. Ejecutar el job. En caso de errores efectuar las correcciones necesarias, hasta que la ejecucin del job resulte exitosa
137
JCL y Utileras
Prctica 5. Sort
Objetivo. Generar un jcl en el cual se utilicen las principales funciones de sort. Instrucciones. 1. Partiendo del miembro JCL4, generar uno nuevo con el nombre de JCL5. 2. De acuerdo con la estructura del archivo de salida, generado por el programa PGMTEST en las prcticas anteriores, ste ser usado como archivo de entrada para sta prctica para lo cual se requiere de adicionar los siguientes pasos: Seleccin de la informacin Ordenar por nm. De grupo y fecha de inicio. Seleccionar slo aquellos registros que tengan fecha de inicio 15/07/01. Dejar en el archivo de salida slo las columnas pertenecientes al nm. de grupo, fecha de inicio, fecha terminacin, nombre, importes de cuota mensual e inscripcin.
138 JCL y Utileras
Con el archivo obtenido, realizar la suma de los campos de importe seleccionando slo las columnas de grupo, fecha de ingreso, fecha de baja e importes. Utilizar como campo de ordenamiento el nmero de grupo. Ejecutar el job. En caso de errores efectuar las correcciones necesarias, hasta que la ejecucin del job resulte exitosa.
Nmero de Grupo Nombre del Curso Fecha de inicio Fecha de terminacin Nombre Inicial del nombre Primer apellido Nmero de alumno Cuota mensual Cuota de inscripcin Filler PIC X(04) PIC X(25) PIC X(08) PIC X(08) PIC X(15) PIC X(01) PIC X(15) PIC X(10) PIC 9(04)V99 PIC 9(04)V99 PIC X(36)
139
JCL y Utileras
Objetivo. Generar un jcl en el cual se muestre el manejo de GDGs. Instrucciones. 1. Codificar el la librera ACCEN.Z.JCLLIB, un nuevo miembro llamado JCL6, el cual contenga lo siguiente: Generacin de la estructura de un GDG con las siguientes caractersticas: Lmite de versiones: 3 Descatalogue la generacin ms antigua en caso de llegar al lmite de versiones No borre las generaciones descatalogadas Crear la primera generacin en vaco con ayuda del programa IEFBR14. Copiar el contenido del archivo de salida generado en el programa PGMTEST del JCL2 a la siguiente generacin (2)
140 JCL y Utileras
Borrar del archivo de salida generado por el programa PGMTEST en el JCL2 los ltimos tres renglones. Ejecutar el job a partir de este paso para crear la siguiente generacin (3). Copiar el contenido de la ltima generacin (3) a la siguiente generacin (4). Ejecutar el job a partir de este paso Copiar el contenido de la versin ms antigua a la siguiente versin (5).
141
JCL y Utileras