You are on page 1of 28

Manual de JCLs ____________________________________________________________________

MANUAL JCL

______________________________________________________________________ Everis 1

Manual de JCLs ____________________________________________________________________

INDICE
1.- INTRODUCCIN .................................................................................................... 2 1.1.- Qu es un JCL? 1.2.- Sentencias JOB / EXEC / DD 1.3.- Procesadores del JES 2.- ORGANIZACIN BSICA DE LOS DATOS ..................................................... 4 2.1.- Pistas y cilindros 2.2.- Trminos de Gestin de Datos 2.3.- Formato y Bloqueo de registros 2.4.- Organizacin: secuencial, particionada, VSAM 2.5.- Catlogo MVS 3.- LENGUAJE DE CONTROL DE TRABAJOS ..................................................... 6 3.1.- Campos de las sentencias de JCL 3.2.- Sentencia JOB 3.3.- Sentencia EXEC 3.4.- Sentencia DD 3.5.- Sentencias DD especiales 4.- UTILIDADES MVS FRECUENTES ................................................................... 11 4.1.- IEBGENER 4.2.- DFSORT 4.3.- IDCAMS 5.- OTRAS UTILIDADES MVS II ............................................................................ 18 5.1.- IEBCOPY 5.2.- IEBCOMPR 6.- OTRAS UTILIDADES NO MVS ......................................................................... 20 6.1.- LOAD 6.2.- UNLOAD 7.- SENTENCIAS AVANZADAS DE JCL ............................................................... 23 7.1.- RESTART 7.2.- Ejecucin condicional (COND) 7.3.- Sentencias IF/THEN/ELSE/ENDIF 7.4.- Grupos de generacin (GDG)

______________________________________________________________________ Everis 2

Manual de JCLs ____________________________________________________________________

1.- INTRODUCCIN
1.1.- Qu es un JCL? Es un lenguaje de programacin que permite codificar las instrucciones necesarias para la ejecucin de un proceso batch. Estas instrucciones o sentencias son interpretadas y ejecutadas por el Gestor de trabajos (JES). 1.2.- Sentencias JOB / EXEC / DD JOB Identifica el trabajo a realizar. EXEC Identifica el programa o procedimiento que se va a ejecutar. DD Identifica los recursos que va a utilizar el programa (por ejemplo, ficheros)

1.3.- Procesadores del JES El Gestor de trabajos (JES) realiza los siguientes procesos: - ENTRADA Adjudica un nmero identificador al trabajo. - CONVERSIN Validacin de la sintaxis de las sentencias. - EJECUCIN Se buscan los recursos necesarios y se ejecuta el trabajo. - SALIDA El resultado del trabajo aparecer en el formato solicitado. IMPRESIN El resultado del trabajo se enva a una impresora o a otro sistema. BORRADO Se libera el nmero identificador asignado al trabajo en la entrada. Los procesos de IMPRESIN y BORRADO no se hacen siempre.

______________________________________________________________________ Everis 3

Manual de JCLs ____________________________________________________________________

2.- ORGANIZACIN BSICA DE LOS DATOS


2.1.- Pistas y cilindros disco fsico. PISTA se podra comparar a una circunferencia en la superficie de un CILINDRO est formado por 15 pistas.

2.2.- Trminos de Gestin de Datos DATOS Informacin que se proporciona al ordenador para su proceso. CAMPOS Es un rea de datos en particular. REGISTRO Es el conjunto de campos interrelacionados. FICHERO Es el conjunto de registros relacionados.

2.3.- Formato y bloqueo de registros Teniendo en cuenta el formato de los registros, las caractersticas de los ficheros pueden ser: Fijo (F) todos los registros tienen la misma longitud. Variable (V) - los registros son de longitud variable. Dicha longitud se especifica en el registro. Bloqueado (B) los registros lgicos y fsicos difieren en longitud. Expandido (S) los registros lgicos pueden expandirse a distintos registros fsicos. Indefinido (U) los registros son de longitud variable. No se especifica la longitud en el registro. Se genera un bloque del tamao del registro. Los datos se agrupan en bloques para ahorrar espacio, y conseguir que el proceso sea ms rpido. 2.4.- Organizacin: secuencial, particionada, VSAM La organizacin de un fichero determina las diversas maneras en que se puede acceder a los registros que hay en l. ORGANIZACIN SECUENCIAL Estructura que almacena la informacin un registro tras de otro, y que cuando se recupera se hace en el mismo orden de secuencia en que fue grabada. El acceso siempre es secuencial, comenzando por el primer registro del fichero y accediendo a todos los dems registros, uno tras otro. FICHERO PARTICIONADO (PDS) Estos ficheros contienen miembros y un directorio. El directorio est situado al comienzo del fichero y contiene una entrada para cada miembro. Los miembros se pueden tratar como ficheros secuenciales. VSAM Organizacin de ficheros y mtodo de acceso de alto rendimiento. Organiza y mantiene los datos mediante una estructura de catlogos, usando memoria virtual. 2.5.- Catlogos MVS Un Catlogo es un fichero que contiene el nombre de otros ficheros y sus ubicaciones. ______________________________________________________________________ Everis 4

Manual de JCLs ____________________________________________________________________ Si un fichero est catalogado, nicamente con su nombre, el sistema puede, a travs del catlogo, localizar dicho fichero. El Catlogo Maestro contiene los ficheros del sistema, y los nombres y ubicaciones de los Catlogos de Usuario. Un fichero se cataloga a travs de un parmetro en la sentencia DD.

______________________________________________________________________ Everis 5

