你真的需要从 Cobol 运行 TSO 吗???
如果你尝试:
- 从Batch TSO - ISPF运行 Cobol 程序,然后使用ISPF 服务调用 TSO。
这应该可行,但可能有更好的方法。只需在 TSO 下运行 Cobol 程序即可。
我不确定在 Cobol 程序中运行大量 TSO 步骤是否是一个好主意。另一种方法,如:
- Cobol 程序将详细信息写入文件A
- TSO Rexx 程序读取文件 A 运行命令并写入文件 B
- 第二个 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(Your-command)'
该线程有一个调用 ISPF 的 Cobol 程序