Métodos de entrada-salida

Cualquier programa por lotes ejecutado a través de un JCL requiere entrada de datos, que se procesa y se crea una salida. Existen diferentes métodos para alimentar la entrada al programa y escribir la salida recibida de un JCL. En el modo por lotes, no se requiere la interacción del usuario, pero los dispositivos de entrada y salida y la organización requerida se definen en JCL y se envían.

Entrada de datos en un JCL

Hay varias formas de alimentar los datos a un programa utilizando JCL y estos métodos se explican a continuación:

INSTALAR DATOS

Los datos incorporados a un programa se pueden especificar mediante una declaración SYSIN DD.

//CONCATEX JOB CLASS=6,NOTIFY=&SYSUID
//* Example 1:
//STEP10 EXEC PGM=MYPROG
//IN1    DD DSN=SAMPLE.INPUT1,DISP=SHR
//OUT1   DD DSN=SAMPLE.OUTPUT1,DISP=(,CATLG,DELETE),
//       LRECL=50,RECFM=FB
//SYSIN  DD *
//CUST1  1000
//CUST2  1001
/*
//*
//* Example 2:
//STEP20 EXEC PGM=MYPROG
//OUT1   DD DSN=SAMPLE.OUTPUT2,DISP=(,CATLG,DELETE),
//       LRECL=50,RECFM=FB
//SYSIN  DD DSN=SAMPLE.SYSIN.DATA,DISP=SHR
//*

En el ejemplo 1, la entrada a MYPROG se pasa a través de SYSIN. Los datos se proporcionan dentro del JCL. Se pasan dos registros de datos al programa. Tenga en cuenta que / * marca el final de la transmisión de datos SYSIN.

"CUST1 1000" es record1 y "CUST2 1001" es record2. La condición de fin de datos se cumple cuando se encuentra el símbolo / * al leer los datos.

En el Ejemplo 2, los datos SYSIN se mantienen dentro de un conjunto de datos, donde SAMPLE.SYSIN.DATA es un archivo PS, que puede contener uno o más registros de datos.

Entrada de datos a través de archivos

Como se mencionó en la mayoría de los ejemplos de los capítulos anteriores, la entrada de datos a un programa se puede proporcionar a través de archivos PS, VSAM o GDG, con el nombre DSN relevante y los parámetros DISP junto con las declaraciones DD.

En el ejemplo 1, SAMPLE.INPUT1 es el archivo de entrada a través del cual se pasan los datos a MYPROG. Se denomina IN1 dentro del programa.

Salida de datos en un JCL

La salida en un JCL se puede catalogar en un conjunto de datos o pasar al SYSOUT. Como se menciona en el capítulo de declaraciones DD,SYSOUT=* redirige la salida a la misma clase que la mencionada en el parámetro MSGCLASS de la instrucción JOB.

Guardar registros de trabajos

Especificando MSGCLASS=Yguarda el registro de trabajos en el JMR (Gestión y recuperación de registros de trabajos). El registro de TRABAJO completo se puede redirigir al SPOOL y se puede guardar en un conjunto de datos dando el comando XDC contra el nombre del trabajo en el SPOOL. Cuando se da el comando XDC en SPOOL, se abre una pantalla de creación de conjunto de datos. El registro de trabajos se puede guardar dando una definición apropiada de PS o PDS.

Los registros de trabajos también se pueden guardar en un conjunto de datos mencionando un conjunto de datos ya creado para SYSOUT y SYSPRINT. Pero el registro de trabajo completo no se puede capturar de esta manera (es decir, JESMSG no se catalogará) como se hace en JMR o XDC.

//SAMPINST JOB 1,CLASS=6,MSGCLASS=Y,NOTIFY=&SYSUID
//*
//STEP1    EXEC PGM=MYPROG
//IN1      DD DSN=MYDATA.URMI.INPUT,DISP=SHR
//OUT1     DD SYSOUT=*
//SYSOUT   DD DSN=MYDATA.URMI.SYSOUT,DISP=SHR
//SYSPRINT DD DSN=MYDATA.URMI.SYSPRINT,DISP=SHR
//SYSIN    DD MYDATA.BASE.LIB1(DATA1),DISP=SHR
//*
//STEP2    EXEC PGM=SORT

En el ejemplo anterior, SYSOUT está catalogado en MYDATA.URMI.SYSOUT y SYSPRINT en MYDATA.URMI.SYSPRINT.