33
Curso de JCL Junio 2000 CCH Version 1.0 DBSCI Soporte al Desarrollo CURSO DE JCL

Manual JCL

Embed Size (px)

Citation preview

Page 1: Manual JCL

Curso de JCL

Junio 2000

CCH

Version 1.0 DBSCI Soporte al Desarrollo

CURSO DE JCL

Page 2: Manual JCL

GTS CBA CoC International Systems Page: 2 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

CCH Junio 2000 v1.0

Índice:

INTRODUCCIÓN ...................................................................................................................................3 SENTENCIA DE CONTROL JOB .........................................................................................................4

FORMATO ..........................................................................................................................................4 PARAMETROS ...................................................................................................................................4 EJERCICIOS........................................................................................................................................8 SOLUCIONES .....................................................................................................................................9

SENTENCIA DE CONTROL EXEC ....................................................................................................10 FORMATO ........................................................................................................................................10 PARÁMETROS .................................................................................................................................10 EJERCICIOS......................................................................................................................................12 SOLUCIONES ...................................................................................................................................13

SENTENCIA DD..................................................................................................................................14 FORMATO ........................................................................................................................................14 PARÁMETROS .................................................................................................................................14 DD’s ESTÁNDARES .......................................................................................................................20 EJERCICIOS......................................................................................................................................21 SOLUCIONES ...................................................................................................................................22

DEFINICIÓN DE PROCEDIMIENTOS “IN STREAM” Y CATALOGADOS ..................................23 PROCEDIMIENTOS CATALOGADOS ..........................................................................................23 PROCEDIMIENTOS “IN STREAM” ..............................................................................................23 PARÁMETROS .................................................................................................................................24 EJERCICIOS......................................................................................................................................25 SOLUCIONES ...................................................................................................................................26

PROGRAMAS DE UTILIDAD.............................................................................................................27 INTRODUCCIÓN..............................................................................................................................27 IEBGENER ........................................................................................................................................28 IEFBR14.............................................................................................................................................28 IDCAMS ............................................................................................................................................29 SORT..................................................................................................................................................32

Page 3: Manual JCL

GTS CBA CoC International Systems Page: 3 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

INTRODUCCIÓN El JCL (Job Control Language) es el lenguaje que utiliza IBM para construir las cadenas de ejecución de programas batch.

La unidad de explotación es el JOB, donde mediante tres tipos diferentes de sentencias puede ejecutarse uno o más programas.

La llamada a un programa dentro de un JOB se le denomina PASO.

Cuando varios PASOS son comunes (en contenido y en orden de ejecución) a varios JOBS, se puede crear una unidad de explotación que denominaremos PROCEDIMIENTO.

Un PROCEDIMIENTO puede estar expandido dentro del JOB o almacenado en una librería, en cuyo caso, sólo se incluye la llamada al mismo.

La articulación de esta arquitectura se lleva a cabo mediante las tres sentencias mencionadas, las cuales utilizan una serie de parámetros que configuran la gama de posibilidades que cada una posee.

La sentencia de control JOB es la que determina la unidad de explotación batch.

La sentencia de control EXEC llama a la ejecución bien de un programa bien de un procedimiento.

La sentencia de control DD configura la información que el sistema necesita para tratar un fichero.

Existen programas del sistema que nos ayudan en el tratamiento de ficheros y de funciones, evitando tener que codificar programas, son las llamadas UTILIDADES.

En este curso veremos las utilidades más habituales y sus usos más frecuentes.

Page 4: Manual JCL

GTS CBA CoC International Systems Page: 4 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

SENTENCIA DE CONTROL JOB

FORMATO //XXXXXXXX JOB (XXXX,XXXX),XXXXX,CLASS=X,COND=(X,XX), // MSGCLASS=X,REGION=XXXXX,NOTIFY=XXXXXXXX, // PRTY=X, TIME=XXXX, TYPRUN=XXXXX El final de JOB viene indicado:

