ISPFは、z/OSの普段の操作に欠かすことのできないユーティリティーです。通常は、TSO端末にログオンして対話型処理で使用しますが、大量のデータセットやメンバーを処理したいとき、作業の記録を残しておきたいとき、などといった場合は、JCLを使用したバッチ処理での実行方法もあることを知っておくといいでしょう。
ISPFの各種ユーティリティーやコマンドをバッチで実行するサンプルJCL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
//******************************************************************** //* TSO BACTH SESSION --- ISPF SERVICE--- //******************************************************************** //ISPBATCH PROC //GENCLIST EXEC PGM=IEBGENER --- GENERATE CLIST MEMBER --- //SYSPRINT DD DUMMY //SYSIN DD DUMMY //SYSUT2 DD DISP=(,PASS),DSN=&&CLIST(ISPCMDS),UNIT=SYSDA, // SPACE=(TRK,(1,,1)),DCB=(RECFM=FB,LRECL=80) //* //ISPBATCH EXEC PGM=IKJEFT01,DYNAMNBR=256 //ISPLOG DD SYSOUT=*,DCB=(RECFM=VBA,LRECL=125,BLKSIZE=0) //ISPLIST DD SYSOUT=*,DCB=(RECFM=FBA,LRECL=121,BLKSIZE=0) //SYSPROC DD DISP=(OLD,DELETE),DSN=&&CLIST //ISPPROF DD DISP=(,PASS),UNIT=SYSDA, // SPACE=(CYL,(1,1,10)),DCB=(RECFM=FB,LRECL=80) //ISPLLIB DD DISP=SHR,DSN=ISP.SISPLOAD //ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU //ISPMLIB DD DISP=SHR,DSN=ISP.SISPMENU //ISPTLIB DD DISP=SHR,DSN=ISP.SISPTENU //ISPSLIB DD DISP=SHR,DSN=ISP.SISPSLIB // DD DISP=SHR,DSN=ISP.SISPSENU //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * ISPSTART CMD(%ISPCMDS) /* EXECUTE CLIST MEMBER */ // PEND //*=================================================================== //STEP1 EXEC ISPBATCH //GENCLIST.SYSUT1 DD *,DLM='++' /* CLIST FOR ISPF SERVICE CALL */ /* PRINT VTOC LIST FOR ALL VOLUMES */ ISPEXEC LMDINIT LISTID(LID) VOLUME(HDRES1) ISPEXEC LMDLIST LISTID(&LID) OPTION(SAVE) STATS(YES) ISPEXEC LMDFREE LISTID(&LID) /* PRINT PDS/PDSE MEMBER */ ISPEXEC LMINIT DATAID(DDVAR) DATASET('EDU1.ARTECEED.INFO') ENQ(SHR) ISPEXEC LMPRINT DATAID(&DDVAR) MEMBER(CUSTOMER) END // // |
ISPFコマンド実行用のCLISTライブラリー生成とISPFの実行部分は、ストリーム内プロシージャー化しています。実行したいISPFの機能に対応したコマンドは、プロシージャー内ステップGENCLISTのSYSUT1に定義します。CLIST内のコメントは/*と*/で囲むため、DLMパラメーターで「/*」をJCLの区切りステートメントとして認識されないようにしています。
ISPFの実行結果は、ISPLIST DDステートメントに定義したデータセットに出力されます。ISPFの実行に失敗した場合は、SYSTSPRT DDステートメントに出力されるTSOのエラーメッセージなどをマニュアルで確認します。ISPLOG DDステートメントに定義したデータセットには、ISPFログが出力されています。こちらも参考になるでしょう。
実行するISPFのサービス(コマンド)の詳細は、マニュアル「対話式システム生産性向上機能(ISPF)サービス・ガイド」(SC43-2672)に解説されています。