Jcl y Y Utilerias

Embed Size (px)

Citation preview

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

Print

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