Now how is *this* one for interesting:

//COBOL     PROC COBOPT=                                 
//COB       EXEC PGM=IGYCRCTL,REGION=4096K,PARM='&COBOPT'
//SYSIN     DD DISP=SHR,DSN=FJS.PDSE.COBOL(&MEMBER)      
//SYSPRINT  DD SYSOUT=*                                  
//          INCLUDE MEMBER=COBWORK                       
//SYSLIN    DD DSN=&&OBJECT,DISP=(NEW,PASS,DELETE),      
//            SPACE=(400,(100,50))                       
//SYSLIB    DD DISP=SHR,DSN=FJS.DUMMY.COBOL              
//          DD DISP=SHR,DSN=FJS.DUMMY.COBOL              
//          DD DISP=SHR,DSN=FJS.DUMMY.COBOL              
//          DD DISP=SHR,DSN=FJS.DUMMY.COBOL              
//          DD DISP=SHR,DSN=FJS.DUMMY.COBOL              
//          DD DISP=SHR,DSN=FJS.DUMMY.COBOL              
//          DD DISP=SHR,DSN=FJS.DUMMY.COBOL              
//          DD DISP=SHR,DSN=APPL.PROD.COPYLIB            
//          PEND                                         

//          SET MEMBER=OBJ1               
//STEP01    EXEC COBOL                    
//SYSLIB    DD DISP=SHR,DSN=FJS.PDSE.COBOL
//          DD DISP=SHR,DSN=FJS.TEST.COBOL

This actually does pretty much what I want!  The two DD's in the calling JCL 
override the first two DD's in the proc.  But the rest remain!  I just assumed 
that if you do any override, it overrides the entire DD concatenation.  But 
that 
appears not to be true.  Take a look:

20 ++SYSLIN    DD DSN=&&OBJECT,DISP=(NEW,PASS,DELETE),
   ++            SPACE=(400,(100,50))                 
21 //SYSLIB    DD DISP=SHR,DSN=FJS.PDSE.COBOL         
   +/SYSLIB    DD DISP=SHR,DSN=FJS.DUMMY.COBOL        
22 //          DD DISP=SHR,DSN=FJS.TEST.COBOL         
   +/          DD DISP=SHR,DSN=FJS.DUMMY.COBOL        
23 ++          DD DISP=SHR,DSN=FJS.DUMMY.COBOL        
24 ++          DD DISP=SHR,DSN=FJS.DUMMY.COBOL        
25 ++          DD DISP=SHR,DSN=FJS.DUMMY.COBOL        
26 ++          DD DISP=SHR,DSN=FJS.DUMMY.COBOL        
27 ++          DD DISP=SHR,DSN=FJS.DUMMY.COBOL        
28 ++          DD DISP=SHR,DSN=APPL.PROD.COPYLIB      

IGD106I SYS08318.T103641.RA000.COBOBJ.OBJECT.H01     PASSED,    
DDNAME=SYSLIN
IGD104I FJS.PDSE.COBOL                               RETAINED,  DDNAME=SYSLIB
IGD104I FJS.TEST.COBOL                               RETAINED,  DDNAME=      
IGD104I FJS.DUMMY.COBOL                              RETAINED,  DDNAME=      
IGD104I FJS.DUMMY.COBOL                              RETAINED,  DDNAME=      
IGD104I FJS.DUMMY.COBOL                              RETAINED,  DDNAME=      
IGD104I FJS.DUMMY.COBOL                              RETAINED,  DDNAME=      
IGD104I FJS.DUMMY.COBOL                              RETAINED,  DDNAME=      
IGD104I APPL.PROD.COPYLIB                            RETAINED,  DDNAME=      

Still requires that you know the maximum number of "optional" concatenations, 
but it's the best I've seen yet.

Thanks to Arnold Trembley for the idea.

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