能否用符号参数在JCL的SYSIN DD流数据中引用PROC参数值?
如何让JCL PROC的ENV参数在STDENV流数据中生效
结论:你完全可以通过传递PROC参数的方式让
ENV='TEST'在STDENV中生效,且无需额外的EXPORT SYMLIST=*操作。具体实现步骤:
你的PROC定义已经正确配置了参数与符号解析规则:
//JOBNAME PROC PARMS='XXXXX --clean' , ENV='DEV' //STDENV DD *,SYMBOLS=JCLONLY <-- 标记解析流数据中的JCL符号 ENVIRONMENT=&ENV //* // PEND //其中
SYMBOLS=JCLONLY已告知系统解析流数据内的JCL符号,&ENV对应PROC定义的参数。调用PROC时直接指定ENV参数值即可:
//USERJOB JOB (ACCT),'TEST JOB',CLASS=A //EXECSTEP EXEC JOBNAME, ENV='TEST'
原理说明:
PROC的参数属于JCL级符号,当JCL解析器展开PROC时,会自动将你传递的ENV='TEST'替换到所有引用&ENV的位置,包括STDENV的流数据。展开后STDENV的内容会变为:ENVIRONMENT=TEST拓展场景:如果需要通过SET语句统一管理符号,也可以这样写:
//USERJOB JOB (ACCT),'TEST JOB',CLASS=A // SET ENV='TEST' //EXECSTEP EXEC JOBNAME, ENV=&ENV这种方式同样能让
&ENV被解析为TEST并传递到PROC中生效。
内容的提问来源于stack exchange,提问作者Sagar506005
相关产品推荐
相关产品推荐

