We have a requirement to replace an old way way of handling symbolic parm. So far, client used a DPSS subsystem to replace/handle the external parms passed from the JCL. Have a look in to the calling JCL and proc
JCL
//TERM EXEC DB2CMD,
// CMD=' -TERM UTILITY (AI.AIZ040)'
//*
// CMD=' -TERM UTILITY (AI.AIZ040)'
//*
proc
***************************** Top of Data ***************
//DB2CMD PROC SOUT='*',RGN=0M,
// CMD=,CMD2='END',CMD3='END',CMD4='END',SSN=' '
//DB2SYS INCLUDE MEMBER=$DB2SYS&SSN
//TMP EXEC PGM=IKJEFT01,DYNAMNBR=200,REGION=&RGN
//SYSTSIN DD SUBSYS=(DPSS,'CARD(DSN ',
// 'SYSTEM(&$DB2SYS) #',
// '&CMD #',
// '&CMD2 #',
// '&CMD3 #',
// '&CMD4 #',
// 'END )')
//SYSTSPRT DD SYSOUT=&SOUT
//SYSPRINT DD SYSOUT=&SOUT
//SYSIN DD DUMMY
//ENQUEUE DD DSN=&$DB2SYS..DB2CATLG.ENQUEUE,DISP=SHR
**************************** Bottom of Data *************
//DB2CMD PROC SOUT='*',RGN=0M,
// CMD=,CMD2='END',CMD3='END',CMD4='END',SSN=' '
//DB2SYS INCLUDE MEMBER=$DB2SYS&SSN
//TMP EXEC PGM=IKJEFT01,DYNAMNBR=200,REGION=&RGN
//SYSTSIN DD SUBSYS=(DPSS,'CARD(DSN ',
// 'SYSTEM(&$DB2SYS) #',
// '&CMD #',
// '&CMD2 #',
// '&CMD3 #',
// '&CMD4 #',
// 'END )')
//SYSTSPRT DD SYSOUT=&SOUT
//SYSPRINT DD SYSOUT=&SOUT
//SYSIN DD DUMMY
//ENQUEUE DD DSN=&$DB2SYS..DB2CATLG.ENQUEUE,DISP=SHR
**************************** Bottom of Data *************
This proc has been called by many JCL's.
Now, the clients is trying to get rid of that DPSS stuff altogether and want to use symbolic parm instead. I tried to use SET statement but it is truncating the values. fro example, CMD is getting value as -TERM instead of full statement i.e. -TERM UTILITY (AI.AIZ040)
I know that we can add a rexx pgm at the begining of the proc to resolve the passed values. But, I want to know if it is possible to resolve the issue without adding any additional step in the proc.
Experts, please suggest if this is possible.