En este tema, aprenderemos cómo sobrescribir parámetros en JCL, una técnica esencial para modificar el comportamiento de los procedimientos sin necesidad de cambiar el código fuente del procedimiento en sí. Esto es especialmente útil en entornos de producción donde la flexibilidad y la adaptabilidad son cruciales.
Conceptos Clave
- Procedimientos (PROCs): Son conjuntos de declaraciones JCL que se pueden reutilizar en múltiples trabajos.
- Parámetros Simbólicos: Son variables dentro de un procedimiento que pueden ser asignadas valores específicos cuando se invoca el procedimiento.
- Sobrescritura de Parámetros: Permite cambiar los valores de los parámetros simbólicos en el momento de la ejecución del trabajo.
Estructura de Sobrescritura de Parámetros
Para sobrescribir un parámetro simbólico en un procedimiento, se utiliza la declaración EXEC
en el trabajo JCL que llama al procedimiento. La sintaxis básica es:
Ejemplo Práctico
Supongamos que tenemos un procedimiento llamado MYPROC
que contiene los siguientes parámetros simbólicos:
En este procedimiento, &DATASET
y &DISP
son parámetros simbólicos. Ahora, queremos sobrescribir estos parámetros en nuestro trabajo JCL:
//MYJOB JOB (ACCT),'PROBADOR',CLASS=A,MSGCLASS=X //STEP1 EXEC PROC=MYPROC, DATASET=MY.DATA.SET, DISP=SHR
En este ejemplo:
DATASET=MY.DATA.SET
sobrescribe el parámetro&DATASET
en el procedimientoMYPROC
.DISP=SHR
sobrescribe el parámetro&DISP
en el procedimientoMYPROC
.
Explicación del Código
-
Declaración del Trabajo:
//MYJOB JOB (ACCT),'PROBADOR',CLASS=A,MSGCLASS=X
MYJOB
: Nombre del trabajo.(ACCT)
: Información de la cuenta.'PROBADOR'
: Nombre del usuario.CLASS=A
: Clase del trabajo.MSGCLASS=X
: Clase de mensajes.
-
Ejecución del Procedimiento con Sobrescritura:
//STEP1 EXEC PROC=MYPROC, DATASET=MY.DATA.SET, DISP=SHR
STEP1
: Nombre del paso.EXEC PROC=MYPROC
: Llama al procedimientoMYPROC
.DATASET=MY.DATA.SET
: Sobrescribe el parámetro&DATASET
conMY.DATA.SET
.DISP=SHR
: Sobrescribe el parámetro&DISP
conSHR
.
Ejercicio Práctico
Ejercicio
Crea un procedimiento llamado BACKUPPROC
que tenga los siguientes parámetros simbólicos: &SRC
(fuente) y &DEST
(destino). Luego, escribe un trabajo JCL que sobrescriba estos parámetros para realizar una copia de seguridad de USER.DATA
a BACKUP.DATA
.
Solución
-
Definición del Procedimiento:
//BACKUPPROC PROC //COPYSTEP EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT1 DD DSN=&SRC,DISP=SHR //SYSUT2 DD DSN=&DEST,DISP=(,CATLG,DELETE),UNIT=SYSDA,SPACE=(TRK,(1,1))
-
Trabajo JCL que Sobrescribe los Parámetros:
//BACKUPJOB JOB (ACCT),'COPIA DE SEGURIDAD',CLASS=A,MSGCLASS=X //STEP1 EXEC PROC=BACKUPPROC, SRC=USER.DATA, DEST=BACKUP.DATA
Explicación del Código
-
Definición del Procedimiento:
BACKUPPROC
: Nombre del procedimiento.COPYSTEP
: Paso que ejecuta el programaIEBGENER
para copiar datos.&SRC
y&DEST
: Parámetros simbólicos para los conjuntos de datos de origen y destino.
-
Trabajo JCL:
BACKUPJOB
: Nombre del trabajo.STEP1
: Paso que ejecuta el procedimientoBACKUPPROC
.SRC=USER.DATA
: Sobrescribe el parámetro&SRC
conUSER.DATA
.DEST=BACKUP.DATA
: Sobrescribe el parámetro&DEST
conBACKUP.DATA
.
Resumen
En esta sección, hemos aprendido cómo sobrescribir parámetros en JCL para modificar el comportamiento de los procedimientos sin cambiar su código fuente. Esta técnica es fundamental para la flexibilidad y la adaptabilidad en la gestión de trabajos en entornos de producción. Asegúrate de practicar estos conceptos para dominarlos completamente.
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