1. Sentencia nula ( // ). 2. Otra sentencia JOB.

PARAMETROS

Nombre del JOB

• Identifica a la sentencia.

• Está compuesto de 1 a 8 caracteres alfanuméricos y no puede incluir caracteres especiales .

Información de contabilidad

• Es un parámetro posicional: si no se pone, debe ponerse una coma en su lugar.

• Especifica la información de contabilidad exigida por la instalación, en nuestro caso: Departamento y nombre de la aplicación.

• Entre paréntesis.

• Como máximo 142 posiciones.

Nombre del programador

• Es un parámetro posicional.

• Identifica al responsable del JOB.

• Va detrás de la información de contabilidad.

• Tiene una longitud máxima de 20 caracteres.

Page 5: Manual JCL

GTS CBA CoC International Systems Page: 5 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

Parámetro CLASS

• Es un parámetro de palabra clave (no importa en orden o posición).

• Identifica la cola o clase de ejecución.

• Las clases asignadas para trabajar en desarrollo son:

• B: para compilaciones, binds y pruebas cortas (menos 30 seg. CPU).

• D: para pruebas de larga duración (más de 30 seg. y menos de 2 horas de CPU).

Parámetro COND

• Es un parámetro de palabra clave.

• Formato: COND=( (CÓDIGO,OPERACIÓN),……).

• CÓDIGO: valor con el que se compara (entre 0 y 4095).

• OPERACIÓN: Tipo de comparación

GT: mayor

GE: mayor o igual

LT: menor

LE: menor o igual

EQ: igual

NE: distinto

• El return-code es el objeto de la comparación, ejecutándose o no la cadena según cuadro adjunto.

• Cuando hay varias condiciones, en el momento que se cumple una o varias de ellas no se lleva a cabo la ejecución.

Condición Continuación del Job Terminación del Job COND=(CODE,GT) RC >= CODE RC < CODE COND=(CODE,GE) RC > CODE RC <= CODE COND=(CODE,LT) RC <= CODE RC > CODE COND=(CODE,LE) RC < CODE RC >= CODE COND=(CODE,EQ) RC <> CODE RC = CODE COND=(CODE,EN) RC = CODE RC <> CODE

Ejemplo: COND=(5,LT) � Si 5 menor que RC, no se produce la ejecución.

Page 6: Manual JCL

GTS CBA CoC International Systems Page: 6 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

Parámetro MSGCLASS

• Es un parámetro de palabra clave.

• Identifica la clase de salida donde queremos que vayan todos los mensajes del sistema y las sentencias de control después de la ejecución del JOB.

• Las clases más habituales en desarrollo son:

X : Lo deja en hold (H)

1 : Lo deja en hold y no se borra (H)

0 : Se imprime

Parámetro NOTIFY

• Es un parámetro de palabra clave.

• Envía un aviso a la sesión de TSO donde está conectado el usuario indicado, cuando el JOB termina su ejecución.

• Formato: NOTIFY= Código de usuario TSO.

Parámetro PRTY

• Es un parámetro de palabra clave.

• Especifica la prioridad de selección que se asigna al JOB dentro de la clase de ejecución.

• Se expresa en valores entre 0 y 25.

• En nuestra instalación a cada JOB se le asigna, por defecto, una prioridad en función de la clase de ejecución, estando prohibida la codificación de éste parámetro.

Parámetro REGION

• Es un parámetro de palabra clave.

• Delimita la cantidad de memoria virtual que se puede tomar en la paginación (GETMAIN).

• Los valores en que se puede expresar son:

• Un valor numérico, indica el número de bytes

• Un valor numérico seguido de la letra K, indica número de Kbytes

• Un valor numérico seguido de la letra M, indica el número de megabytes

• Si el valor numérico especificado es impar el sistema asigna el valor par superior.

Parámetro TIME

Page 7: Manual JCL

GTS CBA CoC International Systems Page: 7 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

• Es un parámetro de palabra clave.

• Especifica el máximo tiempo que puede un JOB utilizar la CPU.

• En nuestra instalación el tiempo está limitado por la clase de ejecución.

• Si codificamos el valor 1440 indicamos tiempo ilimitado (caso permitido para situaciones excepcionales y autorizadas).

Parámetro TYPRUN

• Es un parámetro de palabra clave.

• Indica opciones de ejecución del JOB.

• Valores posibles:

• HOLD : el JOB se coloca en cola de ejecución, pero no se ejecuta hasta que se lo libera expresamente.

• SCAN: verifica si la sintaxis del JCL es correcta.

Page 8: Manual JCL

GTS CBA CoC International Systems Page: 8 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

EJERCICIOS Codificar las siguientes sentencias JOB:

1º.- )

• El JOB se cargará al departamento de Formación (0777).

• Nombre de la aplicación: FM

• Nombre del JOB: FMA01001

• Nombre del programador: Peribáñez

• De ejecución corta (menos de 30 seg. de CPU)

• Si algún paso devuelve un código 7 o mayor el JOB dejará de ejecutarse

• Se requiere información de todo tipo de mensajes y las sentencias de entrada de JCL

2º.-)

• Nombre del JOB: FMA01002

• Sólo se quiere verificar la sintaxis del JOB

• Nombre del programador: Bloom

• Es un proceso de duración superior a las 2 horas de CPU

• El JOB dispondrá de 6 pasos, teniendo que comprobar que todos ellos devuelven un código inferior a 5.

• Utiliza páginas de 180 K

• Debe notificar al usuario U999999 cuando termine

• Al departamento al cual se imputa es 0721

• Sólo nos interesa la sentencia JOB en la clase de salida 1.

Page 9: Manual JCL

GTS CBA CoC International Systems Page: 9 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

SOLUCIONES 1º.-)

//FMA01001 JOB (O777,FM),PERIBAÑEZ ,CLASS=B, // COND=(7,LT),MSGCLASS=0

2º.-) //FMA01002 JOB (721),BLOOM,CLASS=D,COND=(5,LE), // MSGCLASS=1,TIME=1440,REGION=180K, // NOTIFY=U999999,TYPRUN=SCAN

Page 10: Manual JCL

GTS CBA CoC International Systems Page: 10 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

SENTENCIA DE CONTROL EXEC

FORMATO //XXXXXXXX EXEC PGM=XXXXXX,REGION=XXXX,

