从文件中设置IEBGENER中的PATH

时间:2017-09-15 10:56:39

标签: mainframe jcl

我正在尝试从文件中在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.

任何想法都非常感激!

1 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是将SYSUT2 DD语句写入单独的PDS或PDSE中的成员,然后INCLUDE IEBGENER步骤中的成员。必须在JCLLIB语句中指定单独的PDS或PDSE。

您还可以运行BPXBATCH并使用cp代替IEBGENER来复制您的数据。

如果您安装了Dovetail Technologies Co:Z工具包,fromdsn可能就是您要找的。