有兩種程序,編目程序和插播程序。
編目過程存儲在獨立於執行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。
通常有商店標準,你會被期望遵守。通常大型機商店有一個專門的小組,其職能是運行生產作業流,每天安排數百或數千個這樣的作業流。
正式地,你所描述的_replaceable parameters_被稱爲**符號參數**。不要與JCL參數(位置和關鍵字)混淆,也不要與傳遞給讀取PGM語句的PARM字段的程序的參數混淆。 – MikeT
@MikeT謝謝,我已根據您的評論修改了答案。 – cschneid