Méthodes d'entrée-sortie

Tout programme batch exécuté via un JCL nécessite une entrée de données, qui est traitée et une sortie est créée. Il existe différentes méthodes pour alimenter le programme et écrire la sortie reçue d'un JCL. En mode batch, aucune interaction utilisateur n'est requise, mais les périphériques d'entrée et de sortie et l'organisation requise sont définis dans le JCL et soumis.

Entrée de données dans un JCL

Il existe différentes manières de transmettre les données à un programme à l'aide de JCL et ces méthodes ont été expliquées ci-dessous:

DONNÉES INSTREAM

Les données Instream vers un programme peuvent être spécifiées à l'aide d'une instruction 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
//*

Dans l'exemple 1, l'entrée de MYPROG est transmise via SYSIN. Les données sont fournies dans le JCL. Deux enregistrements de données sont transmis au programme. Veuillez noter que / * marque la fin des données SYSIN dans le flux.

"CUST1 1000" est enregistrement1 et "CUST2 1001" est enregistrement2. La condition de fin de données est remplie lorsque le symbole / * est rencontré lors de la lecture des données.

Dans l'exemple 2, les données SYSIN sont conservées dans un ensemble de données, où SAMPLE.SYSIN.DATA est un fichier PS, qui peut contenir un ou plusieurs enregistrements de données.

Entrée de données via des fichiers

Comme mentionné dans la plupart des exemples des chapitres précédents, l'entrée de données dans un programme peut être fournie via des fichiers PS, VSAM ou GDG, avec le nom DSN et les paramètres DISP appropriés ainsi que des instructions DD.

Dans l'exemple 1, SAMPLE.INPUT1 est le fichier d'entrée via lequel les données sont transmises à MYPROG. Il est appelé IN1 dans le programme.

Sortie de données dans un JCL

La sortie d'un JCL peut être cataloguée dans un jeu de données ou transmise au SYSOUT. Comme mentionné dans le chapitre sur les déclarations DD,SYSOUT=* redirige la sortie vers la même classe que celle mentionnée dans le paramètre MSGCLASS de l'instruction JOB.

Enregistrement des journaux de travaux

En précisant MSGCLASS=Yenregistre le journal des travaux dans le JMR (Joblog Management and Retrieval). L'ensemble du journal JOB peut être redirigé vers le SPOOL et peut être enregistré dans un ensemble de données en donnant la commande XDC par rapport au nom du travail dans le SPOOL. Lorsque la commande XDC est donnée dans le SPOOL, un écran de création de jeu de données s'ouvre. Le journal des travaux peut ensuite être sauvegardé en donnant la définition PS ou PDS appropriée.

Les journaux de travaux peuvent également être enregistrés dans un ensemble de données en mentionnant un ensemble de données déjà créé pour SYSOUT et SYSPRINT. Mais l'ensemble du journal des travaux ne peut pas être capturé de cette manière (c'est-à-dire que JESMSG ne sera pas catalogué) comme cela est fait dans JMR ou 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

Dans l'exemple ci-dessus, SYSOUT est catalogué dans MYDATA.URMI.SYSOUT et SYSPRINT dans MYDATA.URMI.SYSPRINT.