On Thu, 30 Oct 2008 19:27:02 -0400, Farley, Peter x23353 <[EMAIL PROTECTED]> wrote:
>PMFJI here, but you're trying to override a DD that is part of a step >defined by an "inner" PROC, that is, a step that is inside of a PROC >that is called from inside of an "outer" PROC. In this case, your >"outer" PROC is FFND05 and the "inner" PROC is DLIBATCH. > >That is strictly prohibited by current JCL rules, I suspect because then >they would have had to allow override DD names in a format like >"stepname.procstepname.ddname" which they were not prepared to support. >In your case, what you are really trying to override is >"FFND05.DLI.FFMOTBL", but that is not allowed. > >IOW, you cannot override/add/DUMMY or any other normal JCL DD operation >on anything inside of an "inner" PROC, except with symbolic parameters. >AFAIK, no external DD overrides or EXEC overrides (REGION.stepname, >etc.) are permitted for the steps inside of an "inner" PROC. This all agrees with what I have read. Unfortunately it does not agree with what I want! :-) I wonder why the restriction exists. It seems to me that something like FFND05.DLI.FFMOTBL would be perfect! Or perhaps DLIBATCH.DLI.FFMOTBL; in other words "procname.procstepname.ddname". Ah well, I'm probably not going to win over 40 years of history... >If you make the DSN on the FFMOTBL DD inside of the FFND05 PROC into a >symbolic variable, then you could override that variable when you invoke >FFND05. That might be your simplest solution given the current JCL >restrictions. Hmm, that is a thought. Thanks! I was discussing this with a co-worker who came to us with z/OS experience, but he'd never tried nested procs. We may try your solution, but here's another one we thought of: //FFND05 JOB CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID //PROCLIBS JCLLIB ORDER=(FJS.PDSE.PROC) //JOBLIBS INCLUDE MEMBER=JOBLIBS //*------------------------------------------------- //FFND05 PROC // SET DLIPGM=FFND05 // SET DLIPSB=FFUNDGO // INCLUDE MEMBER=EXECDLI //FFUNDDB DD DSNAME=FJS.FFND.IMS.FFUNDDB,DISP=SHR //FFUNDIN DD DSNAME=FJS.FFND.IMS.FFUNDIN,DISP=SHR //FFMOTBL DD DSNAME=FJS.FFND.FFMOTBL,DISP=SHR //DRPT DD SYSOUT=* //MRPT DD SYSOUT=* // PEND //*------------------------------------------------- // EXEC PROC=FFND05 //FFMOTBL DD DSNAME=FJS.FFND.COPY.FFMOTBL,DISP=SHR // With FJS.PDSE.PROC(EXECDLI) being the following: // SET DBRC=N //DLI EXEC PGM=DFSRRC00, // PARM=(DBB,&DLIPGM,&DLIPSB,,,,,,,,,,,&DBRC) //IMSACB DD DISP=SHR,DSN=&SYSUID..IMS.ACBLIB // DD DISP=SHR,DSN=SYS4.IMS.ACBLIB //IEFRDER DD DUMMY //SYSUOUT DD SYSOUT=* //DFSVSAMP DD DISP=SHR,DSN=FJS.PDSE.CNTL(VSAMBUF) Kind of a "pseudo" proc. Seems to do pretty much everything I want. I'm sure I'll find some flaws later, but... :-) >YMMV, but I always try to make just about everything in my PROC's into a >symbolic variable with a sensible default value so that I don't have to >provide DD overrides at all, just symbolic variable overrides. I don't >always succeed, but I do try. Sounds like a good standard. I will take it under advisement. :-) Thanks! Frank ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html

