En este tema, aprenderemos cómo crear y utilizar procedimientos en JCL. Los procedimientos son una herramienta poderosa que permite reutilizar bloques de código JCL, facilitando la gestión y mantenimiento de trabajos complejos.
¿Qué es un Procedimiento en JCL?
Un procedimiento en JCL es un conjunto de declaraciones JCL que se pueden almacenar en una biblioteca de procedimientos y luego ser invocados por otros trabajos JCL. Esto permite la reutilización de código y la simplificación de la gestión de trabajos.
Ventajas de Usar Procedimientos
- Reutilización de Código: Permite definir una vez y usar múltiples veces.
- Mantenimiento Simplificado: Los cambios se realizan en un solo lugar.
- Claridad y Organización: Mejora la legibilidad y estructura del JCL.
Estructura de un Procedimiento
Un procedimiento se define en una biblioteca de procedimientos (PROCLIB) y tiene la siguiente estructura básica:
//PROCNAME PROC //STEP1 EXEC PGM=PROGRAM1 //STEP2 EXEC PGM=PROGRAM2 //DD1 DD DSN=DATASET1,DISP=SHR //DD2 DD DSN=DATASET2,DISP=OLD
- PROCNAME: Nombre del procedimiento.
- STEP1, STEP2: Nombres de los pasos dentro del procedimiento.
- EXEC: Declaración que ejecuta un programa.
- DD: Declaración de definición de datos.
Creando un Procedimiento
Para crear un procedimiento, se debe escribir el código JCL en un miembro de una biblioteca de procedimientos. A continuación, se muestra un ejemplo de cómo crear un procedimiento llamado MYPROC
:
//MYPROC PROC //STEP1 EXEC PGM=IEFBR14 //DD1 DD DSN=MY.DATASET,DISP=(NEW,CATLG,DELETE), // SPACE=(TRK,(1,1)),UNIT=SYSDA
Explicación del Código
- MYPROC: Nombre del procedimiento.
- STEP1: Nombre del paso que ejecuta el programa
IEFBR14
. - DD1: Declaración de definición de datos que crea un nuevo conjunto de datos
MY.DATASET
.
Usando un Procedimiento
Para usar un procedimiento en un trabajo JCL, se utiliza la declaración EXEC
con el nombre del procedimiento. A continuación, se muestra un ejemplo de cómo invocar el procedimiento MYPROC
:
Explicación del Código
- MYJOB: Nombre del trabajo.
- STEP1: Nombre del paso que ejecuta el procedimiento
MYPROC
.
Sobrescribiendo Parámetros en un Procedimiento
Es posible sobrescribir parámetros dentro de un procedimiento al momento de invocarlo. Esto se hace especificando los nuevos valores en la declaración EXEC
. A continuación, se muestra un ejemplo:
Explicación del Código
- DD1.DSN=NEW.DATASET: Sobrescribe el nombre del conjunto de datos
DD1
conNEW.DATASET
. - DD1.DISP=(OLD,DELETE): Sobrescribe el parámetro de disposición de
DD1
.
Ejercicio Práctico
Ejercicio
- Crea un procedimiento llamado
BACKUPPROC
que realice una copia de seguridad de un conjunto de datos. - Usa el procedimiento
BACKUPPROC
en un trabajo JCL y sobrescribe el nombre del conjunto de datos de origen y destino.
Solución
Creación del Procedimiento BACKUPPROC
//BACKUPPROC PROC //BACKUP EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT1 DD DSN=SOURCE.DATASET,DISP=SHR //SYSUT2 DD DSN=BACKUP.DATASET,DISP=(NEW,CATLG,DELETE), // SPACE=(TRK,(1,1)),UNIT=SYSDA
Uso del Procedimiento BACKUPPROC
//MYJOB JOB (ACCT),'BACKUP JOB' //STEP1 EXEC BACKUPPROC, // SYSUT1.DSN=MY.SOURCE.DATASET, // SYSUT2.DSN=MY.BACKUP.DATASET
Explicación del Código
- BACKUPPROC: Procedimiento que realiza una copia de seguridad.
- SYSUT1: Conjunto de datos de origen.
- SYSUT2: Conjunto de datos de destino.
- MYJOB: Trabajo que invoca el procedimiento
BACKUPPROC
. - SYSUT1.DSN=MY.SOURCE.DATASET: Sobrescribe el conjunto de datos de origen.
- SYSUT2.DSN=MY.BACKUP.DATASET: Sobrescribe el conjunto de datos de destino.
Conclusión
En esta sección, hemos aprendido cómo crear y usar procedimientos en JCL. Los procedimientos son una herramienta esencial para la reutilización de código y la simplificación de la gestión de trabajos. Hemos visto cómo definir un procedimiento, invocarlo en un trabajo JCL y sobrescribir parámetros dentro del procedimiento. Con esta base, estarás preparado para manejar trabajos JCL más complejos y eficientes.
En el próximo tema, exploraremos los parámetros simbólicos y cómo pueden ser utilizados para hacer los procedimientos aún más flexibles y reutilizables.
Curso de JCL (Lenguaje de Control de Trabajos)
Módulo 1: Introducción a JCL
- ¿Qué es JCL?
- Estructura Básica de un Trabajo JCL
- Visión General de las Declaraciones JCL
- Ejecutando Tu Primer Trabajo JCL
Módulo 2: Declaraciones y Sintaxis de JCL
Módulo 3: Declaraciones de Definición de Datos (DD)
- Definiendo Conjuntos de Datos
- Conjuntos de Datos Temporales
- Referenciando Conjuntos de Datos
- Parámetro de Disposición
Módulo 4: Procedimientos y Parámetros Simbólicos
- Introducción a los Procedimientos
- Creando y Usando Procedimientos
- Parámetros Simbólicos
- Sobrescribiendo Parámetros
Módulo 5: Conceptos Avanzados de JCL
- Procesamiento Condicional
- Declaraciones JCLLIB e INCLUDE
- Grupos de Datos de Generación (GDGs)
- Reinicio y Punto de Control
Módulo 6: Manejo de Errores y Depuración
- Errores Comunes de JCL
- Interpretando Mensajes de Error de JCL
- Técnicas de Depuración
- Usando JES2/JES3 para Solución de Problemas
Módulo 7: Rendimiento y Optimización
- Optimizando Trabajos JCL
- Uso Eficiente de Conjuntos de Datos
- Procesamiento Paralelo
- Mejores Prácticas