The syntax using stepname (not procstep name) is used because there is no nested procedure in that refer back. By that I mean, the reference is not to a DD within a proc invoked by the procedure. That is how I've always viewed it. I reread the JCL manual concerning backward references and it does not make that clear. But it does say
*.stepname.ddname Asks the system to copy the data set name from DD statement, ddname, in an earlier step, stepname, in the same job. *.stepname.procstepname.ddname Asks the system to copy the data set name from a DD statement in a cataloged or in-stream procedure. Stepname is the name of this job step or an earlier job step that calls the procedure, procstepname is the name of the procedure step that contains the DD statement, and ddname is the name of the DD statement. >From which I imply that if you invoke a proc and want to refer to/override a >DD in that proc, you need to add procstep name to your reference, else its any >DD in the same job. JCL in the job that invokes the proc would need procstep >name. JCL within the proc would not. How many levels of nesting would that >remain true? I suspect just the one. I did not have much success having a >proc invoke a proc and try to override, in Job JCL or within the first proc, >DD statements in the nested proc. Cliff ________________________________ >The proc author probably wouldn't do in that manner. Look at excerpt below, >notice how LKED SYSLIN is referencing a dsn from a previous step? >------------------------------------------------------------------------ >SYS1.PROCLIB(IBMZCPLG) - 01.01 Columns 0000 > ===> Scroll == >//********************************************************************* >//* PRE-LINK-EDIT STEP >//********************************************************************* >//PLKED EXEC PGM=EDCPRLK,COND=(8,LT,PLI) >// ... >//SYSMOD DD DSN=&&PLNK,DISP=(,PASS),UNIT=SYSALLDA,SPACE=(CYL,(1,1)), >// DCB=(RECFM=FB,LRECL=80,BLKSIZE=&SYSLBLK) >//********************************************************************* >//* LINK-EDIT STEP >//********************************************************************* >//LKED EXEC PGM=IEWL,PARM='XREF',COND=((8,LT,PLI),(8,LE,PLKED)) >// ... >//SYSLIN DD DSN=*.PLKED.SYSMOD,DISP=(OLD,DELETE) > Suppose the end user calls this with: //FOOBAR EXEC PROC=IBMZXPLG,... Doesn't the referback need to cite the job step, as in: //SYSLIN DD DSN=*.FOOBAR.PLKED.SYSMOD,DISP=(OLD,DELETE) ... but the author of the PROC can't know a priori the callers jobstep name. -- gil ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN