All,
I'm sure I'm doing something boneheaded but can't quite figure out what. I
have a list of fully qualified datasets in a file that I want to read the
dataset names once per record and then once I've read the record with dataset
name then use that name in a LISTDSI command. When I hard code name in REXX
exec it works fine - when I read dsname from file it fails. I've hardcoded the
enclosing double quote/quote inside my file as follows:
"'SYS1.PARMLIB'"
When it fails (2nd version) I get this error message:
IKJ56712I INVALID KEYWORD, "'SYS1.PARMLIB'"
Two scenarios:
Works Fine:
/* REXX */
/*------------------------------------------------------------------*/
/* S E L E C T D S N S & L I S T I N F O */
/*------------------------------------------------------------------*/
DSName = "'SYS1.PARMLIB'"
Say DSName
x = LISTDSI(DSName)
SAY 'Function code from LISTDSI is: ' x
SAY 'The data set name is: ' sysdsname
SAY 'The device unit on which the volume resides is:' sysunit
SAY 'The record format is: ' sysrecfm
SAY 'The logical record length is: ' syslrecl
SAY 'The block size is: ' sysblksize
SAY 'The allocation in space units is: ' sysalloc
EXIT
Failing Version:
/* REXX */
INDSN = "'P69792.LISTDSI.INPUT'"
OUTDSN = "'P69792.LISTDSI.OUTPUT.CSV'"
DDNI = "DD"||RANDOM(1,99999)
DDNO = "DD"||RANDOM(1,99999)
/*------------------------------------------------------------------*/
/* R E A D D S N L I S T */
/*------------------------------------------------------------------*/
ADDRESS TSO "ALLOC DA(" INDSN ") DDNAME( " DDNI ") SHR REUSE "
ADDRESS TSO "ALLOC DA(" OUTDSN ") DDNAME( " DDNO ") OLD REUSE "
ADDRESS TSO "EXECIO * DISKR " DDNI "(STEM Dsni. FINIS"
ADDRESS TSO "FREE DDNAME(" DDNI ") "
/*------------------------------------------------------------------*/
/* S E L E C T D S N S & L I S T I N F O */
/*------------------------------------------------------------------*/
Trace i
DO I = 1 TO Dsni.0
dsn = Word(Dsni.I,1)
Say dsn
x = LISTDSI(dsn)
SAY 'Function code from LISTDSI is: ' x
SAY 'The data set name is: ' sysdsname
SAY 'The device unit on which the volume resides is:' sysunit
SAY 'The record format is: ' sysrecfm
SAY 'The logical record length is: ' syslrecl
SAY 'The block size is: ' sysblksize
SAY 'The allocation in space units is: ' sysalloc
END I
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN