1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| /*************************** REXX **********************************/
/* Permet de lancer une serie de JCL */
/*********************************************************************/
/* Liste des JCLs ( à saisir ) */
JCL.0 = 2 /* Nombre de JCL à exécuter */
JCL.1 = 'USER.PDS.JCL.INTEGRAT(JCLA)' /* Premier JCL à exécuter */
JCL.2 = 'USER.PDS.JCL.INTEGRAT(JCLB)' /* Second JCL à exécuter */
/* Fichier de travail et bib REXX ( à customiser ) */
Travail = 'USER.PDS.JCL.INTEGRAT(ZZENCHAI)' /* Fichier de travail */
BibPROC = 'USER.PDS.JCL.INTEGRAT' /* Bibliothèque REXX */
PARSE ARG N0_JCL
If N0_JCL = '' then do /* Première exécution du REXX */
say '<ENTREE> pour enclencher le processus ' ; N0_JCL = 0 ; end
N0_JCL = N0_JCL + 1
if N0_JCL > JCL.0 then exit /* Si plus de JCL à passer, on arrete là */
queue "//BOUCLE EXEC PGM=IKJEFT01, "
queue "// PARM='$LANCE " N0_JCL "'"
queue "//SYSOUT DD SYSOUT=* "
queue "//SYSTSPRT DD SYSOUT=* "
queue "//SYSTSIN DD DUMMY "
queue "//SYSPROC DD DISP=SHR,DSN="BibPROC
if bpxwdyn("alloc fi(trav) da('"Travail"') shr") <> 0 then
do ; say 'Pb Alloc sur ' Travail ; exit ; end
"execio * diskw trav (fini"
ret = bpxwdyn("free dd(trav)")
/* On lance le JCL suivant qui soumet un second JOB constitué du JCL */
/* sélectionné auquel on ajoute l'étape de rappel du REXX (ci-dessus)*/
queue "//"USERID()"L JOB (TSO,E),LANCE,MSGCLASS=m,CLASS=c "
queue "//INTRDRS1 EXEC PGM=IEBGENER "
queue "//SYSUT1 DD DISP=SHR,DSN="JCL.N0_JCL
queue "// DD DISP=SHR,DSN="Travail
queue "//SYSUT2 DD SYSOUT=(,INTRDR) "
queue "//SYSPRINT DD SYSOUT=* "
queue "//SYSIN DD DUMMY "
queue "$$ "
"SUBMIT * END($$)"
Return |
Partager