// COND=(X,XX),PARM=(XX,XX) Llamada a un programa //XXXXXXXX EXEC PROC=XXXXXX,ACCT=(XXXX,XXXX), // COND=(X,XX),PARM=(XX,XX),TIME=XXXX, // REGION=XXXX Llamada a un procedimiento

PARÁMETROS

Nombre del EXEC

• Identifica a la sentencia.

• Está compuesta de 1 a 8 caracteres alfanuméricos y no puede incluir caracteres especiales.

Parámetro PGM

• Es un parámetro posicional.

• Indica que la sentencia EXEC está haciendo referencia a un programa para ejecutarlo.

• Formato: PGM=nombre del programa

• El nombre del programa puede tener de 1 a 8 caracteres no especiales y el primero debe ser no numérico.

Parámetro PROC

• Es un parámetro posicional.

• Indica que la sentencia EXEC hace referencia a un procedimiento para ejecutarlo.

• Formato: PROC=nombre del procedimiento

• Este parámetro y el anterior son mútuamente excluyentes.

Page 11: Manual JCL

GTS CBA CoC International Systems Page: 11 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

Cuando en la llamada a un procedimiento queramos añadir o modificar alguno de los parámetros de un paso del mismo:

Parámetro.nombre del paso=valor

Se explica en el capítulo sobre los procedimientos.

Parámetro COND

• Es un parámetro de palabra clave.

• Especifica bajo que condiciones se ejecutará el paso.

• Formato:

COND[.nom. paso / proc]=[(código, operac.)] / [even / only]

• Código / operación: igual que el parámetro COND de la tarjeta JOB.

• Even: indica que este paso se ha de ejecutar aunque algún paso anterior haya terminado anormalmente.

• Only: indica que este paso sólo se ejecutará si algún paso anterior ha terminado anormalmente.

Parámetro PARM

• Es un parámetro de palabra clave.

• Su función consiste en pasar datos a un programa.

• Formato: PARM[.nombre paso proc]=(datos)

Parámetro REGION

• Es un parámetro de palabra clave.

• Su función es la misma que en la tarjeta JOB pero ceñida al paso.

Page 12: Manual JCL

GTS CBA CoC International Systems Page: 12 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

EJERCICIOS Codificar las siguientes sentencias JOB:

1º.- )

• Llamar al programa PFME000.

• Tomar como información contable la especificada en la en la sentencia JOB.

• Sólo se ejecutará si el código de los pasos anteriores es inferior a 12.

2º.-)

• Llamar al programa PFME001 que trabaja con DLI. El programa gestor del DLI se llama DFSRRC00.

• Se deben pasar los siguientes datos:

DLI,nombre programa,PSB,7,0000,,0,,N,0,y,,,,,

• Utiliza páginas de 1024 K.

• Solo se ejecutará si algún paso anterior ha ido mal.

3º.-)

• Llamar al programa PFME002 que trabaja con DB2. El programa gestor del DB2 se llama IKJEFT01.

• Utiliza páginas de 8 megas.

• Solo se ejecutará si todos los pasos anteriores han ido bien.

Page 13: Manual JCL

GTS CBA CoC International Systems Page: 13 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

SOLUCIONES 1º.-)

//EJERC1 EXEC PGM=PFME000,COND=(12,LE) 2º.-) //EJERC2 EXEC PGM=DFSRRC00, // PARM(DLI,PFME001,PS,7,0000,,0,,N,,0,T,,,,,), // REGION=1024K,COND=ONLY

3º.-)

//EJERC3 EXEC PGM=IKJEFT01, // REGION=8M,COND=(0,NE)

Page 14: Manual JCL

GTS CBA CoC International Systems Page: 14 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

SENTENCIA DD

FORMATO //XXXXXXXX DD DDNAME=XXX.XXXXXXX,DISP=(XXX,XXX,XXX), // SPACE=(XXXX),LABEL(XXXX), DCB=(XXXX),

// AMP=XXXXX,UNIT=XXXX,DSORG=(XX),EXPDT=XXXX

PARÁMETROS

Nombre lógico / físico

• El nombre lógico es que precede a la DD y se corresponde con el nombre ‘external’ que hayamos puesto en la select de nuestro programa.

• El nombre físico es el que tiene el fichero en el catálogo.

Parámetro *

• Es un parámetro posicional

• Indica que el fichero que define esta DD va a continuación en el enunciado del JCL.

• Formato :

//NOMFICH DD *

DATOS

