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

  1. Procedimientos (PROCs): Son conjuntos de declaraciones JCL que se pueden reutilizar en múltiples trabajos.
  2. Parámetros Simbólicos: Son variables dentro de un procedimiento que pueden ser asignadas valores específicos cuando se invoca el procedimiento.
  3. 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:

//STEP1 EXEC PROC=nombre_del_procedimiento, parametro1=valor1, parametro2=valor2

Ejemplo Práctico

Supongamos que tenemos un procedimiento llamado MYPROC que contiene los siguientes parámetros simbólicos:

//MYPROC PROC
//STEP1 EXEC PGM=MYPROGRAM
//DD1   DD  DSN=&DATASET,DISP=&DISP

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 procedimiento MYPROC.
  • DISP=SHR sobrescribe el parámetro &DISP en el procedimiento MYPROC.

Explicación del Código

  1. 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.
  2. 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 procedimiento MYPROC.
    • DATASET=MY.DATA.SET: Sobrescribe el parámetro &DATASET con MY.DATA.SET.
    • DISP=SHR: Sobrescribe el parámetro &DISP con SHR.

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

  1. 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))
    
  2. 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

  1. Definición del Procedimiento:

    • BACKUPPROC: Nombre del procedimiento.
    • COPYSTEP: Paso que ejecuta el programa IEBGENER para copiar datos.
    • &SRC y &DEST: Parámetros simbólicos para los conjuntos de datos de origen y destino.
  2. Trabajo JCL:

    • BACKUPJOB: Nombre del trabajo.
    • STEP1: Paso que ejecuta el procedimiento BACKUPPROC.
    • SRC=USER.DATA: Sobrescribe el parámetro &SRC con USER.DATA.
    • DEST=BACKUP.DATA: Sobrescribe el parámetro &DEST con BACKUP.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.

© Copyright 2024. Todos los derechos reservados