2016-06-11 1025 views
1

我嘗試提交作業,並且一切都很好,當我硬編碼時。但我想用params。如何在JCL中使用參數

//REPORTS EXEC PGM=IKJEFT01,**PARM='SDSFINFO FTPSRV01 * hiqual'** 
//SYSEXEC DD DSN=rexx.is.here,DISP=(SHR,PASS)     
//SYSTSPRT DD SYSOUT=A,HOLD=YES        
//SYSTSIN DD DUMMY           

我寫我的JCL作爲過程。在過程發票中描述參數是真實的嗎?像這樣:

//stepxx exec myproc,hiqual=hiqual,owner=*... 

回答

3

有兩種程序,編目程序和插播程序。

編目過程存儲在獨立於執行JCL的庫成員中。系統通過搜索SYS1.PARMLIB中定義的此類庫的列表來查找單獨的庫。這個列表可以被執行JCL中的JCLLIB語句覆蓋。您的店鋪可能有一個存儲編目程序的標準位置。

插播過程與您的執行JCL位於相同的庫成員中。 PROC聲明必須位於您的jobcard和執行指定proc的語句EXEC之間。流內過程必須PEND聲明結束。

通過在過程中使用符號參數,使它們更加靈活。

你在正確的方向是領導...

[jobcard is here] 
//MYPROC PROC 
//REPORTS EXEC PGM=IKJEFT01,PARM='SDSFINFO FTPSRV01 &OWNER &HIQUAL' 
//SYSEXEC DD DSN=[rexx.is.here],DISP=(SHR,PASS) 
//SYSTSPRT DD SYSOUT=A,HOLD=YES 
//SYSTSIN DD DUMMY 
//   PEND 
//* 
//MYSTEP EXEC PROC=MYPROC,HIQUAL=ABC,OWNER=XYZ 

...其中方括號中的東西必須由您提供。這將導致MYPROC被執行就好像你硬編碼...

//REPORTS EXEC PGM=IKJEFT01,PARM='SDSFINFO FTPSRV01 XYZ ABC' 
//SYSEXEC DD DSN=[rexx.is.here],DISP=(SHR,PASS) 
//SYSTSPRT DD SYSOUT=A,HOLD=YES 
//SYSTSIN DD DUMMY 

有時特效都與象徵參數的默認值編碼...

//MYPROC PROC ENV='PROD' 
//REPORTS EXEC PGM=IKJEFT01,PARM='SDSFINFO FTPSRV01 &OWNER &HIQUAL' 
//SYSEXEC DD DSN=&ENV..REXX,DISP=(SHR,PASS) 
//SYSTSPRT DD SYSOUT=A,HOLD=YES 
//SYSTSIN DD DUMMY 

...有時默認值是文檔...

//MYPROC PROC ENV='SPECIFY_PROD_OR_TEST_OR_QA' 
//REPORTS EXEC PGM=IKJEFT01,PARM='SDSFINFO FTPSRV01 &OWNER &HIQUAL' 
//SYSEXEC DD DSN=&ENV..REXX,DISP=(SHR,PASS) 
//SYSTSPRT DD SYSOUT=A,HOLD=YES 
//SYSTSIN DD DUMMY 

...迫使執行JCL提供一個值或在運行時遇到JCL錯誤。

請注意,使用SET語句,您可以使用符號參數而不需要過程,編目或插播。這...

[jobcard is here] 
// SET HIQUAL=ABC 
// SET OWNER=XYZ 
//* 
//REPORTS EXEC PGM=IKJEFT01,PARM='SDSFINFO FTPSRV01 &OWNER &HIQUAL' 
//SYSEXEC DD DSN=[rexx.is.here],DISP=(SHR,PASS) 
//SYSTSPRT DD SYSOUT=A,HOLD=YES 
//SYSTSIN DD DUMMY 
//* 

...將給出與第一個例子相同的結果,而不使用proc。

通常有商店標準,你會被期望遵守。通常大型機商店有一個專門的小組,其職能是運行生產作業流,每天安排數百或數千個這樣的作業流。

+0

正式地,你所描述的_replaceable parameters_被稱爲**符號參數**。不要與JCL參數(位置和關鍵字)混淆,也不要與傳遞給讀取PGM語句的PARM字段的程序的參數混淆。 – MikeT

+1

@MikeT謝謝,我已根據您的評論修改了答案。 – cschneid