我正在尝试从文件中在JCL的IEBGENER步骤中设置PATH参数。但我似乎无法让它发挥作用。
这是原始步骤,它运作得很好,看起来像:
//COPY EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSUT1 DD *
Some text
//SYSUT2 DD PATH='/local/Folder1/File1',
// PATHDISP=(KEEP,KEEP),
// PATHOPTS=(OWRONLY,OCREAT,OEXCL),
// PATHMODE=(SIRUSR,SIWUSR)
我想要做的是从一个先前步骤中写入的文件中设置SYSUT2中的PATH参数。像这样:
BROWSE TEST.FILE1 Line 0000000000 Col 001 080
Command ===> Scroll ===> CSR
********************************* Top of Data **********************************
TPATH='/local/Folder1/File1'
******************************** Bottom of Data ********************************
//SETPATH SET DSN=TEST.FILE1,DISP=SHR
//*
//COPY EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSUT1 DD *
Some text
//SYSUT2 DD PATH='&TPATH',
// PATHDISP=(KEEP,KEEP),
// PATHOPTS=(OWRONLY,OCREAT,OEXCL),
// PATHMODE=(SIRUSR,SIWUSR)
这当然抱怨JCL中没有变量TPATH,这在逻辑上是有意义的,因为它在JCL中找不到变量名。 还尝试将整个SYSUT2放在一个单独的文件中,但没有成功。
“足够好”的折衷方案是将文件前缀与日期和时间参数连接起来,但只有在通过调度程序(使用OPCSCAN或类似工具)运行作业时才能在生产中使用。不是在我自己提交工作的测试中,还是在没有调度程序的情况下可以做到这一点?
'/local/Folder1/File' & iDate & iTime -- You get the point.
任何想法都非常感激!
答案 0 :(得分:0)
执行此操作的一种方法是将SYSUT2
DD
语句写入单独的PDS或PDSE中的成员,然后INCLUDE
IEBGENER
步骤中的成员。必须在JCLLIB
语句中指定单独的PDS或PDSE。
您还可以运行BPXBATCH
并使用cp
代替IEBGENER
来复制您的数据。
如果您安装了Dovetail Technologies Co:Z工具包,fromdsn
可能就是您要找的。 p>