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 [email protected] with the message: INFO IBM-MAIN