It appears that I cannot set a z/VSE variable with “Address JCL ‘SETPARM variable=value’” without the result being upper-cased. Although you can from JCL.
Is that your experience as well?
// JOB FRTEST
// EXEC LIBR,SIZE=AUTO
ACCESS S=AISYS.PROCTEST
CATALOG TESTREXX.PROC REP=Y EOD=/+ DATA=Y
Trace O
Address JCL "// SETPARM TESTIT='Mixed case variable'"
Exit
/+
/*
// SETPARM TESTIT=''
// LIBDEF PROC,SEARCH=AISYS.PROCTEST
// EXEC REXX=TESTREXX,TESTIT
/*
// EXEC SYWTO,PARM='TESTIT=&TESTIT'
/*
Result:
BG 0000 // JOB FRTEST
DATE 08/09/2016, CLOCK 07/44/17
BG 0000 TESTIT=MIXED CASE VARIABLE
BG 0000 EOJ FRTEST MAX.RETURN CODE=0000
DATE 08/09/2016, CLOCK 07/44/18, DURATION 00/00/00
Some other method of setting a z/VSE variable from REXX and respecting the case?
Frank M. Ramaekers Jr. | Systems Programmer | Information Technology | American Income Life Insurance | 254-761-6649
Frank,
Same behaviour here (5.1.1 + PTFs). Seems like a bug?
Another way of passing JCL-statements from within REXX is by using the "queue" function: any data left on the stack at end-of-program will be passed as JCL commands, and apparently without any uppercase translation.
When all data on the stack has been processed, REXX finishes and the job continues. Not the most elegant way of doing things though.
// EXEC LIBR,SIZE=AUTO
ACCESS S=AISYS.PROCTEST
CATALOG TESTREXX.PROC REP=Y EOD=/+ DATA=Y
Trace O
queue "// SETPARM TESTIT='Mixed case variable'"
Exit
/+
/*
Bye,
Geert.