你真的需要從Cobol運行TSO嗎?
如果你嘗試:
- 從批TSO運行COBOL程序 - ISPF然後使用ISPF服務調用TSO。
這應該有效,但可能有更好的方法。只需在TSO下運行Cobol程序即可。
我不確定在Cobol程序中運行很多TSO步驟是個不錯的主意。就像另一種方法:
- COBOL程序寫入細節到的fileA
- TSO REXX程序讀取的fileA運行命令和寫入FILEB
- 其次的Cobol程序讀取FILEB
可能工作更好。
對於運行ISPF一批Google ISPF Batch,你會發現像Batch Ispf
//USERAA JOB (ISPF),'ISPF USER',MSGCLASS=X,
// CLASS=A,NOTIFY=&SYSUID
//*
//ISPFSTP EXEC PGM=IKJEFT01,DYNAMNBR=30,REGION=32M
//ISPPROF DD RECFM=FB,LRECL=80,SPACE=(TRK,(2,2,2))
//ISPLLIB DD DSN=USERA.LOADLIB,DISP=SHR
//ISPMLIB DD DSN=ISP.SISPMENU,DISP=SHR
//ISPPLIB DD DSN=ISP.SISPPENU,DISP=SHR
//ISPSLIB DD DSN=ISP.SISPSENU,DISP=SHR
// DD DSN=ISP.SISPSLIB,DISP=SHR
//ISPTLIB DD RECFM=FB,LRECL=80,SPACE=(TRK,(1,0,1))
// DD DSN=ISP.SISPTENU,DISP=SHR
//ISPCTL1 DD SPACE=(CYL,1),RECFM=FB,LRECL=80
//ISPLOG DD SYSOUT=*,RECFM=FB,LRECL=133
//SYSEXEC DD DSN=ISP.SISPEXEC,DISP=SHR
//SYSPROC DD DSN=ISP.SISPCLIB,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTSIN DD *
ISPSTART pgm(cobolPgm)
反應在你的程序中,您將使用ISPF SELECT CMD
服務調用TSO。 ISPF Edit
命令模型將生成一個示例ISPF呼叫給你。
基本上在COBOL你會做
CALL 'ISPLINK' USING SELECT Command-Var
其中command-VAR持有 'CMD(你命令)'
這thread有COBOL程序調用ISPF
目前還不清楚COBOL在哪裏進入。從信息中,你不能做你想做的事情,但沒有辦法知道你是否正確地嘗試了,所以不能'告訴它是否可能。 –
您正在發佈的TSO命令是什麼 - 標準的IBM提供的命令,還是本地或ISV命令?它想要做什麼?可能有REXX的方式不這樣做;甚至可能調用REXX的命令。 – zarchasmpgmr