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:

//MYJOB  JOB  (ACCT),'MY JOB'
//STEP1  EXEC 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:

//MYJOB  JOB  (ACCT),'MY JOB'
//STEP1  EXEC MYPROC,DD1.DSN=NEW.DATASET,DD1.DISP=(OLD,DELETE)

Explicación del Código

  • DD1.DSN=NEW.DATASET: Sobrescribe el nombre del conjunto de datos DD1 con NEW.DATASET.
  • DD1.DISP=(OLD,DELETE): Sobrescribe el parámetro de disposición de DD1.

Ejercicio Práctico

Ejercicio

  1. Crea un procedimiento llamado BACKUPPROC que realice una copia de seguridad de un conjunto de datos.
  2. 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.

© Copyright 2024. Todos los derechos reservados