Hey Gil. I changed to //SYSIN DD *,SYMBOLS=(EXECSYS,SYSPRINT) and the log showed the PROC variables in the SYSIN data NOT being substituted.
----------------------------------------------------------------------------------------------------- If I only code the &DSN & &VOL parameters in the SYSIN data, JES complains with IEFC657I messages because I didn't use the parms to the PROC: 3 //RECATL PROC DSN=,VOL= //EX1 EXPORT SYMLIST=* //RECTIDX EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=L //SYSIN DD *,SYMBOLS=(EXECSYS,SYSPRINT) // PEND //* 4 //R1 EXEC RECATL,DSN=WRL1.LINEAR,VOL=MACK07 5 ++RECATL PROC DSN=,VOL= 6 ++EX1 EXPORT SYMLIST=* 7 ++RECTIDX EXEC PGM=IDCAMS 8 ++SYSPRINT DD SYSOUT=L 9 ++SYSIN DD *,SYMBOLS=(EXECSYS,SYSPRINT) STMT NO. MESSAGE 4 IEFC001I PROCEDURE RECATL WAS EXPANDED USING INSTREAM PROCEDURE DEFINITION 4 IEFC657I THE SYMBOL DSN WAS NOT USED 4 IEFC657I THE SYMBOL VOL WAS NOT USED ----------------------------------------------------------------------------------------------------- If I add dummy SET statements to get around the IEFC657I messages, but use the same symbol names in the SYSIN data as the PROC uses, SYSIN doesn't get changed: //RECATL PROC DSN=,VOL= //EX1 EXPORT SYMLIST=* // SET DS=&DSN // SET VL=&VOL //RECTIDX EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=L //SYSIN DD *,SYMBOLS=(EXECSYS,SYSPRINT) DEFINE CLUSTER(NAME(&DSN) - RECATALOG LINEAR VOL(&VOL)) - DATA(NAME(&DSN..DATA)) // PEND //* //R1 EXEC RECATL,DSN=WRL1.LINEAR,VOL=MACK07 SYSIN : RECORD 1 BEFORE SUBSTITUTION SYSIN : DEFINE CLUSTER(NAME(&DSN) - SYSIN : RECORD 1 AFTER SUBSTITUTION DEFINE CLUSTER(NAME(&DSN) - SYSIN : DEFINE CLUSTER(NAME(&DSN) - SYSIN : RECORD 2 BEFORE SUBSTITUTION SYSIN : RECATALOG LINEAR VOL(&VOL)) - SYSIN : RECORD 2 AFTER SUBSTITUTION SYSIN : RECATALOG LINEAR VOL(&VOL)) - SYSIN : RECORD 3 BEFORE SUBSTITUTION SYSIN : DATA(NAME(&DSN..DATA)) SYSIN : RECORD 3 AFTER SUBSTITUTION IDC3203I ITEM '&DSN' DOES NOT ADHERE TO RESTRICTIONS RECATALOG LINEAR VOL(&VOL)) - DATA(NAME(&DSN..DATA)) IDC3202I ABOVE TEXT BYPASSED UNTIL NEXT COMMAND. CONDITION CODE IS 12 IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 12 SYSIN : DATA(NAME(&DSN..DATA)) ----------------------------------------------------------------------------------------------------- If I rename the PROC variables using SET statements, and then use the SET names in SYSIN, it works: //RECATL PROC DSN=,VOL=MACK07 //EX1 EXPORT SYMLIST=* // SET DS=&DSN // SET VL=&VOL //RECTIDX EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=L //SYSIN DD *,SYMBOLS=(EXECSYS,SYSPRINT) DEFINE CLUSTER(NAME(&DS) - RECATALOG LINEAR VOL(&VL)) - DATA(NAME(&DS..DATA)) // PEND //* //R1 EXEC RECATL,DSN=WRL1.LINEAR,VOL=MACK07 SYSIN : RECORD 1 BEFORE SUBSTITUTION SYSIN : DEFINE CLUSTER(NAME(&DS) - SYSIN : RECORD 1 AFTER SUBSTITUTION SYSIN : DEFINE CLUSTER(NAME(WRL1.LINEAR) - SYSIN : RECORD 2 BEFORE SUBSTITUTION SYSIN : RECATALOG LINEAR VOL(&VL)) - SYSIN : RECORD 2 AFTER SUBSTITUTION SYSIN : RECATALOG LINEAR VOL(MACK07)) - SYSIN : RECORD 3 BEFORE SUBSTITUTION SYSIN : DATA(NAME(&DS..DATA)) SYSIN : RECORD 3 AFTER SUBSTITUTION DEFINE CLUSTER(NAME(WRL1.LINEAR) - RECATALOG LINEAR VOL(MACK07)) - DATA(NAME(WRL1.LINEAR.DATA)) IDC3013I DUPLICATE DATA SET NAME IDC3009I ** VSAM CATALOG RETURN CODE IS 8 - REASON CODE IS IGG0CLEH-38 IDC3003I FUNCTION TERMINATED. CONDITION CODE IS 12 IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 12 SYSIN : DATA(NAME(WRL1.LINEAR.DATA)) (The dataset was fine before I started, so IDCAMS fails rc 12. But the variables in the SYSIN data were substituted correctly.) ----------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN