在JCL中与DD名称一起指定的物理DSN名称是在ZOS中处理文件的常用方法。在JCL中指定环境变量
但我们也可以在FILE CONTROL中指定一个变量DD名称,并使用SETENV在程序中设置DSN。 例如How to set environment variables and dynamic file declaration
有什么办法可以使用JCL设置环境变量并使用GETENV访问程序中的外部变量(类似于Linux中的EXPORT或者Windows中的SET)?
在JCL中与DD名称一起指定的物理DSN名称是在ZOS中处理文件的常用方法。在JCL中指定环境变量
但我们也可以在FILE CONTROL中指定一个变量DD名称,并使用SETENV在程序中设置DSN。 例如How to set environment variables and dynamic file declaration
有什么办法可以使用JCL设置环境变量并使用GETENV访问程序中的外部变量(类似于Linux中的EXPORT或者Windows中的SET)?
您可以使用_CEE_ENVFILE环境变量为设置环境变量指定DD或数据集名称。我假设使用C LE运行时功能的GETENV和使用SETENV一样简单。
PARM=('ENVAR("_CEE_ENVFILE=DD:STDENV")/')
可以使用CEEGTJS语言环境(LE)可调用服务来检索EXPORT版JCL符号的值。
我建议任何在z/OS上编程的人都熟悉Language Environment (LE) Callable Services。 LE Callable Services是z/OS的一部分,适用于用C,C++,COBOL,PL/I和汇编语言编写的所有应用程序,受documented restrictions的约束。
我使用的Zos版本太旧了,所以这个解决方案不适合我。谢谢。 – cobp
如果你问我认为你在问什么,那么不会。如果你不问我认为你在问什么,那么请澄清这个问题。请记住,你知道你的意思,我们只知道你能否描述准确。我认为你问的是“我可以使用SETENV(或其他)更改JCL符号。如果**是你的问题,答案是否定的。整个JCL流是”转换/解释“(CI)作为准备处理的一部分,而不是处理的一部分,当你的JOB开始的时候,JCL不再存在了,所以你不能改变它的任何东西 –
这是一个错字,我的意思是GETENV在程序中的使用, – cobp
啊,所以你的问题是,我可以使用GETENV来获得JCL符号的解析值到我的程序中,而不是已经讨论过的PARM?我们可以得到一些更详细的问题,包括使用GETENV会给你一个特殊的方法吗? –