Post on 10-Jul-2015
JCL y Utileras
1
JCL y Utileras
ObjetivosEl 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.
2
JCL y Utileras
ndice1. 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
3
JCL y Utileras
ndice6. Utileras 6.1. DFSORT 6.2. IDCAMS 6.3 IEBCOPY 6.4. IEBGNENER 7. Generational Data Group (GDG)
4
JCL y Utileras
1. Introduccin
5
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).
6
JCL y Utileras
2. Conceptos de JCL
7
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)
8
JCL y Utileras
Trminos y Conceptos Generales
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.
9
JCL y Utileras
Tipos de JCL
In-stream.
Ejecutan los programas dentro del mismo job.
Procedimientos. Se ejecutan a travs de la definicin de procesos llamados por el JCL al momento de la ejecucin. (Procs)
Mixtos.
Son una combinacin de los dos anteriores.
10
JCL y Utileras
Sintaxis general de JCL La codificacin de un JCL debe empezar en las columnas 1 y 2 con //, salvo en algunos casos. El nombre que identifica cada paso del JCL deber comenzar con un caracter alfabtico de mximo de 8 caracteres a partir de la columna 3. Los parmetros utilizados en la codificacin del JCL debern ser separados por comas, y la declaracin de estos no deber exceder de la posicin 71 La codificacin de comentarios es con //*, los cuales debern terminar como mximo en la columna 72. La terminacin de un paso es indicada a travs de /* en las columnas 1 y 2.
11
JCL y Utileras
Sintaxis general de JCL
A continuacin se muestra un ejemplo en el que se puede ver la sintaxis de un JCL:123456789012345678901234567890123456789012345678901234567890123456789012 //JCLNAME JOB (PBM),'EJEMPLO',CLASS=C,MSGCLASS=C,MSGLEVEL=(1,1) //********************************************************************** //* CREACION DE ARCHIVO DE PRUEBA * //********************************************************************** //P01DE01 EXEC PGM=IEBGENER //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSUT1 DD * ABC456789112DEF67892123456789312 //SYSUT2 DD DSN=ACCEN.NBAS.PRUEBA, // DCB=(RECFM=FB,LRECL=32,BLKSIZE=0), // DISP=(NEW,CATLG,DELETE) //SYSIN DD * /*
12
JCL y Utileras
Sintaxis de las sentencias de JCL
Sentencia JOB EXEC DD Comando Delimitador Nulo Comentarios
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
Las principales sentencias utilizadas son:
JOB.
Identifica el inicio del job a ejecutarse.
EXEC. Principio de cada paso e identifica el programa o procedimiento a ser ejecutado
DD.
Define las entradas y salidas del proceso
15
JCL y Utileras
3.1 Sentencia JOB
16
JCL y Utileras
Sentencia JOB
//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)
//Jobname JOB (cuenta),'user',parm1,parm2...
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
//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)
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
Principales parmetros de la sentencia JOB
//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)
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 mensajes19 JCL y Utileras
Principales parmetros de la sentencia JOB
//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)
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
Principales parmetros de la sentencia JOB
//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)
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
Principales parmetros de la sentencia JOB
//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)
REGION=nnnn[K][M] Especifica el mximo de memoria asignada a nivel de todo el JCL.
Puede ser expresada en Kilobytes (K) o Megabytes (M).
22
JCL y Utileras
Principales parmetros de la sentencia JOB
//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)
NOTIFY=aaaaaaa
Especfica el usuario de TSO (aaaaaaa) al que se notificar al terminar de ejecutarse el job.
23
JCL y Utileras
Principales parmetros de la sentencia JOB
//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)
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
GE - Mayor o igual que LE - Menor o igual que NE - Distinto de24 JCL y Utileras
Parmetros adicionales de la sentencia JOB
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 SYSOUT25 JCL y Utileras
3.2 Sentencia EXEC
26
JCL y Utileras
Sentencia EXEC
//P01DE01
EXEC PGM=BG3C3330,PARM='20010101',COND=(0,EQ)
//stepname EXEC [PGM][PROC]=programa/procedimiento,parm1,parm2
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
Principales parmetros de la sentencia EXEC
//P01DE01
EXEC PGM=BG3C3330,PARM='20010101',COND=(0,EQ)
PARM=valor
Permite informar valores al programa en ejecucin.
Pueden informarse hasta 100 caracteres como valores de un parmetro.
28
JCL y Utileras
Principales parmetros de la sentencia EXEC
Parmetros para un programa usando PARMDECLARACION EN PROGRAMA*********************************************** * LINKAGE SECTION * *********************************************** LINKAGE SECTION. * 01 REG-PARM. 05 PARM-LONG PIC X(2). 05 PARM-TAREA PIC X(4). 05 PARM-ARCHIVO PIC X(3). *********************************************** * PROCEDURE DIVISION *********************************************** PROCEDURE DIVISION USING REG-PARM.
DECLARACION EN JCL Programa sin DB2//P01DE01 EXEC PGM=BG4CINT0,PARM=9400MOV,COND=(0,EQ)
Programa con DB2//SYSTSIN DD * DSN SYSTEM(DB2D) RUN PROGRAM(BG4CINT0) PLAN(BVDBGPB) PARM('9400MOV') END
29
JCL y Utileras
Principales parmetros de la sentencia EXEC
//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
Parmetros adicionales de la sentencia EXEC
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
//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090, // DISP=(NEW,CATLG,DELETE),UNIT=3390, // SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, // DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)
//ddname //
DD DSN= ____,DISP=_____,UNIT=____, SPACE=_____,VOL=_____,DCB=_____
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
Principales parmetros de la sentencia DD
PROGRAMA COBOL. SELECT IN-FILE ASSIGN TO E1DQ0001 DEFINICION DE DD //E1DQ0001 DD DSN=ACCEN.SBAS.DATOS
34
JCL y Utileras
Principales parmetros de la sentencia DD
//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090, // DISP=(NEW,CATLG,DELETE),UNIT=3390, // SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, // DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)
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
Principales parmetros de la sentencia DD
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
Principales parmetros de la sentencia DD
//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090, // DISP=(NEW,CATLG,DELETE),UNIT=3390, // SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, // DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)
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
Principales parmetros de la sentencia DD
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
Principales parmetros de la sentencia DD
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
Principales parmetros de la sentencia DD
Reglas de uso para parmetros DISP:
DISP=
NEW OLD SHR MOD ,
,DELETE ,KEEP ,PASS ,CATLG ,UNCATLG ,
,DELETE ,KEEP ,PASS ,CATLG ,UNCATLG
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 codificado40 JCL y Utileras
Principales parmetros de la sentencia DD
//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090, // DISP=(NEW,CATLG,DELETE),UNIT=3390, // SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, // DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)
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
Principales parmetros de la sentencia DD
//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090, // DISP=(NEW,CATLG,DELETE),UNIT=3390, // SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, // DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)
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
Principales parmetros de la sentencia DD
//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090, // DISP=(NEW,CATLG,DELETE),UNIT=3390, // SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, // DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)
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
Principales parmetros de la sentencia DD
//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090, // DISP=(NEW,CATLG,DELETE),UNIT=3390, // SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, // DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)
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
Principales parmetros de la sentencia DD
//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090, // DISP=(NEW,CATLG,DELETE),UNIT=3390, // SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, // DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)
DCB=(LRECL=______,RECFM=_____,BLKSIZE=_____) LRECL=______,RECFM=_____,BLKSIZE=_____
Data Control Block (DCB). archivo.
Indica las caractersticas de los registros del
La sentencia DCB, puede ser omitida y especificar nicamente los subparmetros de sta (LREC,RECFM,BLKSIZE).45 JCL y Utileras
Principales parmetros de la sentencia DD
//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090, // DISP=(NEW,CATLG,DELETE),UNIT=3390, // SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, // DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)
LRECL=nnnn
Especifica la longitud del registro .
46
JCL y Utileras
Principales parmetros de la sentencia DD
//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090, // DISP=(NEW,CATLG,DELETE),UNIT=3390, // SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, // DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)
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
Principales parmetros de la sentencia DD
//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090, // DISP=(NEW,CATLG,DELETE),UNIT=3390, // SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, // DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)
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
Parmetros adicionales de la sentencia DD
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
Indica el nmero de copias (entre 1 y 255) que se desea obtener de un listado//S1DQ0001 DD SYSOUT=X,COPIES=4
49
JCL y Utileras
Parmetros adicionales de la sentencia DD
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
3.4 Sentencias Especiales
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
Paso de parmetros para un programa usando SYSINDECLARACION EN PROGRAMA*********************************************** * VARIABLES *********************************************** WORKING- STORAGE SECTION. * 01 VARIABLES-SYSIN. 05 WS-TARJETA. 10 FECHA-SISTEMA. 15 FECHA-SISTEMA-AA PIC X(2). 15 FECHA-SISTEMA-MM PIC X(2). 15 FECHA-SISTEMA-DD PIC X(2). ********************************************** * PROCEDURE DIVISION ********************************************** PROCEDURE DIVISION. 1000-RECIBE-FECHA. ACCEPT FECHA-SISTEMA FROM SYSIN.
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
Cdigos de Error y ABEND
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 hexadecimal56 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
Help LINE 1-2 (2) SCROLL ===> CSR
------------------------------------------------------------------------------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
ASYS STATUS MEX3
IDBEX26X JOB05676 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 spoolIEF142I 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
Un procedimiento es un conjunto de sentencias que definen uno o mas pasos de trabajo.
Se utilizan cuando este grupo de sentencias son usadas con frecuencia en el mismo o distinto job.
Los procedimientos son clasificados en : In-stream Catalogados Mixtos
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
//CARGA //PASO1 //CLIENTES //... //PASO2
PROC EXEC DD EXEC
PGM=... DSN=... PGM=...
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 convierten66
X/
+/JCL y Utileras
6. Utileras JCL
67
JCL y Utileras
Utileras del sistema
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
IEBGENER Permite copiar archivos secuenciales
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 control80 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 decimal81 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
DFSORT Reformateo de datos//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 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
DFSORT Reformateo de datos
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
DFSORT Reformateo de datos
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
DFSORT reas de trabajo//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 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 SORT91 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.
No se puede usar la sentencia SUM, en este caso
92
JCL y Utileras
6.2. IDCAMS
93
JCL y Utileras
IDCAMS - DefinicinEl 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 - DefinicinUn 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
IDCAMS - Tipos de VSAM
Los archivos VSAM pueden clasificarse de la siguiente forma:
ESDS
Los registros son almacenados y recuperados en el mismo orden en el que se graban
KSDS
Los registros se recuperan en el orden de un campo definido como clave. Son los ms usados.
RRDS
Los registros se almacenan en el orden dado por un nmero de secuencia.
96
JCL y Utileras
IDCAMS - Archivos ESDSLos archivos ESDS (Entry Sequenced Data Storage) tienen las siguientes caractersticas: No tienen ndices ni claves
Los registros se aaden al final del archivo
Slo pueden ser accedidos en forma secuencial
Son similares a los archivos secuenciales, pero no pueden grabarse en cinta
97
JCL y Utileras
IDCAMS - Archivos KSDSLos archivos KSDS (Key Sequenced Data Storage) tienen las siguientes caractersticas: Necesitan una clave, que debe ser nica, para identificar el registro.
La clave se utiliza para insertar el registro en el archivo y recuperarlo despus.
Admite claves alternativas (secundarias), no nicas
Admite acceso directo (por clave) o secuencial
98
JCL y Utileras
IDCAMS - Archivos RRDSLos archivos RRDS (Relative Record Data Storage) tienen las siguientes caractersticas: No tienen ndices ni claves. Los registros se aaden segn un nmero asignado de 1 a n, siendo n el nmero mximo de registros del archivo. Este nmero puede ser asignado por el programa del usuario o por el sistema. Admite acceso directo (por nmero) o secuencial.
99
JCL y Utileras
IDCAMS - Codificacin
//stepname //SYSPRINT //SYSIN ... ... /*
EXEC PGM=IDCAMS DD SYSOUT=* DD *
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
IDCAMS - Creacin de un archivo VSAM
//DEFINIR //SYSPRINT //SYSIN DEFINE
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
IDCAMS - Creacin de un archivo VSAM
//DEFINIR //SYSPRINT //SYSIN DEFINE
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
IDCAMS - Creacin de un archivo VSAM
//DEFINIR //SYSPRINT //SYSIN DEFINE
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 NAME identifica al archivo en el catlogo.
103
JCL y Utileras
IDCAMS - Creacin de un archivo VSAM
//DEFINIR //SYSPRINT //SYSIN DEFINE
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
IDCAMS - Creacin de un archivo VSAM
//DEFINIR //SYSPRINT //SYSIN DEFINE
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
IDCAMS - Creacin de un archivo VSAM
//DEFINIR //SYSPRINT //SYSIN DEFINE
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
IDCAMS - Creacin de un archivo VSAM
//DEFINIR //SYSPRINT //SYSIN DEFINE
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 VOLUME especifica el nombre del disco en el que se va a generar el archivo.
107
JCL y Utileras
IDCAMS - Creacin de un archivo VSAM
//DEFINIR //SYSPRINT //SYSIN DEFINE
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
IDCAMS - Creacin de un archivo VSAM
//DEFINIR //SYSPRINT //SYSIN DEFINE
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
IDCAMS - Creacin de un archivo VSAM
//DEFINIR //SYSPRINT //SYSIN DEFINE
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
IDCAMS - Creacin de un archivo VSAM
//DEFINIR //SYSPRINT //SYSIN DEFINE
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
IDCAMS - Borrado de un archivo VSAM
//BORRADO //SYSPRINT //SYSIN
EXEC PGM=IDCAMS DD SYSOUT=* DD * DELETE ACCEN.MASTER.EMPL
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
IDCAMS - Copia de un archivo VSAM
//DEFINIR //SYSPRINT //file1 //file2 //SYSIN
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 VSAM113 JCL y Utileras
IDCAMS - Copia de un archivo VSAM
//DEFINIR //SYSPRINT //file1 //file2 //SYSIN
EXEC PGM=IDCAMS DD SYSOUT=* DD DSN=... DD DSN=... DD * REPRO INFILE (file1) OUTFILE(file2) SKIP(nnn) COUNT(nnnn)
-
/*
Los parmetros INFILE y OUTFILE especifican los archivos de entrada /salida.
114
JCL y Utileras
IDCAMS - Copia de un archivo VSAM
//DEFINIR //SYSPRINT //ARCHIVO1 //ARCHIVO2 //SYSIN
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 ('LOPEZ115
')JCL y Utileras
IDCAMS - Copia de un archivo VSAM
//DEFINIR //SYSPRINT //ARCHIVO1 //ARCHIVO2 //SYSIN
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
IDCAMS - Impresin de un archivo VSAM
//DEFINIR //SYSPRINT //namefile //SYSIN
EXEC DD DD DD PRINT CHAR
PGM=IDCAMS SYSOUT=* DSN=... * INFILE(namefile) FROMKEY('LOPEZ
')
/*
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-Hexadecimal117 JCL y Utileras
6.3. IEBCOPY
118
JCL y Utileras
IEBCOPY - DefinicinEl 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
//stepname EXEC //SYSPRINT DD //namefile1 DD //namefile2 DD //SYSIN DD ... /*
PGM=IEBCOPY SYSOUT=* DSN=... DSN=... *
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
IEBCOPY - Copia de archivos particionados
//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
IEBCOPY - Copia de archivos particionados//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,newname),item4)
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- DefinicinEl 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
//stepname //SYSPRINT //SYSUT1 //SYSUT2 //SYSIN /*
EXEC PGM=IEBGENER DD SYSOUT=* DD DSN=... DD DSN=... DD DUMMY
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
IEBGENER - Copia de archivos secuenciales
//stepname //SYSPRINT //SYSUT1 //SYSUT2 // // // //SYSIN /*
EXEC PGM=IEBGENER DD SYSOUT=* DD DSN=APHA.SBAS.ORIGINAL,DISP=SHR DD DSN=APHA.SBAS.COPIA, DISP=(NEW,CATLG,DELETE),UNIT=3390, SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370) DD DUMMY
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
7. Generational Data Group (GDG)
127
JCL y Utileras
Generational Data Group (GDG) Definicin
Un Generational Data Group(GDG), cronolgicamente o funcionalmente.
es un grupo de archivos relacionados
Cada archivo que depende de un GDG es llamado generacin.
128
JCL y Utileras
Generational Data Group (GDG) Definicin
Ejemplo de un GDG, con un lmite de 3 versiones:Nombre lgico SALDOS.CTAS(0) SALDOS.CTAS(-1) SALDOS.CTAS(-2) Nombre Fsico SALDOS.CTAS.G0003V00 SALDOS.CTAS.G0002V00 SALDOS.CTAS.G0001V00 Referencia ltima generacin Penltima generacin Ante-penltima generacin
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
Generational Data Group (GDG) Creacin de un GDG
//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
Generational Data Group (GDG) Adicin de la primera generacin
//CREAGDG //SYSPRINT //GDGDD1 // // //SYSIN
EXEC PGM=IEFBR14 DD SYSOUT=* DD DSN=apl.name.gdg(+1), DISP=(NEW,CATLG,DELETE),UNIT=3390, SPACE=(TRK,(5,5)) DD *
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
Generational Data Group (GDG) Borrado de un GDG
//BORRAGDG EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE apl.name.gdg GDG
132
JCL y Utileras
Prcticas
133
JCL y Utileras
Prctica 1. Sentencia JOB
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
Prctica 3. Procedimientos catalogados
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
Prctica 4. Procedimientos in-stream
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
Prctica 5. Sort (Cont.)
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)
Estructura del Archivo de entrada inicial
139
JCL y Utileras
Prctica 6. Generational Data Group
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
Prctica 6. Generational Data Group (Cont.)
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