El procesamiento condicional en JCL permite que un trabajo ejecute diferentes pasos basados en el resultado de pasos anteriores. Esto es útil para manejar errores, realizar tareas alternativas o simplemente optimizar el flujo de trabajo. En esta sección, aprenderemos cómo utilizar las declaraciones condicionales en JCL para controlar el flujo de ejecución de un trabajo.
Conceptos Clave
-
Código de Retorno (Return Code, RC): Es un valor numérico devuelto por un programa o paso de JCL que indica el estado de finalización. Los códigos de retorno comunes son:
0
: Ejecución exitosa.4
: Advertencia (warning).8
: Error.12
: Error severo.16
: Error crítico.
-
Condición (COND): Es un parámetro utilizado en la declaración
EXEC
para especificar condiciones bajo las cuales un paso debe ser omitido. -
Parámetro COND: Se utiliza para evaluar el código de retorno de pasos anteriores y decidir si un paso debe ejecutarse o no.
Sintaxis del Parámetro COND
La sintaxis básica del parámetro COND
es:
code
: El código de retorno a evaluar.operator
: El operador de comparación (GT
,LT
,EQ
,NE
,GE
,LE
).
Ejemplo de Uso del Parámetro COND
Supongamos que tenemos un trabajo con tres pasos y queremos que el tercer paso se ejecute solo si el segundo paso termina con un código de retorno mayor que 4.
//JOBNAME JOB (ACCT),'COND EXAMPLE',CLASS=A,MSGCLASS=A //STEP1 EXEC PGM=PROG1 //STEP2 EXEC PGM=PROG2 //STEP3 EXEC PGM=PROG3,COND=(4,LT,STEP2)
En este ejemplo:
STEP1
ySTEP2
se ejecutan sin condiciones.STEP3
se ejecutará solo si el código de retorno deSTEP2
es menor que 4.
Ejemplo Completo
A continuación, se muestra un ejemplo completo de un trabajo JCL que utiliza el parámetro COND
para controlar el flujo de ejecución:
//CONDJOB JOB (ACCT),'COND EXAMPLE',CLASS=A,MSGCLASS=A //* //STEP1 EXEC PGM=PROG1 //SYSPRINT DD SYSOUT=* //SYSIN DD * // Instrucciones para PROG1 /* //* //STEP2 EXEC PGM=PROG2 //SYSPRINT DD SYSOUT=* //SYSIN DD * // Instrucciones para PROG2 /* //* //STEP3 EXEC PGM=PROG3,COND=(4,LT,STEP2) //SYSPRINT DD SYSOUT=* //SYSIN DD * // Instrucciones para PROG3 /* //* //STEP4 EXEC PGM=PROG4,COND=(0,EQ,STEP1) //SYSPRINT DD SYSOUT=* //SYSIN DD * // Instrucciones para PROG4 /* //
En este ejemplo:
STEP3
se ejecutará solo siSTEP2
tiene un código de retorno menor que 4.STEP4
se ejecutará solo siSTEP1
tiene un código de retorno igual a 0.
Ejercicio Práctico
Ejercicio
Crea un trabajo JCL que contenga tres pasos:
- El primer paso ejecuta un programa que siempre devuelve un código de retorno de 0.
- El segundo paso ejecuta un programa que siempre devuelve un código de retorno de 8.
- El tercer paso debe ejecutarse solo si el segundo paso devuelve un código de retorno mayor que 4.
Solución
//EXERJOB JOB (ACCT),'COND EXERCISE',CLASS=A,MSGCLASS=A //* //STEP1 EXEC PGM=DUMMYPGM1 //SYSPRINT DD SYSOUT=* //SYSIN DD * // Instrucciones para DUMMYPGM1 /* //* //STEP2 EXEC PGM=DUMMYPGM2 //SYSPRINT DD SYSOUT=* //SYSIN DD * // Instrucciones para DUMMYPGM2 /* //* //STEP3 EXEC PGM=DUMMYPGM3,COND=(4,LT,STEP2) //SYSPRINT DD SYSOUT=* //SYSIN DD * // Instrucciones para DUMMYPGM3 /* //
En este ejercicio:
STEP1
ySTEP2
se ejecutan sin condiciones.STEP3
se ejecutará solo siSTEP2
tiene un código de retorno mayor que 4.
Resumen
En esta sección, hemos aprendido sobre el procesamiento condicional en JCL, incluyendo el uso del parámetro COND
para controlar el flujo de ejecución de los pasos en un trabajo. Hemos visto ejemplos prácticos y hemos realizado un ejercicio para reforzar los conceptos aprendidos. Con esta base, estarás preparado para manejar situaciones más complejas y optimizar tus trabajos JCL de manera efectiva.
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