Pour exécuter un programme COBOL en mode batch à l’aide de JCL, le programme doit être compilé et un module de chargement est créé avec tous les sous-programmes.
Le JCL utilise le module de chargement et non le programme réel au moment de l’exécution.
Les bibliothèques de chargement sont concaténées et transmises au JCL au moment de l’exécution à l’aide de JCLLIB ou STEPLIB.
Il existe de nombreux utilitaires de compilateur mainframe disponibles pour compiler un programme COBOL.
Certaines entreprises utilisent des outils de gestion du changement comme Endevor, qui compile et stocke chaque version du programme.
Ceci est utile pour suivre les modifications apportées au programme.
//COMPILE JOB ,CLASS=6,MSGCLASS=X,NOTIFY=&SYSUID
//*
//STEP1 EXEC IGYCRCTL,PARM=RMODE,DYNAM,SSRANGE
//SYSIN DD DSN=MYDATA.LCDC.SOURCES(MYCOBB),DISP=SHR
//SYSLIB DD DSN=MYDATA.LCDC.COPYBOOK(MYCOPY),DISP=SHR
//SYSLMOD DD DSN=MYDATA.LCDC.LOAD(MYCOBB),DISP=SHR
//SYSPRINT DD SYSOUT=*
//*
IGYCRCTL est un utilitaire de compilateur IBM COBOL.
Les options du compilateur sont transmises à l’aide du paramètre PARM.
Dans l’exemple ci-dessus, RMODE demande au compilateur d’utiliser le mode d’adressage relatif dans le programme.
Le programme COBOL est passé à l’aide du paramètre SYSIN et le copybook est la bibliothèque utilisée par le programme dans SYSLIB.
Ce JCL produit le module de chargement du programme en sortie qui sert d’entrée au JCL d’exécution.