Metodi di input-output

Qualsiasi programma batch eseguito tramite un JCL richiede l'input dei dati, che viene elaborato e viene creato un output. Esistono diversi metodi per inviare l'input al programma e scrivere l'output ricevuto da un JCL. In modalità batch, non è richiesta alcuna interazione da parte dell'utente, ma i dispositivi di input e output e l'organizzazione richiesta sono definiti in JCL e inviati.

Input di dati in un JCL

Esistono vari modi per inviare i dati a un programma utilizzando JCL e questi metodi sono stati spiegati di seguito:

DATI INSTREAM

I dati in-stream in un programma possono essere specificati utilizzando un'istruzione 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
//*

Nell'esempio 1, l'input a MYPROG viene passato tramite SYSIN. I dati vengono forniti all'interno di JCL. Due record di dati vengono passati al programma. Si noti che / * contrassegna la fine dei dati SYSIN in-stream.

"CUST1 1000" è record1 e "CUST2 1001" è record2. La condizione di fine dati viene soddisfatta quando viene rilevato il simbolo / * durante la lettura dei dati.

Nell'esempio 2, i dati SYSIN sono contenuti in un set di dati, dove SAMPLE.SYSIN.DATA è un file PS, che può contenere uno o più record di dati.

Input di dati tramite file

Come menzionato nella maggior parte degli esempi nei capitoli precedenti, l'input dei dati a un programma può essere fornito tramite file PS, VSAM o GDG, con il nome DSN e i parametri DISP pertinenti insieme alle istruzioni DD.

Nell'esempio 1, SAMPLE.INPUT1 è il file di input attraverso il quale i dati vengono passati a MYPROG. Viene indicato come IN1 all'interno del programma.

Uscita dati in un JCL

L'output in un JCL può essere catalogato in un set di dati o passato a SYSOUT. Come menzionato nel capitolo delle istruzioni DD,SYSOUT=* reindirizza l'output alla stessa classe di quella menzionata nel parametro MSGCLASS dell'istruzione JOB.

Salvataggio dei registri dei lavori

Specificare MSGCLASS=Ysalva la registrazione lavori in JMR (Gestione e recupero log lavori). L'intero registro JOB può essere reindirizzato a SPOOL e può essere salvato in un set di dati fornendo il comando XDC contro il nome del lavoro in SPOOL. Quando il comando XDC viene fornito in SPOOL, viene visualizzata una schermata di creazione del set di dati. La registrazione del lavoro può quindi essere salvata fornendo la definizione PS o PDS appropriata.

I registri lavori possono anche essere salvati in un set di dati menzionando un set di dati già creato per SYSOUT e SYSPRINT. Ma l'intero log del lavoro non può essere acquisito in questo modo (ovvero, JESMSG non verrà catalogato) come fatto in 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

Nell'esempio precedente, SYSOUT è catalogato in MYDATA.URMI.SYSOUT e SYSPRINT in MYDATA.URMI.SYSPRINT.