2017-09-15 52 views
0

我试图从文件中设置JCL中IEBGENER步骤中的PATH参数。但我似乎无法让它工作。在文件中设置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) 

这当然会抱怨没有变量TPATH在JCL,这在逻辑上是有道理的,因为它无法找到在JCL变量名。 也尝试将整个SYSUT2放在单独的文件中,但没有成功。

一个“足够好”的妥协方案是将文件前缀与日期和时间参数连接起来,但只有在通过调度程序(使用OPCSCAN或类似方法)运行作业时才能在生产中使用。不是在我自己提交工作的测试中,还是可以在没有计划任务的情况下完成工作?

'/local/Folder1/File' & iDate & iTime -- You get the point. 

任何想法非常感谢!要做到这一点

+0

如果日期/时间足够,JCL中有日期/时间符号,例如'&YYMMDD'。他们是动态的,但他们的价值是在工作入境处理的特定时间设定的。如果涉及的不止这些,最好的方法是通过动态分配的脚本(REXX,shell等)。 Co:Z也是一个很好的解决方案。 – zarchasmpgmr

回答

0

一种方式是写SYSUT2DD声明的成员在一个单独的PDS或PDSE,在你的IEBGENER步然后INCLUDE该成员。必须在JCLLIB声明中指定单独的PDS或PDSE。

您也可以运行BPXBATCH并使用cp而不是IEBGENER复制您的数据。

如果您安装了Dovetail Technologies Co:Z Toolkit,则可能需要fromdsn