JCL – Remplacement de données

Dans un JCL standardisé, le programme à exécuter et ses jeux de données associés sont placés dans une procédure cataloguée, qui est appelée dans le JCL.
Habituellement, à des fins de test ou pour résoudre un incident, il peut être nécessaire d’utiliser des ensembles de données différents de ceux spécifiés dans la procédure cataloguée.
Dans ce cas, le jeu de données de la procédure peut être remplacé dans le JCL.

//JCLINST JOB 1,CLASS=6,MSGCLASS=Y,NOTIFY=&SYSUID
//*
//JSTEP1    EXEC CATLPROC,PROG=CATPRC1,DSNME=MYDATA.URMI.INPUT
//          DATAC=MYDATA.BASE.LIB1(DATA1)
//STEP1.IN1 DD DSN=MYDATA.OVER.INPUT,DISP=SHR
//*
//* La procédure cataloguée est la suivante:
//*
//CATLPROC PROC PROG=,BASELB=MYCOBOL.BASE.LIB1
//*
//STEP1     EXEC PGM=&PROG
//STEPLIB   DD DSN=&BASELB,DISP=SHR
//IN1       DD DSN=MYDATA.URMI.INPUT,DISP=SHR
//OUT1      DD SYSOUT=*
//SYSOUT    DD SYSOUT=*
//SYSIN     DD MYDATA.BASE.LIB1(DATA1),DISP=SHR
//*
//STEP2     EXEC PGM=SORT

Dans l’exemple ci-dessus, le jeu de données IN1 utilise le fichier MYDATA.URMI.INPUT dans le PROC, qui est remplacé dans le JCL.
Par conséquent, le fichier d’entrée utilisé lors de l’exécution est MYDATA.OVER.INPUT.
Veuillez noter que le jeu de données est appelé STEP1.IN1. S’il n’y a qu’une seule étape dans le JCL/PROC, l’ensemble de données peut être référencé uniquement avec le nom DD.
De même, s’il existe plusieurs steps dans le JCL, l’ensemble de données doit être remplacé en tant que JSTEP1.STEP1.IN1.

//EXINST  JOB 1,CLASS=6,MSGCLASS=Y,NOTIFY=&SYSUID
//*
//STEP      EXEC CATLPROC,PROG=CATPRC1,DSNME=MYDATA.URMI.INPUT
//          DATAC=MYDATA.BASE.LIB1(DATA1)
//STEP1.IN1 DD DSN=MYDATA.OVER.INPUT,DISP=SHR
//          DD DUMMY
//          DD DUMMY
//*

Dans l’exemple ci-dessus, sur les trois jeux de données concaténés dans IN1, le premier est remplacé dans le JCL et le reste est conservé tel qu’il est présent dans PROC.