El parámetro de disposición (DISP) en JCL es crucial para definir cómo se manejarán los conjuntos de datos antes, durante y después de la ejecución de un trabajo. Este parámetro se utiliza en la declaración DD (Data Definition) y especifica el estado del conjunto de datos y las acciones a tomar en diferentes etapas del trabajo.

Estructura del Parámetro DISP

El parámetro DISP tiene la siguiente estructura general:

//DDNAME DD DSN=dataset-name,DISP=(status,normal-disposition,abnormal-disposition)
  • status: Indica el estado del conjunto de datos antes de la ejecución del trabajo.
  • normal-disposition: Define la acción a tomar si el paso del trabajo se completa con éxito.
  • abnormal-disposition: Define la acción a tomar si el paso del trabajo falla.

Valores del Estado (status)

El estado puede ser uno de los siguientes:

  • NEW: El conjunto de datos no existe y será creado.
  • OLD: El conjunto de datos ya existe y será utilizado.
  • MOD: El conjunto de datos ya existe y se añadirá información al final.
  • SHR: El conjunto de datos ya existe y puede ser compartido con otros trabajos.

Disposiciones Normales y Anormales

Las disposiciones normales y anormales pueden ser:

  • DELETE: El conjunto de datos será eliminado.
  • KEEP: El conjunto de datos será conservado.
  • CATLG: El conjunto de datos será catalogado.
  • UNCATLG: El conjunto de datos será descatalogado.
  • PASS: El conjunto de datos será pasado al siguiente paso del trabajo.

Ejemplos Prácticos

Ejemplo 1: Creación de un Conjunto de Datos Nuevo

//STEP1    EXEC PGM=MYPROG
//NEWFILE  DD  DSN=MY.NEW.DATASET,DISP=(NEW,CATLG,DELETE),UNIT=SYSDA,SPACE=(CYL,(5,5)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)

En este ejemplo:

  • NEW: Indica que el conjunto de datos MY.NEW.DATASET será creado.
  • CATLG: Si el paso se completa con éxito, el conjunto de datos será catalogado.
  • DELETE: Si el paso falla, el conjunto de datos será eliminado.

Ejemplo 2: Uso de un Conjunto de Datos Existente

//STEP2    EXEC PGM=MYPROG
//OLDFILE  DD  DSN=MY.EXISTING.DATASET,DISP=(OLD,KEEP,KEEP)

En este ejemplo:

  • OLD: Indica que el conjunto de datos MY.EXISTING.DATASET ya existe y será utilizado.
  • KEEP: Tanto si el paso se completa con éxito como si falla, el conjunto de datos será conservado.

Ejemplo 3: Modificación de un Conjunto de Datos Existente

//STEP3    EXEC PGM=MYPROG
//MODFILE  DD  DSN=MY.MOD.DATASET,DISP=(MOD,CATLG,DELETE)

En este ejemplo:

  • MOD: Indica que el conjunto de datos MY.MOD.DATASET ya existe y se añadirá información al final.
  • CATLG: Si el paso se completa con éxito, el conjunto de datos será catalogado.
  • DELETE: Si el paso falla, el conjunto de datos será eliminado.

Ejercicio Práctico

Ejercicio 1: Definir un Conjunto de Datos Temporal

Escribe un JCL que defina un conjunto de datos temporal que será utilizado en un paso del trabajo y eliminado al finalizar, independientemente del resultado del paso.

//STEP4    EXEC PGM=MYPROG
//TEMPFILE DD  DSN=&&TEMP,DISP=(NEW,DELETE,DELETE),UNIT=SYSDA,SPACE=(CYL,(1,1)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)

Solución

En este ejercicio:

  • NEW: Indica que el conjunto de datos temporal &&TEMP será creado.
  • DELETE: Tanto si el paso se completa con éxito como si falla, el conjunto de datos será eliminado.

Resumen

El parámetro de disposición (DISP) es fundamental en JCL para gestionar el ciclo de vida de los conjuntos de datos. Permite especificar cómo se deben manejar los conjuntos de datos antes, durante y después de la ejecución de un trabajo. Comprender y utilizar correctamente el parámetro DISP es esencial para asegurar que los trabajos JCL se ejecuten de manera eficiente y sin errores.

En el siguiente módulo, exploraremos los procedimientos y parámetros simbólicos, que permiten reutilizar y parametrizar segmentos de JCL para una mayor flexibilidad y eficiencia.

© Copyright 2024. Todos los derechos reservados