我想显示带有cobol程序的ispf面板。使用REXX很容易,没有问题,但是使用cobol不会显示面板。当我提交jcl时,编译和链接步骤没有给出任何错误,但是当它尝试运行时收到错误:MAXCC = 0020。在jesysmsg中,我发现
...
IEF236I ALLOC. FOR CBLMINE STEP2
IGD103I SMS ALLOCATED TO DDNAME STEPLIB
IEF237I JES2 ALLOCATED TO SYSOUT
IEF237I DMY ALLOCATED TO CEEDUMP
IEF237I DMY ALLOCATED TO SYSUDUMP
IEF142I CBLMINE STEP2 - STEP WAS EXECUTED - COND CODE 0020
IGD104I Z30952.PATO RETAINED,DDNAME=STEPLIB
IEF285I Z30952.CBLMINE.JOB04408.D0000103.? SYSOUT
...
Run Code Online (Sandbox Code Playgroud)
根据IBM手册,错误为:ERROR。由于文件属性不一致,写入更新文件的I / O错误,缺少FILEDEF或APNDUPD处理选项被取消。有实际帮助(请举个例子)?
使用ispf面板:
)ATTR DEFAULT(+_%)
% TYPE(TEXT) COLOR(PINK) INTENS(HIGH)
$ TYPE(INPUT) INTENS(HIGH) PAD(_)
! TYPE(INPUT) INTENS(LOW) PAD(' ')
)BODY
%-------------------- *TITLE FOR ENTRY PANEL* --------------------------
%COMMAND ===>_ZCMD
%
&ZUSER &ZTIME &ZSCREEN &ZWIDTH &ZUS4S7
+ THIS DIRECTION LINE TELLS THE USER HOW TO USE THE PANEL:
%XXXXX:_X %YYY:$YYY %ZZZ:$ZZ%AAAAAAAA:$AAAAAAAA +
)END
Run Code Online (Sandbox Code Playgroud)
使用cobol程序:
IDENTIFICATION DIVISION.
PROGRAM-ID. CBLEX003
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 PST1 PIC X(6) VALUE 'LIBDEF'.
77 PST2 PIC X(7) VALUE 'ISPPLIB'.
77 PST3 PIC X(7) VALUE 'DATASET'.
77 PST4 PIC X(15) VALUE 'Z30952.MINE.GML'.
77 PST5 PIC X(16) VALUE 'DISPLAY PANEL01'.
77 ISPLINK PIC X(7) VALUE 'ISPLINK'.
PROCEDURE DIVISION.
CALL ISPLINK USING PST1 PST2 PST3 PST4.
CALL ISPLINK USING PST5.
STOP RUN.
Run Code Online (Sandbox Code Playgroud)
使用jcl:
//CBLMINE JOB 1,NOTIFY=&SYSUID,MSGLEVEL=(1,1)
//SETVAR SET THEPGM=CBLEX003
//SETVAR SET WHERES=&SYSUID..MINE.GML
//SETVAR SET LINKRU=&SYSUID..PATO
//COBRUN EXEC IGYWCL
//COBOL.SYSIN DD DSN=&WHERES(&THEPGM),DISP=SHR
//LKED.SYSLMOD DD DSN=&LINKRU(&THEPGM),DISP=SHR
// IF RC = 0 THEN
//STEP2 EXEC PGM=&THEPGM
//STEPLIB DD DSN=&LINKRU,DISP=SHR
//SYSOUT DD SYSOUT=*,OUTLIM=15000
//CEEDUMP DD DUMMY
//SYSUDUMP DD DUMMY
// ELSE
// ENDIF
Run Code Online (Sandbox Code Playgroud)
如果要使用ISPLINK之类的ISPF服务,则必须在ISPF环境中执行。IBM的文档在此处提供了一个示例,如下所示。
//USERAA JOB (AA04,BIN1,000000),'I. M. USERAA',
// CLASS=L,MSGCLASS=A,NOTIFY=USERAA,MSGLEVEL=(1,1)
//*-------------------------------------------------------*/
//* EXECUTE ISPF COMMAND IN THE BACKGROUND */
//*-------------------------------------------------------*/
//*
//ISPFBACK EXEC PGM=IKJEFT01,DYNAMNBR=25,REGION=1024K
//*- - ALLOCATE PROFILE, PANELS, MSGS, PROCS, AND TABLES -*/
//ISPPROF DD DSN=USERAA.ISPF.PROFILE,DISP=OLD
//ISPPLIB DD DSN=ISP.SISPPENU,DISP=SHR
//ISPMLIB DD DSN=ISP.SISPMENU,DISP=SHR
//ISPSLIB DD DSN=ISP.SISPSENU,DISP=SHR
// DD DSN=ISP.SISPSLIB,DISP=SHR
//ISPTLIB DD DSN=USERAA.ISPF.TABLES,DISP=SHR
// DD DSN=ISP.SISPTENU,DISP=SHR
// DD DSN=ISP.SISPTLIB,DISP=SHR
//ISPTABL DD DSN=USERAA.ISPF.TABLES,DISP=SHR
//*
//*- - ALLOCATE ISPF LOG DATA SET - - - - - - - - - - - -*/
//ISPLOG DD DSN=USERAA.ISPF.LOG,DISP=SHR
//*
//*- - ALLOCATE DIALOG PROGRAM AND TSO COMMAND LIBRARIES -*/
//ISPLLIB DD DSN=USERAA.ISPF.LOAD,DISP=SHR
//SYSEXEC DD DSN=ISP.SISPEXEC,DISP=SHR
//SYSPROC DD DSN=ISP.SISPCLIB,DISP=SHR
//*
//*- - ALLOCATE TSO BACKGROUND OUTPUT AND INPUT DS - - - -*/
//SYSTSPRT DD DSNAME=USERAA.ISPF.ISPFPRNT,DISP=SHR
//SYSTSIN DD *
PROFILE PREFIX(USERAA) /* ESTABLISH PREFIX */
ISPSTART CMD(%TBUPDATE) /* INVOKE CLIST DIALOG */
/*
Run Code Online (Sandbox Code Playgroud)
您必须为商店提供有效的工作卡和正确的ISPF库串联。另外,我相信您将使用ISPSTART PGM(CBLEX003)IBM样本代替启动CLIST的样本。
如果您不知道商店的ISPF库串联,则可以从任何ISPF命令行的ISRDDN命令显示的内容中确定它们。
通常,在ISPF主菜单上也有一个ISPF对话框测试工具。您可以使用它来测试您的面板。