En este tema, aprenderemos sobre los conjuntos de datos temporales en JCL, su propósito, cómo definirlos y cómo utilizarlos en tus trabajos JCL. Los conjuntos de datos temporales son útiles cuando necesitas almacenar datos de manera temporal durante la ejecución de un trabajo y no necesitas conservar esos datos después de que el trabajo haya terminado.

¿Qué es un Conjunto de Datos Temporal?

Un conjunto de datos temporal es un tipo de conjunto de datos que se crea y utiliza durante la ejecución de un trabajo JCL y se elimina automáticamente al finalizar el trabajo. Estos conjuntos de datos son útiles para almacenar datos intermedios que no necesitan ser conservados después de la ejecución del trabajo.

Características de los Conjuntos de Datos Temporales:

  • Vida Útil Limitada: Se eliminan automáticamente al finalizar el trabajo.
  • Identificación: Se identifican mediante un nombre especial que comienza con dos signos de ampersand (&&).
  • Uso Común: Almacenar datos intermedios, resultados temporales, etc.

Definiendo Conjuntos de Datos Temporales

Para definir un conjunto de datos temporal en JCL, utilizamos la declaración DD con un nombre que comienza con &&. A continuación, se muestra la sintaxis básica:

//DDNAME  DD  DSN=&&TEMPDS, DISP=(NEW,PASS), ...

Parámetros Clave:

  • DDNAME: Nombre del descriptor de datos.
  • DSN: Nombre del conjunto de datos. Para conjuntos de datos temporales, debe comenzar con &&.
  • DISP: Parámetro de disposición. Para conjuntos de datos temporales, se suele usar (NEW,PASS).

Ejemplo Práctico

A continuación, se muestra un ejemplo de cómo definir y utilizar un conjunto de datos temporal en un trabajo JCL:

//JOBNAME  JOB  (ACCT),'PROGRAMMER',CLASS=A,MSGCLASS=X
//STEP1    EXEC PGM=PROG1
//TEMPDS   DD   DSN=&&TEMPDS,DISP=(NEW,PASS),
//              SPACE=(CYL,(1,1)),UNIT=SYSDA
//OUTDS    DD   DSN=OUTPUT.DATASET,DISP=(NEW,CATLG),
//              SPACE=(CYL,(1,1)),UNIT=SYSDA
//STEP2    EXEC PGM=PROG2
//INDATA   DD   DSN=&&TEMPDS,DISP=(OLD,DELETE)
//OUTDATA  DD   DSN=OUTPUT.DATASET,DISP=(OLD,DELETE)

Explicación del Ejemplo:

  1. STEP1:

    • TEMPDS: Define un conjunto de datos temporal &&TEMPDS con disposición (NEW,PASS), lo que significa que se crea nuevo y se pasa al siguiente paso.
    • OUTDS: Define un conjunto de datos de salida OUTPUT.DATASET con disposición (NEW,CATLG), lo que significa que se crea nuevo y se cataloga al finalizar el trabajo.
  2. STEP2:

    • INDATA: Utiliza el conjunto de datos temporal &&TEMPDS con disposición (OLD,DELETE), lo que significa que se utiliza el conjunto de datos existente y se elimina al finalizar el trabajo.
    • OUTDATA: Utiliza el conjunto de datos de salida OUTPUT.DATASET con disposición (OLD,DELETE), lo que significa que se utiliza el conjunto de datos existente y se elimina al finalizar el trabajo.

Ejercicio Práctico

Ejercicio:

Escribe un trabajo JCL que:

  1. Cree un conjunto de datos temporal para almacenar datos intermedios.
  2. Utilice ese conjunto de datos temporal en un segundo paso para generar un conjunto de datos de salida.

Solución:

//MYJOB    JOB  (ACCT),'PROGRAMMER',CLASS=A,MSGCLASS=X
//STEP1    EXEC PGM=PROG1
//TEMPDS   DD   DSN=&&TEMPDS,DISP=(NEW,PASS),
//              SPACE=(CYL,(1,1)),UNIT=SYSDA
//STEP2    EXEC PGM=PROG2
//INDATA   DD   DSN=&&TEMPDS,DISP=(OLD,DELETE)
//OUTDATA  DD   DSN=FINAL.OUTPUT,DISP=(NEW,CATLG),
//              SPACE=(CYL,(1,1)),UNIT=SYSDA

Explicación de la Solución:

  • STEP1: Crea un conjunto de datos temporal &&TEMPDS con disposición (NEW,PASS).
  • STEP2: Utiliza el conjunto de datos temporal &&TEMPDS con disposición (OLD,DELETE) y genera un conjunto de datos de salida FINAL.OUTPUT con disposición (NEW,CATLG).

Conclusión

En esta sección, hemos aprendido sobre los conjuntos de datos temporales en JCL, cómo definirlos y utilizarlos en tus trabajos. Los conjuntos de datos temporales son una herramienta poderosa para manejar datos intermedios de manera eficiente y segura. En el próximo tema, exploraremos cómo referenciar conjuntos de datos en JCL.

© Copyright 2024. Todos los derechos reservados