2017-09-15 61 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