Frank, If you want a private PDS/Copybook to precede your production COBOL copy book PDS and have it unique to each user, how about this -
//syslib dd dsn=&sysuid..pvtcobol.copylib // dd dsn=appl.prod.copylib HITACHI DATA SYSTEMS Raymond E. Noal Senior Technical Engineer Office: (408) 970 - 7978 -----Original Message----- From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On Behalf Of Frank Swarbrick Sent: Monday, November 10, 2008 3:19 PM To: IBM-MAIN@BAMA.UA.EDU Subject: procs and concatenations I have a question that is going to keep bugging me until I ask it, even though I'm fairly certain I will not be happy with the answer... The following is the system supplied Cobol compile procedure, IGYWC: //IGYWC PROC LNGPRFX='IGY.V3R3M0',SYSLBLK=3200 //COBOL EXEC PGM=IGYCRCTL,REGION=2048K //STEPLIB DD DSNAME=&LNGPRFX..SIGYCOMP, // DISP=SHR //SYSPRINT DD SYSOUT=* //SYSLIN DD DSNAME=&&LOADSET,UNIT=SYSALLDA, // DISP=(MOD,PASS),SPACE=(TRK,(3,3)), // DCB=(BLKSIZE=&SYSLBLK) //SYSUT1 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSUT2 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSUT4 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSUT5 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSUT6 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSUT7 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) This can be executed with something like the following: //FJS1 JOB CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID // JCLLIB ORDER=(IGY.SIGYPROC) //*----------------------------------------------- //COMPILE EXEC PROC=IGYWC,LNGPRFX=IGY //COBOL.SYSIN DD DISP=SHR,DSN=FJS.PDSE.COBOL(OBJ1) //COBOL.SYSLIB DD DISP=SHR,DSN=FJS.PDSE.COBOL // DD DISP=SHR,DSN=APPL.PROD.COPYLIB Specifically, I am compiling Cobol source found in FJS.PDSE.COBOL(OBJ1) and including copybooks that are found in either FJS.PDSE.COBOL or APPL.PROD.COPYLIB. In this case APPL.PROD.COPYLIB is the production copylib and FJS.PDSE.COBOL contains my private source code (including copybooks). If I wanted to compile without my private library I obviously would just have //COBOL.SYSLIB DD DISP=SHR,DSN=APPL.PROD.COPYLIB in place of the two PDS's specified in the first example. What I would like, but cannot seem to figure out how to accomplish, is to have a DD for APPL.PROD.COPYLIB in the actual proc, and allow a developer to, if desired, add just their own private library statements in their JCL. There appears to be no way to do this. If the JCL just has //COBOL.SYSLIB DD DISP=SHR,DSN=FJS.PDSE.COBOL then APPL.PROD.COPYLIB is no longer included in the concatenation. Obviously I could have APPL.PROD.COPYLIB in the proc and just have the calling JCL concatenate both libraries explicitly. But this seems to me to defeat the reason for having the SYSLIB specified in the proc; since you have to override it when including another library. The way we've gotten around it so far is to have something like this in the proc: //SYSLIB DD DSN=&CLIB1,DISP=SHR // DD DSN=&CLIB2,DISP=SHR // DD DSN=&CLIB3,DISP=SHR // DD DSN=&CLIB4,DISP=SHR // DD DSN=&CLIB5,DISP=SHR // DD DSN=&CLIB6,DISP=SHR and have the PROC step changed like this: //IGYWC PROC LNGPRFX='IGY.V3R3M0',SYSLBLK=3200, // CLIB1='APPL.PROD.COPYLIB', // CLIB2='APPL.PROD.COPYLIB', // CLIB3='APPL.PROD.COPYLIB', // CLIB4='APPL.PROD.COPYLIB', // CLIB5='APPL.PROD.COPYLIB' And the JCL to execute the proc would be this: //COMPILE EXEC PROC=IGYWC,LNGPRFX=IGY, // CLIB1='FJS.PDSE.COBOL' This works, but: - It requires you know ahead of time (when building the PROC) the maximum number of copylibs that will ever be used. - It seems silly to have to include the same library over and over. I have a similar issue with the link (bind) step. I always want to concatenate the SCEELKED library and our PROD load library. And optionally one or more developer libraries. Or possibly an IMS library and/or a CICS library. Thanks for any thoughts, Frank -- Frank Swarbrick Senior Systems Analyst - Mainframe Applications FirstBank Data Corporation Lakewood, CO USA ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- 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