バッチでISPFを実行する
By 神居 - Posted: 2008/10/13 Last updated: 2010/06/22
- Leave a Comment
ISPFもバッチで利用することができる。ブラウザーやエディターなど対話を行う機能は無理だが、データセットやメンバーなどのリスト出力などライブラリーサービス(LM)機能はバッチでも利用できるものがあります。(ISPF:サービス・ガイドを参照)
ISPFをバッチで実行するためのJCLサンプル
//TSOBATCH JOB (account),name,CLASS=A,MSGCLASS=B,REGION=4M, // USER=userid,PASSWORD=passwrod //********************************************************************* //* TSO BACTH SESSION --- ISPF SERVICE--- //********************************************************************* //ISPBATCH EXEC PGM=IKJEFT01,DYNAMNBR=256 //SYSPROC DD DISP=SHR,DSN=USR1.JCL (CLIST Library) //ISPPROF DD DISP=SHR,DSN=ISPF.userid.ISPPROF (ISPF Profile Dataset) //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(%CLIST2) (Execute CLIST member) //* //ISPPRINT EXEC PGM=IEBGENER --- Print ISPF List Dataset --- //SYSPRINT DD DUMMY //SYSUT1 DD DISP=(OLD,DELETE),DSN=userid.SPF1.LIST //SYSUT2 DD SYSOUT=* //SYSIN DD DUMMY // //ISPSTARTコマンドで実行したいISPFサービスを書いたCLISTを実行させる。リストはISPFリストデータセットに書き出される。そのため後続ステップでそれをIEBGENERによってSYSOUTへコピーしている。
※ISPFのProfileデータセットは排他されているので、TSOにログオン中のuseridが使用しているものは利用できない。バッチ処理用の別プロファイルを使う必要がある。
上記のJCLで実行するCLISTの例:USR1.JCL(CLIST2)
ISPEXEC LMINIT DATAID(DDVAR) DATASET('USR1.JCL') ENQ(SHR) ISPEXEC LMOPEN DATAID(&DDVAR) ISPEXEC LMMLIST DATAID(&DDVAR) OPTION(SAVE) PATTERN(*) ISPEXEC LMCLOSE DATAID(&DDVAR) ENDデータセットUSR1.JCL内の全メンバーのリストを出力するサンプル(LMMLISTサービスの呼び出し)。
Posted in ISPFとSDSFのちょっと得する使い方 • • Top Of Page