/*

• El fin del fichero viene indicado por:

• Delimitador /*

• Sentencia de control //

• Caracteres de EOF.

• Carácter definido como delimitador.

Page 15: Manual JCL

GTS CBA CoC International Systems Page: 15 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

Parámetro DLM

• Es un parámetro de palabra clave.

• Nos permite definir un delimitador

Formato: //XXXXXXX DD *,DLM=YY

Datos

YY

Parámetro DUMMY

• Es un parámetro posicional.

• Nos permite definir un fichero ficticio, el programa lo abrirá, incluso efectuará operaciones de E/S sobre él, sin embargo el sistema ignorará estas peticiones.

• Formato: //NOMFICH DD DUMMY

Parámetro SYSOUT

• Es un parámetro posicional

• Su objeto es definir las características de un fichero de salida.

• Formato: SYSOUT=([clase][,programa][,form])

• Clase: clase de salida

• Programa : Nombre del programa que lo escribe. Por defecto se utiliza el estándar

• Form: Tipo de formulario

• Normalmente se codifica: SYSOUT=* y toma por defecto lo especificado en MSGCLASS.

• Este parámetro se utiliza para los DISPLAYS de programas y las salidas con información relativa al JCL y la ejecución del JOB.

Page 16: Manual JCL

GTS CBA CoC International Systems Page: 16 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

Parámetro DSNAME ( = DSN)

• Es un parámetro de palabra clave.

• Indica el nombre con el que el sistema debe localizar, en caso de existir, o crear, si es nuevo, el fichero definido en la sentencia DD.

• Formato: //NOMFICH DD DSN=Nombre físico del fichero

• El formato del nombre físico puede ser:

• PFM.FFM001S para ficheros secuenciales

• PFM.FFM002K para ficheros VSAM

• PFM.PARAM.DATA(PFMA0003) para particionados

• PFM.FFM000.G(+1) para ficheros de un grupo de generación.

• Los grupos de generación permiten mantener versiones diferentes de un fichero. El sistema admite hasta 255 versiones.

• Ejemplo GDG:

Límite de versiones 3

Si incrementamos una nueva versión � (+1)

Antes Después

0

0 -1

-1 -2

-2 se pierde

La nueva versión tendrá el número 0, la anterior -1 y la más antigua -2.

Parámetro DISP

• Es un parámetro de palabra clave.

• Indica la disponibilidad del fichero al inicio del paso, después y si el paso acaba normalmente.

• Formato: DISP=([posición1][,posición2][,posición3])

Posición1: Disposición del fichero al inicio del paso

Valores:

• NEW � El fichero no existe, se crea en el paso.

• OLD � El fichero existe, acceso exclusivo.

• SHR � El fichero existe, acceso compartido.

• MOD � El fichero existe, acceso exclusivo, se posiciona al final del fichero en el OPEN. Si no existe, lo crea.

Page 17: Manual JCL

GTS CBA CoC International Systems Page: 17 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

• Por defecto asume NEW.

Posición2: Disposición del fichero al finalizar el paso de forma normal (sin errores).

Valores:

• DELETE � Borra el fichero al final del paso.

• KEEP � Guarda el fichero al final del paso.

• PASS � Borra el fichero al final del JOB.

• CATLG � Se guarda el fichero y se cataloga.

• UNCATLG � Se guarda el fichero y se descataloga.

• Por defecto asume DELETE si posición1 NEW y KEEP si posición1 OLD.

• Diferencias entre KEPP y PASS:

Si en un paso codificamos KEEP y en un paso posterior intentamos acceder a este fichero, hay que volver a codificar toda la información sobre el fichero, si codificamos PASS no es necesario.

Cuando se trabaja con cintas, KEEP descarga la cinta al final de paso y la volverá a pedir en pasos posteriores si la necesita. Si codificamos PASS retiene la cinta.

Posición3: Disposición del fichero al finalizar el paso de forma anormal (con errores).

Valores:

• Igual que en posición2 (KEEP, PASS, CATLG, UNCATLG).

• Asume por defecto lo indicado en posición2.

NOTA.- con los ficheros particionados la DISP tiene aplicación sobre la librería, nunca sobre el miembro.

Page 18: Manual JCL

GTS CBA CoC International Systems Page: 18 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

Parámetro SPACE

• Es un parámetro de palabra clave.

• Indica la del espacio para el fichero que se está generando.

• Sólo debe codificarse si DISP=NEW

• Formato:

SPACE=(UUU,(PPP,SSS,DDD),RLSE,TTTT,ROUND)

UUU: unidades de espacio en disco valores:

TRK : Pistas

CYL : Cilindros

BLOQ: Bloques

PPP: asignación del número de unidades para la asignación primaria de espacio.

SSS: asignación del número de unidades para las asignaciones secundarias de espacio. Máximo 16 extensiones.

DDD: Número de bloques de 256 bytes que forman el directorio (sólo para ficheros particionados).

RLSE: Libera el espacio no utilizado.

Parámetro LABEL

• Es un parámetro de palabra clave.

• Formato: LABEL=[(secuencia][,etiquetas][,expiración])

• Secuencia: nro. de posición relativa del fichero en el volumen.

• Etiquetas:

SL: estándar de IBM.

SUL: estándar de IBM y de usuario.

AL: etiqueta ANS.

AUL: etiqueta ANS y de usuario.

NSL: sin etiqueta estándar.

NL: sin ningún tipo de etiqueta.

• Expiración:

EXPDT: AADDD fecha de expiración (años de 360 días).

RETPD: número de días.

Page 19: Manual JCL

GTS CBA CoC International Systems Page: 19 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

Parámetro DCB

• Es un parámetro de palabra clave.

• Formato: DCB=(operando1, operando2, …)

• Los operandos pueden ser:

RECFM: Formato o tipo de registro.

U: indefinido.

V: longitud variable.

VB: longitud variable y bloqueado.

F: longitud fija.

FB: longitud fija y bloqueado.

LRECL: longitud en bytes del registro.

BLKSISE: longitud en bytes del bloque. Se calcula automáticamente en nuestra instalación.

DSORG: organización del fichero.

PS: secuencial.

PO: particionado.

DEN: densidad de la cinta o cartucho (entre 0 y 4).

Parámetro UNIT

• Es un parámetro de palabra clave

• Formatos:

UNIT=(nombre genérico)

UNIT=AFF=(nombre de DD)

• Nombre genérico: nombre que identifica una serie de dispositivos:

SYSDA: disco.

CART: cartucho.

CTAPE: cinta.

• AFF: indica que a este fichero se le debe asignar la misma unidad que al fichero definido en una sentencia DD anterior dentro del mismo paso.

Page 20: Manual JCL

GTS CBA CoC International Systems Page: 20 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

DD’s ESTÁNDARES

JOBLIB:

• Indica las librerías de fases para todo el JOB.

• Debe ser la primera DD.

• No se puede utilizar JOBLIB dentro de un procedimiento catalogado.

STEPLIB:

• Indica las librerías de fases para un paso.

• Si se codifica STEPLIB se ignora loa JOBLIB.

• Puede aparecer en un procedimiento catalogado.

SYSTSIN:

• Sólo para pasos donde se ejecute el DB2 (IKJEFT01).

• Es un fichero de parámetros donde se le indica al DB2 el nombre del programa, el plan y la librería de fases.

• Formato ejemplo:

//SYSTSIN DD *

DSN SYSTEM(DB2P)

RUN PROGRAM(PFME999) PLAN(NFM999)

LIB(‘PFM.LINKLIB’)

/*

SYSUDUMP:

• Fichero donde se efectúa el volcado de memoria en caso de que el programa acabe anormalmente.

SYSOUT:

• Fichero de salida de las instrucciones JCL.

• Se codifica con el parámetro SYSOUT.

SYSDBOUT:

• Fichero de salida de la línea de abend del programa.

• Se codifica con el parámetro SYSOUT.

Page 21: Manual JCL

GTS CBA CoC International Systems Page: 21 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

EJERCICIOS

1.-) Se desea crear y catalogar un fichero con la siguiente información:

• Nombre lógico del fichero: FFM000.

• Nombre físico del fichero: PFM.FFM000S.

• El fichero se deberá almacenar en un disco.

• Alocación primaria 15 pistas, alocación secundaria 5 pistas.

• Liberar el espacio no utilizado.

• El registro tiene formato de longitud fija y bloqueado.

• La longitud del registro es de 256 bytes y el bloque de 22420.

• El fichero no existe antes de ejecutar el paso y, en caso de acabar el paso en error, se quiere borrar.

• La utilidad o programa del sistema que se usara para esta catalogación es el IEFBR14.

2.-) Borrar el fichero creado en el paso 1. No sabemos si antes de comenzar el paso el fichero existe y, acabe bien o mal el paso queremos que el fichero quede borrado. Se utilizará la misma utilidad del sistema.

3.-) El programa PFME333 lee un fichero de entrada existente y crea una salva en cartucho. Generar el paso correspondiente teniendo en cuenta que los ficheros tienen las siguientes características:

Fichero de entrada:

• Nombre lógico: FFM111.

• Nombre físico: PFM.FFM111S.

• Es un fichero secuencial que leeremos en acceso exclusivo.

Fichero de salida:

• Nombre lógico: FFM222.

• Nombre físico: PFM.FFM222.CG(+1).

• Queremos ponerle etiquetas estándar de IBM.

• Se requiere que se guarde el fichero catalogado durante 3 años (año de 360 días).

• El registro es de longitud fija y bloqueado.

• Longitud del registro: 267 bytes, bloque de 26700 bytes.

• El cartucho se catalogará en otro paso distinto y sólo si el primer paso acaba bien.

• La utilidad o programa del sistema que se usara para esta catalogación es el IEFBR14.

Page 22: Manual JCL

GTS CBA CoC International Systems Page: 22 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

SOLUCIONES 1.-)

//EJERC1 EXEC PGM=IEFBR14 //FFM000 DD DSN=PFM.FFM000S,DISP=(,CATLG,DELETE), // UNIT=SYSDA,SPACE=(TRK,(15,5),RLSE), // DCB=(RECFM=FB,LRECL=256,BLKSIZE=22420)

2.-)

//EJERC2 EXEC PGM=IEFBR14 //FFM000 DD DSN=PFM.FFM000S,DISP=(MOD,DELETE,DELETE)

3.-)

//PASO1 EXEC PGM=PFME333 //FFM111 DD DSN=PFM.FFM111S,DISP=OLD //FFM222 DD DSN=PFM.FFM222.CG(+1),DISP=(,PASS), // UNIT=CART,LABEL=(1,SL,REPTD=2160), // DCB=(RECFM=FB,LRECL=267,BLKSIZE=26700)

//PASO2 EXEC PGM=IEFBR14,COND=(0,NE) //SALIDA DD DSN=PFM.FFM222.CG(+1),DISP=(OLD,CATLG),

Page 23: Manual JCL

GTS CBA CoC International Systems Page: 23 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

DEFINICIÓN DE PROCEDIMIENTOS “IN STREAM” Y CATALOGADOS

PROCEDIMIENTOS CATALOGADOS

Cuando existe un grupo de pasos susceptible de ser llamados en distintos Jobs, se utiliza un procedimiento catalogado, de manera que pueda ser reutilizado y no tenga que codificarse tantas veces como vaya a ser llamado.

Estos procedimientos se almacenan en una librería del sistema en cada uno de los entornos:

Para España estas librerías son:

Entorno de Desarrollo � OPC.PROCLIB

Entorno de Producción � OPCF.PROCLIB

En los procedimientos catalogados no se codifica la sentencia PEND al final de los mismos.

La sentencia PROC, al principio, es opcional. Sólo se exige si hay valores por defecto.

PROCEDIMIENTOS “IN STREAM”

En el procedimiento “IN STREAM” las sentencias del mismo se codifican en el propio Job Ejemplo: //FMA01001 JOB (721),LOPEZ,CLASS=D,MSGCLASS=1, // REGION=180K,NOTIFY=U999999 //* //JOBLIB DD DSN=ECC.LINKLIB //************** Definición del Procedimiento ************************ //NOMPROC PROC //* //PASO1 EXEC PGM=PFME333,COND=(0,NE) //FICHERO1 DD DSN=EFM.FFM001S,DISP=SHR //FICHER02 DD DSN=EFM.FFM002S,DISP=(NEW,CATLG), // UNIT=SYSDA,SPACE=(TRK,(1,1),RLSE ), // DCB=(RECFM=FB,LRECL=236,BLKSIZE=22420) // PEND //************** Llamada al Procedimiento ************************ //NOMPROC EXEC NOMPROC

Page 24: Manual JCL

GTS CBA CoC International Systems Page: 24 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

PARÁMETROS

Parámetro Simbólico

Antes de ejecutarse el procedimiento se sustituye en todos los sitios donde aparece y se le asigna el valor especificado en la llamada al procedimiento. Formato: En la definición del parámetro: &XXXXXXX En la llamada al procedimiento: XXXXXXX=Valor

En el ejemplo anterior

//FMA01001 JOB (721),LOPEZ,CLASS=D,MSGCLASS=1, // REGION=180K,NOTIFY=U999999 //* //JOBLIB DD DSN=ECC.LINKLIB //************** Definición del Procedimiento ************************ //NOMPROC PROC //* //PASO1 EXEC PGM=&PROG,COND=(0,NE) //FICHERO1 DD DSN=&USER..FFM001S,DISP=SHR //FICHER02 DD DSN=&USER..FFM002S,DISP=(,CATLG), // UNIT=SYSDA,SPACE=(TRK,(1,1),RLSE ), // DCB=(RECFM=FB,LRECL=236,BLKSIZE=22420) // PEND //************** Llamada al Procedimiento ************************ //NOMPROC EXEC NOMPROC,PROG=PFME333,USER=EFM Es necesario codificar “parámetro.” Cuando el parámetro es:

• Alfanumérico • Caracteres especiales

Page 25: Manual JCL

GTS CBA CoC International Systems Page: 25 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

EJERCICIOS

1.-)

Codificar un procedimiento “IN STREAM” de nombre PC1, que conste de un solo paso, donde se ejecuta un programa llamado LISTAR y que está parametrizado en la llamada al procedimiento.

Este programa utiliza un fichero de salida cuya descripción es:

- Nombre lógico: FFM777.

- Nombre físico: EFM.FFM777S .

- El alias del fichero se indicará mediante parámetro simbólico.

- Fichero en disco.

- El fichero se genera en este paso.

- El fichero es secuencial de formato fijo y bloqueado.

- La longitud del registro es de 50 bytes.

- Este fichero tiene 1 cilindro de primario y de secundaria.

También utiliza un fichero de entrada cuya descripción es:

- Nombre lógico: FFM666.

- Nombre físico: EFM.FFM666S .

- El alias del fichero se indicará mediante parámetro simbólico.

- La disponibilidad se indicará mediante parámetro simbólico y será OLD.

Se deberá codificar una tarjeta JOB con Vuestro usuario, al departamento de Formación (D777), nombre de la aplicación FM, para el entorno de EXPL, que corra en clase E, clase de salida 0, 8M de región y que os lo notifique a vosotros al finalizar.

La clase de salida de las DD de SYSOUT, SYSPRINT, SYSDBOUT y SYSABOUT, será la misma de la tarjeta JOB.

En la JOBLIB sólo figuraran las siguientes librerías:

- ECC.LINKLIB

- EFM.LINKLIB (el alias en parámetro simbólico)

Ambas con disponibilidad compartida.

Page 26: Manual JCL

GTS CBA CoC International Systems Page: 26 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

SOLUCIONES

1.-)

//U999999 JOB (D777,FM),EXPL,CLASS=E,MSGCLASS=0, // MSGCLASS =1,REGION=8M,NOTIFY=U999999 //* //JOBLIB DD DSN=ECC.LINKLIB,DISP=SHR // DD DSN=&ALIAS.LINKLIB,DISP=SHR //* //PC1 PROC //* //PASO1 EXEC PGM=&PROGRAMA //FFM666 DD DSN=&ALIAS..FFM666,DISP=&DISP //FFM777 DD DSN=&ALIAS..FFM777,DISP(NEW,CATLG), // UNIT=SYSDA, SPACE=(TRK,(1,1)), // DCB=(LRECL=50,RECFM=FB,DSORG=PS) //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSDBOUT DD SYSOUT=* //SYSABOUT DD SYSOUT=* //* // PEND //* //PC1 EXEC PC1,PROGRAMA=LISTAR,ALIAS=EFM,DISP=OLD //*

Page 27: Manual JCL

GTS CBA CoC International Systems Page: 27 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

PROGRAMAS DE UTILIDAD.

INTRODUCCIÓN

Los programas de utilidad que vamos a ver en este apartado se circunscriben al ámbito de tratamiento de ficheros:

• Definición

• Catalogación

• Inicialización

• Reorganización

• Borrado

• Clasificación

• Cambio de Formato

• Selección de registros

• Etc..

La relación de utilidades y los usos que vamos a ver es la siguiente:

IEBGNER: Copia de datos de ficheros secuenciales.

IEFBR14: Definir, allocar, borrar, catalogar, etc... ficheros secuenciales.

IDCAMS: Borrar y copiar ficheros secuenciales y VSAM y definir VSAM.

SORT: Clasificar un fichero, copia selectiva y cambio de formato de ficheros secuenciales.

Estas utilidades pueden tener otros usos diferentes a los enumerados anteriormente, ya que son parametrizables y pensadas para realizar muchas funciones. Aquí únicamente veremos los usos más básicos y frecuentes.

El JCL Para ejecutar un programa de utilidad es el siguiente:

//PASOXXXX EXEC PGM=Programa de utilidad //SYSPRINT DD SYSOUT=Clase de salida //ENTRADA DD DSN=Fichero de entrada //SALIDA DD DSN=Definición del fichero de salida //SYSIN DD * Sentencias de control o parámetros del programa de utilidad /*

Page 28: Manual JCL

GTS CBA CoC International Systems Page: 28 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

IEBGENER

Funciones:

Copia un fichero secuencial de un fichero de origen a otro, en esta función si utilizamos NULLFILE en el fichero de entrada nos permite inicializar un fichero o crearlo en vacío inicializado.

La el nombre lógico del fichero de entrada es SYSUT1 y el de salida SYSUT”

JCL:

//PASOXXXX EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=X //SYSUT1 DD DSN=NULLFILE,DCB=fichero de salida //SYSUT2 DD DSN=Fichero de salida //SYSIN DD DSN =DUMMY

Cuando es una copia simple en la SYSUT1 se codifica el fichero de entrada.

IEFBR14 Funciones:

Es un programa que no hace nada. Nos permite asignar ficheros, catalogarlos, borrarlos, etc... aprovechando las sentencias del JCL (por ejemplo el parámetro DISP).

JCL:

//PASOXXXX EXEC PGM=IEFBR14 //SALIDA DD DSN=Fichero

Page 29: Manual JCL

GTS CBA CoC International Systems Page: 29 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

IDCAMS

Funciones: Borra y copia ficheros QSAM y VSAM y define ficheros VSAM. Este programa tiene muchas más utilidades pero no son objeto de este curso.

JCL:

//PASOXXXX EXEC PGM=IDCAMS,COND=(0,NE) //SYSPRINT DD SYSOUT=* //SYSIN DD * Parámetros o sentencias propias del IDCAMS

IF MAXCC < 9 THEN SET MAXCC = 0 La sentencia en negrita es para que considere 0 el RETURN-CODE en caso de ser menor que nueve. Por ejemplo, si se intenta borrar un fichero que no existe da código 8.

Borrado de ficheros:

//PASOXXXX EXEC PGM=IDCAMS,COND=(0,NE) //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE PFM.FFM888S PURGE DELETE PFM.FFM999K PURGE IF MAXCC < 9 THEN SET MAXCC = 0

Copia de ficheros:

//PASOXXX EXEC PGM=IDCAMS,COND=(0,NE) //SYSPRINT DD SYSOUT=* //ENTRADA DD DSN=PFM.FFM222S,DISP=SHR //SALIDA DD DSN=PFM.FFM333S,DISP=SHR //SYSIN DD * REPRO - INFILE(ENTRADA) - OUTFILE(SALIDA) /*

El parámetro REPRO indica que es una copia.

En INFILE se le indica el nombre lógico del fichero de entrada.

En OUT FILE se le indica el nombre lógico del fichero de salida.

El “-“ es el carácter de continuación.

Page 30: Manual JCL

GTS CBA CoC International Systems Page: 30 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

Las copias que se pueden efectuar con esta parametrización son:

• QSAM sobre QSAM.

• QSAM sobre VSAM, siempre que el QSAM este ordenado por la clave de VSAM y no haya claves repetidas.

• VSAM sobre QSAM.

Para efectuar copias sobre VSAM se utilizan los siguientes parámetros:

• REPLACE: Si la clave existe la reemplaza.

• FROMKEY: Clave a partir de la cual se realiza la copia.

• TOKEY: Clave hasta la cual se realiza la copia.

Definición de un VSAM:

//PASOXXXX EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE PEB.FAQ155K - CLUSTER IF MAXCC < 9 THEN SET MAXCC = 0

DEFINE CLUSTER( - NAME(PEB.FAQ155K) - INDEXED - VOL(BCT668) - TRACKS(300 50) - RECSZ(4800 4800) - CISZ(12288) - KEY(16 0) - SHR(2 3) - FSPC(15 15)

DELETE: Es la instrucción de borrado.

CLUSTER: Indica que borre todos los ficheros que componen el VSAM (índice y datos).

DEFINE CLUSTER: Definición del fichero VSAM.

NAME: Nombre físico del fichero.

INDEXED: Indica que el fichero es indexado.

VOL: El nombre del volumen/disco donde se quiere que resida. En nuestra instalación no es necesario ponerlo, ya que la asignación es automática.

TRACKS, CYLS, RECORDS: Determina el espacio en pistas, cilindros o registros. La primera magnitud indica el espacio de la extensión primaria y la segunda el espacio para las extensiones secundarias.

Page 31: Manual JCL

GTS CBA CoC International Systems Page: 31 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

RECSZ: Longitud del registro. La primera magnitud indica la longitud.

CISZ:: Control Interval Size, longitud Intervalo de control. El intervalo de control es el equivalente al bloque en los ficheros VSAM.

KEY: Indica la información necesaria para ubicar la clave. La primera magnitud indica la longitud de la clave y la segunda el desplazamiento de la misma respecto del principio del registro.

SHR: Indica el grado de accesibilidad concurrente al fichero. (2 3) son los valores más usuales e indican que sólo puede haber un acceso concurrente de actualización y es de libre acceso de lectura.

FSPC: Free Space. Indica la distribución del espacio libre en el fichero, La primera magnitud indica el espacio libre en cada intervalo de control y la segunda indica el número de intervalos de control libres en el Area de Control.

Page 32: Manual JCL

GTS CBA CoC International Systems Page: 32 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

SORT

Funciones:

Este programa no es propiamente una utilidad del sistema, pero a todos los efectos tiene las mismas consideraciones. Tiene múltiples funciones, pero en este curso sólo veremos las más básicas y frecuentes:

• Clasificar un fichero.

• Eliminar los duplicados.

• Hacer una extracción condicionada.

• Obtener un fichero de salida con un formato diferente al de entrada en cuanto a la longitud del registro.

JCL:

//PASO0020 EXEC PGM=SORT,COND=(0,NE) //SORTIN DD DSN=PFM.FFM111S,DISP=SHR //SORTOUT DD DSN=PFMFFM222S,DISP=(NEW,CATLG), // UNIT=SYSDA,SPACE=(TRK,(180,20),RLSE), // DCB=(LRECL=30,RECFM=FB) //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,2,CH,A,3,8,CH,A) INCLUDE COND=(1,2,CH,EQ,C'03') SUM FIELDS=NONE OUTREC FIELDS=(3,8,22X)

SORT FIELDS: Indica cuales son los campos por los que se debe clasificar el fichero. Cada grupo de cuatro parámetros comprenden la unidad de información referente a un campo (1,2,CH,A,....), el orden de estos grupos, en la secuencia de parámetros, indica la prioridad de clasificación.

• El primer parámetro indica la posición inicial del campo dentro del registro.

• El segundo parámetro indica la longitud del campo.

• El tercer parámetro indica el formato del campo.

BI � Binario.

CH � Alfanumérico.

ZD � Numérico display.

PD � Numérico empaquetado.

Page 33: Manual JCL

GTS CBA CoC International Systems Page: 33 / 33 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\tiki-download_file.php-1.doc

• El cuarto parámetro indica el sentido de la clasificación

A: Ascendente.

D: Descendente.

INCLUDE/OMIT COND: Indica que sólo incluya u omita aquellos registros que cumplen las condiciones. Éstas van en secuencias de cinco parámetros (1,2,CH,EQ,C'03',....).

• El primer parámetro indica la posición inicial del campo dentro del registro.

• El segundo parámetro indica la longitud del campo.

• El tercer parámetro indica el formato del campo. Los formatos son los mismos que para los SORT FIELDS.

• El cuarto parámetro es el operador lógico.

EQ � Igual.

NE � Distinto.

GT � Mayor.

GE � Mayor o igual.

LT � Menor.

LE � Menor o igual.

• El quinto parámetro es el objerto de comparación, donde el primer carácter indica el formato del valor que se encuentra entre comillas.

C’03’ � indica que el 03 está en carácter.

B’01001000’ � indica que 01001000 está en binario.

X’40’ � indica que 40 está en hexadecimal.

SUM FIELD= NONE: Indica que se eliminarán los registros que estén duplicados, según la clave de ordenación.

OUTREC FIELDS: indica la composición del registro de salida, en función de los segmentos seleccionados del registro de entrada. Esta selección se efectúa mediante secuencia de dos magnitudes donde la primera indica la posición inicial del segmento y la segunda la longitud del mismo.