En este tema, aprenderemos cómo referenciar conjuntos de datos en JCL. La capacidad de referenciar correctamente los conjuntos de datos es crucial para la ejecución exitosa de trabajos en un entorno mainframe. Exploraremos los diferentes métodos y parámetros utilizados para referenciar conjuntos de datos, y proporcionaremos ejemplos prácticos para ilustrar estos conceptos.

Conceptos Clave

  1. Conjunto de Datos (Data Set): Un conjunto de datos es una colección de datos almacenados en un formato específico en el sistema mainframe. Puede ser un archivo secuencial, un archivo particionado (PDS), o un archivo VSAM, entre otros.
  2. Declaración DD (Data Definition): La declaración DD se utiliza en JCL para definir y referenciar conjuntos de datos. Es una de las declaraciones más importantes en JCL.

Métodos para Referenciar Conjuntos de Datos

  1. Referenciando Conjuntos de Datos Existentes

Para referenciar un conjunto de datos existente, utilizamos el parámetro DSN (Data Set Name) en la declaración DD. Aquí hay un ejemplo básico:

//STEP1    EXEC PGM=MYPROGRAM
//MYDATA   DD   DSN=EXISTING.DATA.SET,DISP=SHR
  • DSN=EXISTING.DATA.SET: Especifica el nombre del conjunto de datos existente.
  • DISP=SHR: Indica que el conjunto de datos se compartirá con otros trabajos que también lo necesiten.

  1. Referenciando Conjuntos de Datos Temporales

Los conjuntos de datos temporales se crean y utilizan dentro del mismo trabajo JCL. No se almacenan permanentemente y se eliminan al finalizar el trabajo. Se referencian utilizando && antes del nombre del conjunto de datos:

//STEP1    EXEC PGM=MYPROGRAM
//TEMPDS   DD   DSN=&&TEMP.DATA.SET,DISP=(NEW,PASS)
  • DSN=&&TEMP.DATA.SET: Define un conjunto de datos temporal.
  • DISP=(NEW,PASS): Indica que el conjunto de datos es nuevo y se pasará al siguiente paso del trabajo.

  1. Referenciando Conjuntos de Datos en Diferentes Pasos

Para referenciar un conjunto de datos creado en un paso anterior, utilizamos el parámetro DSN con el nombre del conjunto de datos temporal:

//STEP1    EXEC PGM=MYPROGRAM
//TEMPDS   DD   DSN=&&TEMP.DATA.SET,DISP=(NEW,PASS)
//STEP2    EXEC PGM=ANOTHERPGM
//INPUT    DD   DSN=&&TEMP.DATA.SET,DISP=(OLD,DELETE)
  • STEP1: Crea un conjunto de datos temporal.
  • STEP2: Referencia el conjunto de datos temporal creado en STEP1.

  1. Referenciando Conjuntos de Datos Particionados (PDS)

Para referenciar un miembro específico de un conjunto de datos particionado (PDS), utilizamos el nombre del miembro entre paréntesis:

//STEP1    EXEC PGM=MYPROGRAM
//MYLIB    DD   DSN=MY.PARTITIONED.DATA.SET(MEMBER1),DISP=SHR
  • DSN=MY.PARTITIONED.DATA.SET(MEMBER1): Especifica el miembro MEMBER1 del conjunto de datos particionado MY.PARTITIONED.DATA.SET.

Ejemplo Práctico

A continuación, se muestra un ejemplo completo que ilustra cómo referenciar diferentes tipos de conjuntos de datos en un trabajo JCL:

//MYJOB    JOB  'ACCOUNTING INFO',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID
//STEP1    EXEC PGM=MYPROGRAM
//INPUT    DD   DSN=EXISTING.DATA.SET,DISP=SHR
//TEMPDS   DD   DSN=&&TEMP.DATA.SET,DISP=(NEW,PASS),UNIT=SYSDA,SPACE=(CYL,(5,5))
//STEP2    EXEC PGM=ANOTHERPGM
//OUTPUT   DD   DSN=&&TEMP.DATA.SET,DISP=(OLD,DELETE)
//LIBRARY  DD   DSN=MY.PARTITIONED.DATA.SET(MEMBER1),DISP=SHR
  • STEP1:
    • INPUT referencia un conjunto de datos existente.
    • TEMPDS crea un conjunto de datos temporal.
  • STEP2:
    • OUTPUT referencia el conjunto de datos temporal creado en STEP1.
    • LIBRARY referencia un miembro específico de un conjunto de datos particionado.

Ejercicio Práctico

Ejercicio:

Escribe un trabajo JCL que realice las siguientes acciones:

  1. Cree un conjunto de datos temporal.
  2. En un segundo paso, lea el conjunto de datos temporal y escriba su contenido en un conjunto de datos existente.

Solución:

//MYJOB    JOB  'ACCOUNTING INFO',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID
//STEP1    EXEC PGM=MYPROGRAM
//TEMPDS   DD   DSN=&&TEMP.DATA.SET,DISP=(NEW,PASS),UNIT=SYSDA,SPACE=(CYL,(5,5))
//STEP2    EXEC PGM=ANOTHERPGM
//INPUT    DD   DSN=&&TEMP.DATA.SET,DISP=(OLD,DELETE)
//OUTPUT   DD   DSN=EXISTING.DATA.SET,DISP=MOD
  • STEP1:
    • TEMPDS crea un conjunto de datos temporal.
  • STEP2:
    • INPUT referencia el conjunto de datos temporal creado en STEP1.
    • OUTPUT escribe el contenido en un conjunto de datos existente.

Conclusión

En esta sección, hemos aprendido cómo referenciar conjuntos de datos en JCL utilizando la declaración DD. Hemos cubierto cómo referenciar conjuntos de datos existentes, temporales, y particionados, y cómo pasar conjuntos de datos entre diferentes pasos de un trabajo. Estos conceptos son fundamentales para la gestión de datos en un entorno mainframe y son esenciales para la creación de trabajos JCL eficientes y efectivos.

En el próximo tema, exploraremos el parámetro de disposición en mayor detalle, lo que nos permitirá controlar cómo se manejan los conjuntos de datos antes, durante y después de la ejecución de un trabajo.

© Copyright 2024. Todos los derechos reservados