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
DD1conNEW.DATASET. - DD1.DISP=(OLD,DELETE): Sobrescribe el parámetro de disposición de
DD1.
Ejercicio Práctico
Ejercicio
- Crea un procedimiento llamado
BACKUPPROCque realice una copia de seguridad de un conjunto de datos. - Usa el procedimiento
BACKUPPROCen 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
