La structure de base d’un JCL avec les instructions communes est donnée ci-dessous :
//SAMPJCL JOB 1,CLASS=6,MSGCLASS=0,NOTIFY=&SYSUID (1)
//* (2)
//STEP010 EXEC PGM=SORT (3)
//SORTIN DD DSN=JCL.SAMPLE.INPUT,DISP=SHR (4)
//SORTOUT DD DSN=JCL.SAMPLE.OUTPUT, (5)
// DISP=(NEW,CATLG,CATLG),DATACLAS=DSIZE50
//SYSOUT DD SYSOUT=* (6)
//SYSUDUMP DD SYSOUT=C (6)
//SYSPRINT DD SYSOUT=* (6)
//SYSIN DD * (6)
SORT FIELDS=COPY
INCLUDE COND=(28,3,CH,EQ,C'XXX')
/* (7)
Les instructions JCL numérotées ont été expliquées ci-dessous :
- (1) Instruction JOB – Spécifie les informations requises pour la mise en file d’attente du travail, telles que l’ID du travail, la priorité d’exécution, l’ID utilisateur à notifier à la fin du travail.
- (2) Instruction //* – Il s’agit d’une instruction de commentaire.
- (3) Instruction EXEC – Spécifie le PROC/Programme à exécuter.
Dans l’exemple ci-dessus, un programme SORT est en cours d’exécution (c’est-à-dire trier les données d’entrée dans un ordre particulier)
- (4) Instruction DD d’entrée – Spécifie le type d’entrée à transmettre au programme mentionné en (3).
Dans l’exemple ci-dessus, un fichier séquentiel physique (PS) est passé en entrée en mode partagé (DISP = SHR).
- (5) Instruction DD de sortie – Spécifie le type de sortie à produire par le programme lors de l’exécution.
Dans l’exemple ci-dessus, un fichier PS est créé.
Si une instruction s’étend au-delà de la 70e position d’une ligne, elle se poursuit sur la ligne suivante, qui doit commencer par “//” suivi d’un ou plusieurs espaces.
- (6) Il peut y avoir d’autres types d’instructions DD pour spécifier des informations supplémentaires au programme (dans l’exemple ci-dessus :
la condition SORT est spécifiée dans l’instruction DD SYSIN) et pour spécifier la destination du journal des erreurs/exécutions (exemple : SYSUDUMP/ SYSPRINT).
Les instructions DD peuvent être contenues dans un ensemble de données (fichier mainframe) ou sous forme de flux de données (informations codées en dur dans le JCL), comme indiqué dans l’exemple ci-dessus.
- (7) Instruction /* marque la fin des données du flux.
Toutes les instructions JCL, à l’exception des données de flux, commencent par //.
Il doit y avoir au moins un espace avant et après les mots clés JOB, EXEC et DD et il ne doit y avoir aucun espace dans le reste de l’instruction.