Ci-dessous un exemple JCL où le programme MYPROG est exécuté à l’aide du fichier d’entrée MYDATA.LCDC.INPUT et produit deux fichiers de sortie écrits dans le spool.
//COBBSTEP JOB CLASS=6,NOTIFY=&SYSUID
//
//STEP10 EXEC PGM=MYPROG,PARM=ACCT5000
//STEPLIB DD DSN=MYDATA.LCDC.LOADLIB,DISP=SHR
//INPUT1 DD DSN=MYDATA.LCDC.INPUT,DISP=SHR
//OUT1 DD SYSOUT=*
//OUT2 DD SYSOUT=*
//SYSIN DD *
//CUST1 1000
//CUST2 1001
/*
Le module de chargement de MYPROG se trouve dans MYDATA.LCDC.LOADLIB.
Il est important de noter que le JCL ci-dessus ne peut être utilisé que pour un module COBOL non DB2.
Transmission de données aux programmes COBOL
L’entrée de données dans le programme batch COBOL peut se faire via des fichiers, le paramètre PARAM et l’instruction SYSIN DD.
Dans l’exemple ci-dessus :
- Les enregistrements de données sont transmis à MYPROG via le fichier MYDATA.LCDC.INPUT.
Ce fichier sera référencé dans le programme en utilisant le nom DD INPUT1.
Le fichier peut être ouvert, lu et fermé dans le programme. - Les données de paramètre PARM ACCT5000 sont reçues dans la section LINKAGE du programme MYPROG dans une variable définie dans cette section.
- Les données de l’instruction SYSIN sont reçues via l’instruction ACCEPT dans la division PROCEDURE du programme.
Chaque instruction ACCEPT lit un enregistrement entier (c’est-à-dire, CUST1 1000) dans une variable de stockage de travail définie dans le programme.
Exécution d’un programme COBOL-DB2
Pour exécuter le programme COBOL DB2, un utilitaire IBM spécialisé est utilisé dans le JCL et le programme ; La région DB2 et les paramètres requis sont transmis en entrée à l’utilitaire.
Les étapes ci-dessous sont suivies lors de l’exécution d’un programme COBOL-DB2 :
- Lorsqu’un programme COBOL-DB2 est compilé, un DBRM (Database Request Module) est créé avec le module de chargement.
Le DBRM contient les instructions SQL des programmes COBOL avec sa syntaxe vérifiée pour être correcte. - Le DBRM est lié à la région DB2 (environnement) dans laquelle le COBOL s’exécutera.
Cela peut être fait à l’aide de l’utilitaire IKJEFT01 dans un JCL. - Après l’étape de liaison, le programme COBOL-DB2 est exécuté à l’aide de IKJEFT01 (à nouveau) avec la bibliothèque de chargement et la bibliothèque DBRM comme entrée du JCL.
//STEP001 EXEC PGM=IKJEFT01
//*
//STEPLIB DD DSN=MYDATA.LCDC.DBRMLIB,DISP=SHR
//*
//input files
//output files
//SYSPRINT DD SYSOUT=*
//SYSABOUT DD SYSOUT=*
//SYSDBOUT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//DISPLAY DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(SSID)
RUN PROGRAM(MYCOBB) PLAN(PLANNOM) PARM(paramètres du programme cobol) -
LIB('MYDATA.LCDC.LOADLIB')
END
/*
Dans l’exemple ci-dessus, MYCOBB est le programme COBOL-DB2 exécuté à l’aide de IKJEFT01. Veuillez noter que le nom du programme, l’ID du sous-système DB2 (SSID) et le nom du plan DB2 sont transmis dans l’instruction SYSTSIN DD. La bibliothèque DBRM est spécifiée dans la STEPLIB.