Manual de JCLs ____________________________________________________________________

3.- LENGUAJE DE CONTROL DE TRABAJOS


3.1.- Campos de las sentencias de JCL Cada sentencia de control est compuesta por los siguientes campos: IDENTIFICADOR Indica al sistema de qu tipo de sentencia se trata: (//, sentencia de JCL; /*, sentencia de delimitador; //*, sentencia de comentarios). NOMBRE Identifica una sentencia de control a la que otras sentencias y el sistema pueden hacer referencia. OPERACIN Especifica el tipo de sentencia de control que sigue al campo de nombre (JOB, EXEC, DD). PARMETROS - Especifica las caractersticas particulares de las sentencias de JCL. Existen dos tipos de parmetros: Posicionales: su significado viene determinado por la posicin que ocupa en la sentencia. Su ausencia debe indicarse con una coma. De Palabra Clave: su significado viene determinado por la palabra especial que lo identifica. Siempre van despus de los posicionales. COMENTARIOS Ir a continuacin del campo de parmetros, precedido de un espacio en blanco, y puede codificarse hasta la posicin 80. No debe utilizarse si no hay campo de parmetros, en este caso se utilizara la Sentencia de Comentarios (//*). 3.2.- Sentencia JOB

//NAMEJOBX JOB 102,TRABAJO,CLASS=A, // MSGCLASS=H,MSGLEVEL=(2,1), // NOTIFY=&SYSUID,REGION=4M, // TIME=NOLIMIT,COND=(0,NE),PRTY=15, // RESTART=PASOSORT,TYPRUN=SCAN


Sentencia obligatoria que indica el principio del trabajo, y slo puede existir una por trabajo. Parmetros Posicionales en la sentencia JOB:

o INFORMACIN DE CONTABILIDAD especifica la informacin de contabilidad exigida por la instalacin. o NOMBRE DEL PROGRAMADOR identifica al grupo responsable del trabajo. o ejecutado. o o Parmetros de Palabra Clave en la sentencia JOB: CLASS indica la cola de entrada donde esperar el trabajo para ser MSGCLASS indica la cola de salida de los mensajes del sistema. MSGLEVEL indica el tipo de mensajes que ha de imprimir el sistema.

______________________________________________________________________ Everis 6

Manual de JCLs ____________________________________________________________________ o NOTIFY indica el usuario de TSO al que el sistema enviar un mensaje cuando termine el trabajo. o TIME indica el tiempo mximo de CPU que puede emplear el job. o REGION indica la cantidad de memoria que va a utilizar el job en su ejecucin. o COND indica una condicin para que los pasos del job se sigan ejecutando. o PRTY se establece una prioridad al job dentro de la clase de entrada. o RESTART rearrancar un trabajo desde el paso especificado, saltando los pasos anteriores. o TYPRUN - indica el tipo de ejecucin del job (SCAN, validacin sintctica...) 3.3.- Sentencia EXEC

//LISTADO EXEC PGM=NAMEPGM,REGION=10M, // TIME=(30,00),COND=((0,NE),(4,LT,EXTRAER)), // ACCT=(contabili.),DYNAMNBR=10, // PARM=(027PEREZ 1999),RD=NC, // ADDRSPC=REAL


Sentencia que indica el programa o procedimiento que se desea ejecutar. o Parmetros Posicionales en la sentencia EXEC: NOMBRE DEL PROGRAMA - especifica el programa a ejecutar. Parmetros de Palabra Clave en la sentencia EXEC:

o COND especifica bajo qu condiciones no se ejecutar el paso. o REGION especifica la cantidad de memoria que puede utilizar el paso. o TIME indica el tiempo mximo que puede emplear el paso (minutos, segundos). o ACCT especifica la informacin contable relativa al paso, exigida por la instalacin. o DYNAMNBR mximo nmero de ficheros que pueden asignarse en un momento determinado, para su reutilizacin en el siguiente paso. o PARM se utiliza para pasar algn tipo de informacin al programa que est en proceso. Se pueden pasar como mximo 100 caracteres. o RD controla las posibilidades de rearranque del paso en el que est codificado. o ADDRSPC indica el tipo de memoria (virtual o real) en que se ejecutar el paso.

______________________________________________________________________ Everis 7

Manual de JCLs ____________________________________________________________________ 3.4.- Sentencia DD Sentencia que describe los ficheros con los que se va a trabajar (una sentencia DD por cada fichero). Identifica cada fichero lgico definido en la SELECT del programa con su fichero fsico.

//ENTRADA1 DD [ * DATA] ....Datos /* //* // (fin de datos) //ENTRADA1


-

DD DUMMY

Parmetros Posicionales en la sentencia DD:

o * - el fichero que define esta DD va incorporado a continuacin de ella en el job. Aparece delimitado por /* o por //. o DATA el fichero que define esta DD va incorporado a continuacin de ella en el job. Aparece delimitado por /*. o DUMMY representa un fichero ficticio, el programa lo abrir, efectuar operaciones de E/S sobre l (ficticias), pero el sistema no dar error.

//CLIENTES DD DSN=USUARIO.CLIENTES, // DISP=(NEW,CATLG,DELETE),VOL=SER=SYSWK1, // UNIT=3380,LABEL=3,SPACE=(TRK,(10,5),RLSE), // SYSOUT=*,COPIES=4,DEST=RMT005,OUTLIM=1500, // RECFM=FB,LRECL=150,BLKSIZE=1500


Parmetros de Palabra Clave en la sentencia DD:

o DSN indica el nombre fsico del fichero. o VOL identifica el volumen en el que residir el nuevo fichero. o UNIT se utiliza para indica al sistema que site el fichero en un dispositivo especfico (disco, cinta). o LABEL especifica el tipo de etiqueta asociada con el fichero, el nmero relativo del fichero en la cinta y si el fichero tiene proteccin de entrada o de salida. o SPACE permite solicitar espacio para un fichero nuevo en un volumen de acceso directo. Consta de los siguientes subparmetros: Unidad en las que se mide el espacio (pistas (TRK), cilindros (CYL)). Cantidad de espacio a asignar:

______________________________________________________________________ Everis 8

Manual de JCLs ____________________________________________________________________ Extensin primaria: espacio que se reservar para el fichero en el momento de crearlo. Extensin secundaria: cantidad de espacio que se aade cada vez que el fichero se quede pequeo. RLSE: indica que el espacio no utilizado en la creacin del fichero, se liberar al cerrarlo. o SYSOUT indica que el fichero lgico debe direccionarse a una clase de salida, en lugar de a un disco o a una cinta. o COPIES indica el nmero de copias que se desea obtener de un listado. o DEST indica la impresora fsica por la que se listar el informe a imprimir. o OUTLIM indica el nmero mximo de lneas que se van a imprimir. o RECFM indica el formato y bloqueo del registro. o LRECL indica la longitud del registro. o BLKSIZE indica la longitud del bloque. o DISP indica el estado en que se encuentra el fichero cuando comienza el trabajo, y cmo queremos que quede tras la ejecucin, incluso en caso de terminacin anormal. El formato para este parmetro es el siguiente: DISP=(DISP1,DISP2,DISP3) DISP1 indica el estado del fichero al iniciarse el paso.

NEW: el fichero no existe y se crea en el paso. OLD: el fichero ya existe y se debe utilizar de forma exclusiva. SHR: el fichero ya existe y se puede compartir. MOD: si el fichero ya existe, no se puede compartir, y se posiciona tras el ltimo registro existente en el fichero. Si el fichero no existe, equivale al estado NEW. Si no se codifica, se asume siempre NEW. anormal (ABEND). DISP2 indica el estado del fichero cuando termina bien el paso. DISP3 - indica el estado del fichero cuando el paso finaliza de manera

DELETE: el fichero se borra, incluso del catlogo. KEEP: el fichero se guarda al terminar el paso. Sin embargo, no guarda informacin de fichero (UNIT, VOL...) para pasos posteriores, habra que volver a codificarlas al usar el fichero. CATLG: el fichero se guarda y se cataloga. UNCATLG: el fichero se guarda, pero se elimina del catlogo. PASS: el fichero se guarda al terminar el paso, pero se borra al terminar el job. Guarda informacin del fichero para pasos posteriores. Slo es vlido para DISP2, ya que en caso de ABEND, se pierden todos los ficheros temporales.

______________________________________________________________________ Everis 9

Manual de JCLs ____________________________________________________________________ Si no se codifica, se asume KEEP, si ya existe el fichero (OLD), y DELETE, si no existe (NEW). 3.5.- Sentencias DD especiales JOBLIB indica la librera donde se encuentran los programas del job que se quieren ejecutar. STEPLIB indica la librera donde se encuentra el programa del paso que se quiere ejecutar. SYSABEND realiza el volcado de memoria de usuario y de sistema en caso de abend del proceso. SYSUDUMP realiza el volcado de memoria de usuario en caso de abend del proceso. SYSCHK durante la ejecucin de un programa, el sistema escribir un fichero de checkpoints, para posibles rearranques.

______________________________________________________________________ Everis 10

Manual de JCLs ____________________________________________________________________

4.- UTILIDADES MVS FRECUENTES


4.1.- IEBGENER Este programa de utilidad realiza las siguientes funciones: Crear una copia de un fichero secuencial o de un miembro de un particionado. Crear un particionado o un miembro a partir de un secuencial. Aadir miembros a un particionado. Generar una salida editada de un fichero secuencial o particionado. Cambiar el blocaje de un fichero, o modificar las longitudes de registro de un fichero.

//TRABAJO JOB //PROGRAMA EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=,DISP=SHR //SYSUT2 DD DSN=,DISP= //SYSIN DD * Sentencias de Control /*
Sentencias de JCL para IEBGENER: ejecucin. JOB inicia el trabajo. EXEC indica el programa que va a ejecutarse, IEBGENER. SYSPRINT fichero de salida donde la utilidad deja los mensajes de SYSUT1 fichero de entrada. SYSUT2 fichero de salida. SYSIN codificacin de las sentencias de control.

//TRABAJO JOB //PROGRAMA EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=USUARIO.FUENTE.DATOS,DISP=SHR //SYSUT2 DD DSN=USUARIO.MAESTRO.DATOS,DISP=SHR //SYSIN DD * GENERATE MAXFLDS=99,MAXLITS=5 RECORDS FIELD=(5,LOPEZ,,1), FIELD=(3,1,PZ,6) EXITS IOERROR=RUTINA
______________________________________________________________________ Everis 11

Manual de JCLs ____________________________________________________________________

/*
Sentencias de Control para IEBGENER: GENERATE MAXFLDS indica el nmero de campos que se van a dejar en la salida. MAXLITS especifica el nmero de caracteres en literales que se pueden dejar en los campos de salida del fichero destino. RECORD permite definir el registro de datos. FIELD longitud, posicin inicial en entrada, conversin, posicin inicial en salida.

//TRABAJO JOB //PROGRAMA EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=USUARIO.FUENTE.DATOS,DISP=SHR //SYSUT2 DD DSN=USUARIO.MAESTRO.DATOS,DISP=SHR //SYSIN DD * GENERATE MAXNAME=2,MAXGPS=2 MEMBER NAME=CLIENTES RECORDS IDENT=(5,LOPEZ,1) MEMBER NAME =VENTAS IDENT=(4,DATO,10) /*
Sentencias de Control para IEBGENER: crear. MEMBER NAME asigna nombre a un nuevo miembro. RECORDS IDENT define los datos del registro en el siguiente orden: longitud del valor, valor, columna inicial. Tantos como indique MAXGPS. Tambin se puede emplear RECORD FIELD, en lugar de RECORD IDENT, donde se especifica: longitud, posicin inicial en entrada, conversin, posicin inicial en salida. 4.2.- DFSORT Este programa de utilidad realiza las siguientes funciones: Ordenacin de registros en un fichero. Fusin de dos o ms ficheros en uno. Copia de ficheros. ______________________________________________________________________ Everis 12 GENERATE MAXNAME especifica el nmero de miembros que se van a

Manual de JCLs ____________________________________________________________________ Eliminacin de registros de un fichero. Reformateo de registros de un fichero. Acumular los valores de los registros. DFSORT Ordenacin

//TRABAJO JOB //ORDENAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,GT,6,5,CH) SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTIN DD DSN=,DISP=SHR //SORTOUT DD DSN=,DISP= //SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,(1,1),RLSE)
Sentencias de JCL para DFSORT: JOB inicia el trabajo. EXEC indica el programa que va a ejecutarse, SORT. SYSOUT fichero de salida donde la utilidad SORT deja los mensajes de la ejecucin. SORTIN fichero de entrada que se quiere ordenar, hasta un total de 99 ficheros. SORTOUT fichero de salida en el que se desea guardar el fichero ya ordenado y reformateado. SORTWKnn ficheros de trabajo que se utilizan para que el sistema tenga mejor rendimiento al realizar la ordenacin del fichero. SYSIN codificacin de las sentencias de control. Sentencias de Control para DFSORT: SORT FIELDS=(inicio, longitud, tipo, orden) indica los campos por los que se quiere ordenar el fichero. Dichos campos se especifican mediante su posicin de inicio y su longitud, el orden puede ser ascendente o descendente, y el tipo de campo (CH, carcter; BI, binario; PD, empaquetado; ZD, decimal). INCLUDE COND incluye nicamente los registros que cumplen una condicin especificada. INCLUDE COND=(inicio,longitud,tipo,operador comparacin,valor,operador lgico, inicio,longitud,tipo,operador comparacin,inicio,longitud,tipo)

______________________________________________________________________ Everis 13

Manual de JCLs ____________________________________________________________________ Para poner varias condiciones, se utilizan los operadores lgicos (AND, OR) separados por comas. OMIT COND se excluyen los registros que cumplen una condicin especificada. Tiene el mismo formato que la sentencia INCLUDE COND. SUM FIELDS=(posicin inicio campo,longitud,tipo) permite sumar los valores del campo que comienza en la posicin indicada y que ocupa los bytes indicados. Slo se pueden sumar campos numricos, empaquetados o decimales. SUM FIELDS=NONE se eliminan registros duplicados. OUTREC FIELDS=(posicin1,longitud1) se utiliza para reformatear el registro de salida con los campos especificados en esta sentencia. Reformatea los registros despus de ordenar. INREC FIELDS reformatea los registros antes de ordenar. Tiene el mismo formato que la sentencia OUTREC FIELDS. DFSORT Fusin

//TRABAJO JOB //FUSIONAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * MERGE FIELDS=(1,5,CH,A,7,8,CH,D) INCLUDE COND=(1,5,CH,GT,6,5,CH) SUM FIELDS=(14,9,PD) OUTREC FIELDS=(1,100) //SORTINnn DD DSN=,DISP=SHR //SORTOUT DD DSN=,DISP=
Se utiliza cuando se quieren FUSIONAR los registros ya ordenados de varios ficheros, hasta un total de 16 ficheros. No son necesarios ficheros de trabajo. DFSORT Copia

//TRABAJO JOB //COPIAR EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=COPY INCLUDE COND=(1,5,CH,GT,6,5,CH) OUTREC FIELDS=(1,100) //SORTIN DD DSN=,DISP=SHR
______________________________________________________________________ Everis 14

Manual de JCLs ____________________________________________________________________

//SORTOUT

DD DSN=,DISP=

Se utiliza cuando se quieren COPIAR datos sin realizar ordenacin ni mezcla de ficheros. 4.3.- IDCAMS Este programa de utilidad realiza las siguientes funciones: Definir y borrar un fichero VSAM. Copiar un fichero en otro. Construir ndices alternativos. Listar catlogos. Imprimir ficheros. Transferir ficheros de un sistema a otro. Definicin de un fichero VSAM

//TRABAJO JOB //DEFINIR EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE CLUSTER(NAME(CORI.MASTER.EMPL) RECORDS (500 50) RECSZ (25 25) KEYS (10 0) VOLUME (DIR003) SHR (2 3) INDEXED) DATA(NAME(CORI.MASTER.EMPL.DATA)) INDEX(NAME(CORI.MASTER.EMPL.INDEX)) /*
Sentencias de Control para IDCAMS: CLUSTER cuando se crea un fichero VSAM se define como CLUSTER.

o NAME identifica el fichero dentro del catlogo. Posteriormente se identificar en una DSN. o RECORDS el espacio requerido se puede indicar en registros, pistas (TRAKS) o cilindros (CYLINDERS). o RECSZ el tamao del registro consta de dos parmetros, el primero indica el tamao medio en bytes de los registros que se van a almacenar en el fichero; el segundo ______________________________________________________________________ Everis 15

Manual de JCLs ____________________________________________________________________ indica el tamao mximo en bytes de dichos registros. Si son iguales indica que los registros son de longitud fija. o KEYS define la clave. Consta de dos subparmetros, el primero indica el tamao en bytes de la clave, y el segundo indica la posicin desde el comienzo del registro. Generalmente, la clave comienza en la primera posicin del registro. o VOL indica el nombre del disco en el que el fichero va a grabarse. o SHR indica el grado de comparticin del fichero. Consta de dos subparmetros: El primero indica la comparticin en distintos trabajos. El segundo indica la comparticin en distintos sistemas. o INDEXED indica que el fichero es del tipo KSDS. NONINDEXED indica que el fichero es del tipo ESDS y NUMBERED con un fichero RRDS. DATA se utiliza para definir los datos del fichero VSAM. INDEX se utiliza para definir el ndice del fichero VSAM. Slo se codifica cuando el fichero es KSDS. Borrado de un fichero VSAM

//TRABAJO JOB //BORRADO EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE CORI.MASTER.EMPL /*
Sentencias de Control para IDCAMS:

CLUSTER PURGE

CLUSTER indica que se tiene que borrar un fichero VSAM. Cuando se elimina el CLUSTER, se borran tambin los DATA e INDEX asociados al fichero. PURGE permite borrar un fichero aunque no haya llegado su fecha de caducidad. ERASE se machacan los datos del fichero con ceros binarios. Copia de un fichero

//TRABAJO //COPIAR //SYSPRINT //FICHERO1 //FICHERO2 //SYSIN REPRO

JOB EXEC PGM=IDCAMS DD SYSOUT=* DD DSN= DD DSN= DD * INFILE (FICHERO1)

______________________________________________________________________ Everis 16

Manual de JCLs ____________________________________________________________________

OUTFILE SKIP COUNT /*

(FICHERO2) (100) (1500)

Sentencias de Control para IDCAMS: REPRO parmetro que indica que se trata de una copia. INFILE y OUTFILE identifican los nombres de los ficheros de entrada a copiar y el fichero de destino. INDATASET y OUTDATASET pueden especificarse opcionalmente en lugar de INFILE y OUTFILE para indicar los ficheros de entrada y salida. SKIP indica el nmero de registros que deben saltarse, desde el inicio del fichero, antes de comenzar el proceso de copia. Tambin se pueden codificar: codificar: FROMKEY indica la clave inicial (KSDS). FROMADDRESS indica la direccin inicial (ESDS). FROMNUMBER indica el nmero de registro inicial (RRDS). COUNT indica el nmero de registros que se van a copiar. Tambin se pueden TOKEY indica la clave final (KSDS). TOADDRESS - indica la direccin final (ESDS). TONUMBER indica el nmero de registro final (RRDS).

Impresin de un fichero

//TRABAJO //IMPRIMIR //SYSPRINT //FICHERO1 //SYSIN PRINT /*

JOB EXEC PGM=IDCAMS DD SYSOUT=* DD DSN= DD * INFILE (FICHERO1) FROMKEY (GARCIA) CHAR

Para imprimir ficheros se utiliza el parmetro PRINT, el cual permite: Imprimir un fichero (VSAM o secuencial) total o parcialmente. El formato del listado puede ser de tres tipos: CHAR (caracteres), HEX (hexadecimal) o DUMP (carcter y hexadecimal). Para limitar el listado, se utilizan los mismos parmetros que en REPRO. ______________________________________________________________________ Everis 17

Manual de JCLs ____________________________________________________________________

______________________________________________________________________ Everis 18

Manual de JCLs ____________________________________________________________________

5.- OTRAS UTILIDADES MVS II


5.1.- IEBCOPY Este programa de utilidad realiza las siguientes funciones: copiar de un fichero particionado a otro fichero particionado o a un secuencial copiar de uno o ms ficheros secuenciales a un fichero particionado copiar o mezclar varios ficheros particionados comprimir un fichero particionado (copindolo sobre s mismo) reemplazar miembros de un particionado renombrar miembros de un particionado.

//TRABAJO JOB //COPIAR EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=USUARIO.LIB1.FUENTES,DISP=SHR //SYSUT2 DD DSN=USUARIO.LIB2.FUENTES,DISP=SHR //SYSUT3 DD SPACE=(CYL,(1,1),RLSE),UNIT=SYSDA //SYSUT4 DD SPACE=(CYL,(1,1),RLSE),UNIT=SYSDA //SYSIN DD * COPY OUTDD=SYSUT2,INDD=SYSUT1 SELECT MEMBER=((MIEMBRO1,R),MIEMBRO2, (MIEMBRO3,MIEMBROZ),MIEMBRO4) /*
Sentencias de JCL para IEBCOPY: JOB inicia el trabajo. EXEC indica el programa que va a ejecutarse, IEBCOPY. SYSPRINT fichero de salida donde la utilidad deja los mensajes de la ejecucin. SYSUT1 fichero de entrada. SYSUT2 fichero de salida. SYSUT3 y SYSUT4 ficheros de trabajo. SYSIN codificacin de las sentencias de control. Si se codifica esta sentencia como DUMMY, significa que el fichero de entrada se copia en el de salida. Sentencias de Control para IEBCOPY: COPY copia un fichero particionado. OUTDD indica el fichero de salida. INDD indica el fichero o ficheros de entrada. Con la opcin R se reemplazan los miembros que tengan el mismo nombre en el fichero particionado de salida. ______________________________________________________________________ Everis 19

Manual de JCLs ____________________________________________________________________

COPY OUTDD=nombreDD, INDD=(nombreDD,(nombreDD,R),...)


SELECT especifica los nombres de los miembros de los ficheros de entrada que se van a copiar. EXCLUDE indica los nombres de los miembros que se excluirn de la copia. [ SELECT

EXCLUDE ]

MEMBER=(nombre1,nombre2,...)

5.2.- IEBCOMPR Este programa de utilidad se emplea para la comparacin de ficheros, tanto secuenciales como particionados.

//PROGRAMA EXEC PGM=IEBCOMPR //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=,DISP=SHR //SYSUT2 DD DSN=,DISP=SHR //SYSIN DD * COMPARE TYPORG=PS /*
Sentencias de JCL para IEBCOMPR: Se utilizan las mismas sentencias que en la utilidad IEBCOPY, con la nica excepcin de que no se necesitan ficheros de trabajo. Sentencias de Control para IEBCOMPR: Establece un cdigo de retorno 8 cuando los ficheros no son iguales.

COMPARE TYPORG=[PS|PO]
Donde PS indica fichero secuencial y PO fichero particionado. ______________________________________________________________________ Everis 20

Manual de JCLs ____________________________________________________________________

6.- OTRAS UTILIDADES NO MVS


6.1.- LOAD
//*********************************************************** //* ABRE UT //*********************************************************** //* //ABRER10 EXEC DB2COMMN,SISTEMA='DBD1',COND=EVEN //SYSTSIN DD * DSN SYSTEM(DBD1) SN SYSTEM(DBD1) -START DB(OI45859) SPACE(DES45859) ACCESS(FORCE) -START DB(OI45859) SPACE(SRAFNMRH) ACCESS(FORCE) //*********************************************************** //* BORRAR FICHEROS DE CARGA //*********************************************************** //* //DELETE EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEL DES.LOADAFNM.LOAD.SORTOUT.NNAAA DEL DES.LOADAFNM.LOAD.SYSERR.NNAAA DEL DES.LOADAFNM.LOAD.SYSMAP.NNAAA DEL DES.LOADAFNM.LOAD.SYSDISC.NNAAA DEL DES.LOADAFNM.LOAD.SYSUT1.NNAAA SET MAXCC = 0 //* //LOAD EXEC DSNUPROC,SYSTEM=DBD1,UID='LOADAFNM', UTPROC='',SIZE=0M DD DSN=DES.LOADAFNM.LOAD.SORTOUT.NNAAA, DISP=(NEW,CATLG,DELETE),UNIT=SYSALLDA, SPACE=(TRK,(210,15),RLSE) DSN=DES.LOADAFNM.LOAD.SYSERR.NNAAA, DISP=(NEW,CATLG,DELETE),UNIT=SYSALLDA, SPACE=(TRK,(15,15),RLSE) DSN=DES.LOADAFNM.LOAD.SYSMAP.NNAAA, DISP=(NEW,CATLG,DELETE),UNIT=SYSALLDA, SPACE=(TRK,(15,15),RLSE) DSN=DES.LOADAFNM.LOAD.SYSDISC.NNAAA, DISP=(NEW,CATLG,DELETE),UNIT=SYSALLDA, SPACE=(TRK,(15,15),RLSE) //SYSUT1 DD DSN=DES.LOADAFNM.LOAD.SYSUT1.NNAAA, DISP=(NEW,CATLG,DELETE),UNIT=SYSALLDA, SPACE=(TRK,(30,15),RLSE) //* FICHERO QUE CONTIENE LOS DATOS A CARGAR //SYSREC00 DD DSN=DES.GROI.SORT.HECONOMI.TODO, DISP=SHR LOAD DATA LOG NO INDDN SYSREC00 RESUME NO REPLACE INTO TABLE DES01.S_AFNM_HECONOMI //********************************************************** * ABRE PARA R/W //********************************************************** * EXEC DB2COMMN,SISTEMA='DBD1',COND=EVEN DSN SYSTEM(DBD1) -START DB(OI45859) SPACE(DES45859) ACCESS(FORCE) -START DB(OI45859) SPACE(SRAFNMRH) ACCESS(FORCE) //* //********************************************************** * BORRAR FICHEROS DE MANIOBRA DE LA CARGA //********************************************************** * EXEC PGM=IDCAMS SYSOUT=*

//

// //SYSERR // // //SYSMAP // // //SYSDISC // // // //

//SORTOUT // DD DD DD

// //SYSIN

DD

/*

//

// //ABRER10 //SYSTSIN DD *

// // //DELETE //SYSPRINT DD //SYSIN DD *

______________________________________________________________________ Everis 21

Manual de JCLs ____________________________________________________________________


DEL DES.LOADAFNM.LOAD.SORTOUT.NNAAA DEL DES.LOADAFNM.LOAD.SYSUT1.NNAAA //*

//CARGA01 JOB (CDT),'LOAD',NOTIFY=&SYSUID, // CLASS=C,MSGCLASS=H,MSGLEVEL=(1,1) //* ********************************************* //* * LOAD UTILITY REPLACE NOCOPYPEND * //* ********************************************* //PASO010 EXEC DBAAPROC,SYSTEM=DBAA,UID='LOAD.DATA',UTPROC='' //SYSREC00 DD DSN=UCODA03.MCOD.CORTXXX.UNLOAD1,DIS=SHR //SYSUT1 DD DSN=&&TEMPS,SPACE=(CYL,(10,5),,,ROUND),UNIT=SYSDA //SORTOUT DD DSN=UCODA03.SORTOUT1,DISP=(NEW,DELETE,CATLG), // SPACE=(CYL,(10,5),,,ROUND),UNIT=SYSDA //UTPRINT DD SYSOUT=* //SYSIN DD * LOAD DATA INDDN SYSREC00 LOG NO RESUME YES NOCOPYPEND INTO TABLE MCOD.AUTOS; /* //*

LOAD es una utilidad que permite cargar registros en tablas y construir o ampliar ndices de las mismas. Si la tabla ya contiene datos, se podran aadir otros nuevos, o bien, reemplazar los datos ya existentes. Antes de realizarse la carga, los datos sern previamente validados. Sentencias de JCL para LOAD: SYSREC fichero de entrada que contiene los datos a cargar. SYSPRINT fichero de salida donde la utilidad deja los mensajes de ejecucin. SYSUT1 fichero de trabajo temporal que se usa para ordenar ficheros de entrada. SORTOUT fichero de trabajo temporal que se usa para ordenar ficheros de salida. SYSERR fichero de errores de proceso. SYSMAP fichero de trabajo para mapear el identificador de las columnas de una tabla, en caso de error. SYSDISC fichero de trabajo que contiene los registros no cargados. UTPRINT fichero que contiene mensajes desde DFSORT. SYSIN codificacin de los mandatos o sentencias de control. Sentencias de Control para LOAD: DATA identifica los datos seleccionados para cargar con el nombre de la tabla que se indica en INTO TABLE. INDDN especifica el nombre del fichero de entrada. Dicho fichero tiene que ser de acceso secuencial y formato fijo o variable. Por defecto es SYSREC. RESUME indica si los registros van a ser cargados en un table space vaco o no. NO valor por defecto. Carga registros en un table space vaco. Por si acaso no estuviese vaco, habra que utilizar REPLACE para evitar errores. YES carga registros en un table space no vaco. Si estuviese vaco, dara un warning, pero los datos se cargaran correctamente. ______________________________________________________________________ Everis 22

Manual de JCLs ____________________________________________________________________ REPLACE indica si el table space y todos sus ndices necesitan ser reseteados, para vaciar antes de cargar los registros. Con esta opcin, las columnas nuevas a cargar reemplazarn a todas las existentes. LOG indica si la entrada al sistema ocurre durante la fase de reload o en el proceso de carga. NO entrada al sistema durante el proceso de carga. Valor por defecto. YES - esta opcin pone la restriccin COPY-pending, por la cual no se puede actualizar ninguna tabla. A travs de NOCOPYPEND, se indica al LOAD que no fije el status de COPY-pending. 6.2.- UNLOAD
//DESCARG1 JOB (CDT00),'UNLOAD ',CLASS=C, // MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=&SYSUID, // REGION=4096K //******************************************************************** //* DESCARGA A TRAVES DE UNA SELECT //******************************************************************** //* //STEP010 EXEC PGM=IKJEFT01 //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * DSN SYSTEM(DBAA) RUN PROGRAM(DSNTIAUL) PLAN(DSNTIB71) PARM('SQL') LIB('DSN710AA.RUNLIB.LOAD') END //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSPUNCH DD SYSOUT=* //SYSREC00 DD DSN=UCODA03.MCOD.CORTXXX.UNLOAD1, // SPACE=(TRK,(10,10),RLSE), // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA //SYSIN DD * SELECT * FROM MCOD.AUTOS ; /*

UNLOAD es una utilidad que permite recuperar datos de tablas DB2, descargando las tablas enteras, o bien, especificando ciertas columnas. Esta utilidad siempre debe ejecutarse en el mismo sistema en el que se encuentran las tablas. Sentencias de JCL para UNLOAD: SYSREC fichero de salida que contiene los datos descargados. SYSPRINT fichero de salida donde la utilidad deja los mensajes de ejecucin. SYSPUNCH fichero de trabajo que contiene las sentencias de LOAD necesarias para un proceso de recarga de datos. SYSIN codificacin de los mandatos o sentencias de control.

______________________________________________________________________ Everis 23

Manual de JCLs ____________________________________________________________________

7.- SENTENCIAS AVANZADAS DE JCL


7.1.- RESTART indica la continuacin de una secuencia de trabajos que se ha cancelado previamente. este parmetro especifica el nuevo paso desde el que va a comenzar la ejecucin del trabajo. una vez que el trabajo se haya ejecutado correctamente, se debe eliminar el parmetro RESTART. si la ejecucin del trabajo se cancela, puede ocurrir que se hayan creado los ficheros de salida correspondientes al paso que se rearranca o a pasos posteriores. Estos ficheros deben borrarse antes de rearrancar el trabajo.

//TRABAJOX JOB ,RESTART=PASO4


7.2.- Ejecucin condicional (COND) supone la comprobacin de los cdigos de retorno de los pasos anteriores, para determinar el flujo de ejecucin (es decir, si un programa debe ejecutarse o no). cuando la condicin especificada es verdadera, no se ejecuta el paso. si no se indica un nombre de paso, se refiere a cualquier paso previo. si se codifica el parmetro COND en la sentencia JOB, se ignoran los COND que puedan existir en las sentencias EXEC. en este parmetro, se pueden codificar un mximo de 8 condiciones, incluyendo la EVEN u ONLY. COND=EVEN, efecta la ejecucin incluso si los pasos previos terminan de forma anormal (ABEND). COND=ONLY, efecta la ejecucin slo si los pasos previos terminan de forma anormal. Los operadores de comparacin vlidos para este parmetro son: //PASO1 GT GE EQ LT LE NE Mayor que Mayor o igual que Igual a Menor que Menor o igual que Distinto de

EXEC PGM=PROGRAM1 //PASO2 EXEC PGM=PROGRAM2,COND=(4,EQ,PASO1) //PASO3 EXEC PGM=PROGRAM3

______________________________________________________________________ Everis 24

Manual de JCLs ____________________________________________________________________ Si RC=4 verdadero, no se ejecutar el PASO2; mientras que si es falso, s se ejecutar. Es decir, el PASO2 slo se ejecutar cuando el retorno del PASO1 sea distinto de 4.

7.3.- Sentencias IF/THEN/ELSE/ENDIF Esta sentencia se utiliza para ejecutar condicionalmente pasos dentro de un trabajo, y puede tener tres campos: nombre (opcional) operacin. o IF, siempre va seguida de una expresin relacional y de la palabra clave THEN. Especifica los pasos del trabajo que el sistema procesar cuando la evaluacin de la expresin relacional de la clusula IF sea una condicin verdadera. o ELSE, puede aparecer a continuacin del IF. Especifica los pasos del trabajo que el sistema procesar cuando la evaluacin de la expresin relacional de la clusula IF sea una condicin falsa. o ENDIF, indica el final de la estructura de sentencia. el campo de la expresin relacional. Pueden anidarse estructuras de sentencias IF/THEN/ELSE/ENDIF hasta un mximo de 15 niveles. Una expresin relacional consta de: operadores de comparacin, lgicos y NOT().
OPERADOR NOT GT LT NG NL EQ NE GE LE AND OR > < > < = = >= <= & | OPERACIN OPERADOR NOT NO OPERADORES DE COMPARACIN MAYOR QUE MENOR QUE NO MAYOR QUE NO MENOR QUE IGUAL A DISTINTO DE MAYOR O IGUAL QUE MENOR O IGUAL QUE OPERADORES LGICOS Y O ORDEN PRIMERO

SEGUNDO

TERCERO

palabras clave: RC, indica el cdigo de retorno. ABEND=TRUE, indica que se ha producido una terminacin anormal. ABEND=FALSE, indica que no se ha producido ninguna terminacin anormal. ABENDCC=Sxxx o ABENDCC=Uxxxx, indica un cdigo de terminacin anormal especfico del sistema (S0C4) o del usuario (U0100) nombrepaso.RUN=TRUE, indica que se ha ejecutado el paso especificado ______________________________________________________________________ Everis 25

Manual de JCLs ____________________________________________________________________ nombrepaso.RUN=FALSE, indica que no se ha ejecutado el paso especificado.

7.4.- Grupos de Generacin (GDG) Generation Data Group (GDG), es un grupo de archivos que estn funcional y cronolgicamente relacionados entre s. Su nombre lo asigna el sistema de la siguiente manera: Nombfich.GnnnnVnn Nombfich, corresponde a la denominacin de grupo. Gnnnn, nmero de generacin (de 0000 a 9999). Cuando se llega al mximo nmero de ficheros para un GDG, dependiendo de los parmetros del sistema, el GDG se vaca por completo o slo el ms antiguo. Al aadir un nuevo fichero al grupo, siempre ser GEN(+1), siendo el actual siempre GEN(0). Vnn, versin de la generacin (de 00 a 99). Slo se conserva la versin ms reciente. No son ficheros VSAM. Creacin de un GDG

//PROGRAMA EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE GDG (NAME(FICHERO.PRUEBA) LIMIT(15) EMPTY NOSCRATCH) /*

A travs de la utilidad IDCAMS se define para el catlogo la existencia de un GDG y el nmero de generaciones permitidas. Los parmetros empleados son los siguientes: GDG. EMPTY al llegar al mximo, se descatalogan (se borran) todos los ficheros de generacin; NOEMPTY, al llegar al mximo, slo se descataloga el fichero ms antiguo. SCRATCH / NOSCRATCH especifica si se borrar o no del volumen la informacin existente del fichero, cuando ste se descatalogue. ______________________________________________________________________ Everis 26 LIMIT especifica el nmero mximo de GDSs (ficheros) que puede tener un

Manual de JCLs ____________________________________________________________________

______________________________________________________________________ Everis 27

Manual de JCLs ____________________________________________________________________ Creacin de un GDS

//PROGRAMA EXEC PGM=PGMGDS //SALIDA DD DSN=FICHERO.PRUEBA(+1), // DISP=(,CATLG,DELETE),UNIT=SYSDA, // SPACE=(TRK,(10,5),RLSE), // RECFM=FB,LRECL=87,BLKSIZE=0 /*

GDS: Generation Data Set. El nombre completo del fichero empleado en el ejemplo sera: FICHERO.PRUEBA.G0001V01 Al acabar de ejecutarse el paso, el GDG pasa a ser el actual (versin 0). Si un paso posterior crea otro fichero nuevo (+1), al acabar de ejecutarse el paso, el GDG pasa a ser el actual (versin 0), y el que tenamos anteriormente sera la versin (-1). Borrado de un GDS

//DEL GDS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE FICHERO.PRUEBA(0) /*

PURGE

Borrado de un GDG

//DELGDG EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE FICHERO.PRUEBA GDG PURGE /*

______________________________________________________________________ Everis 28