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

Reply via email to