COBOL输入文件到输出文件MAXCC(错误返回码)=0012
我一直试图读取输入并将其写入输出文件,但在代码中找不到任何错误。我提交的JCL很好,因为它是由我的大型机讲师编写的,所以我知道问题出在COBOL代码的某个地方。。。仔细检查了所有的东西,试图在课堂上找到一些与他有关的东西-毫无价值。。。我相信直线对齐、间距等都可以COBOL输入文件到输出文件MAXCC(错误返回码)=0012,cobol,mainframe,zos,jcl,Cobol,Mainframe,Zos,Jcl,我一直试图读取输入并将其写入输出文件,但在代码中找不到任何错误。我提交的JCL很好,因为它是由我的大型机讲师编写的,所以我知道问题出在COBOL代码的某个地方。。。仔细检查了所有的东西,试图在课堂上找到一些与他有关的东西-毫无价值。。。我相信直线对齐、间距等都可以 IDENTIFICATION DIVISION. PROGRAM-ID. NAME. AUTHOR. MYNAME.
IDENTIFICATION DIVISION.
PROGRAM-ID. NAME.
AUTHOR. MYNAME.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INPUT10 ASSIGN TO INPUTFIL.
SELECT OUTPUT10 ASSIGN TO OUTFIL.
DATA DIVISION.
FILE SECTION.
FD INPUT10
BLOCK CONTAINS 0 RECORDS
RECORDING MODE IS F
RECORD CONTAINS 80 CHARACTERS.
01 PLAYER-DETAILS.
03 PLAYER-ID PIC 9(07).
03 PLAYER-NAME.
05 NAME PIC X(08).
05 INITIALS PIC A(02).
03 PLAYER-BDAY PIC 9(08).
03 PLAYER-NR PIC 9(02).
FD OUTPUT10
BLOCK CONTAINS 0 RECORDS
RECORDING MODE IS F
RECORD CONTAINS 80 CHARACTERS.
01 OUTPUT-DETAILS.
03 OUTPUT-ID PIC 9(07).
03 OUTPUT-NAME.
05 O-NAME PIC X(08).
05 O-INITIALS PIC A(02).
03 OUTPUT-BDAY PIC 9(08).
03 OUTPUT-NR PIC 9(02).
WORKING-STORAGE SECTION.
01 WS-INDICATORS.
10 WS-EOF-IND PIC X(01) VALUE 'N'.
88 WS-END-OF-FILE VALUE 'Y'.
PROCEDURE DIVISION.
MAINFLOW.
OPEN INPUT INPUT10
OPEN OUTPUT OUTPUT10
READ INPUT10
AT END SET WS-END-OF-FILE TO TRUE
END-READ
PERFORM UNTIL WS-END-OF-FILE
MOVE PLAYER-ID TO OUTPUT-ID
MOVE NAME TO O-NAME
MOVE INITIALS TO O-INITIALS
MOVE PLAYER-BDAY TO OUTPUT-BDAY
MOVE PLAYER-NR TO OUTPUT-NR
READ INPUT10
AT END SET WS-END-OF-FILE TO TRUE
END-READ
WRITE OUTPUT10
END-WRITE
END-PERFORM
CLOSE INPUT10
CLOSE OUTPUT10
STOP RUN.
这是JCL的代码
//useridX JOB ,
// MSGCLASS=H,
// MSGLEVEL=(1,1),
// CLASS=A,
// REGION=0M,
// NOTIFY=&SYSUID
//COBOL1 EXEC IGYWCLG,REGION=50M,
// PARM.COBOL='TEST,RENT,APOST,OBJECT,NODYNAM,LIB,SIZE(1048376)'
//COBOL.STEPLIB DD DSN=IGY420.SIGYCOMP,
// DISP=SHR
//COBOL.SYSIN DD DISP=SHR,DSN=userid.KURS.COBOL(PROG2)
//GO.INPUTFIL DD DISP=SHR,DSN=userid.KURS.PLAYERS
//GO.OUTFIL DD DISP=SHR,DSN=userid.KURS.REPORT
它也适用于其他学生,所以我很确定maxcc=12的原因是COBOL的一部分
有什么建议吗?
谢谢
另外,我无法检查我的工作日志-我的大型机帐户或大型机本身有问题。这是我找不到问题的主要原因好的-在一些代码更改后,我成功地运行了这个程序。您确实需要对输出进行排序—您是否使用了正确的MSGCLASS。检查-不要假设 程序错误: 看看PROGRAM-ID 查看记录长度,并与您描述的文件记录长度进行比较 看看你在写什么 改进: 在执行任何文件操作后始终检查您的状态-打开-读取-写入-关闭。
你的压痕不好。如果它在您的计算机上,那么在发布时要更加小心。输入文件和输出文件声明为固定文件,长度为80 但输入和输出变量的长度都小于80。它们的长度为27。所以在播放器详细信息和输出详细信息中添加长度为80-27=53的填充变量
还要确保输入和输出文件长度为80。您能发布编译作业的完整作业日志吗?那将识别错误。哦,我忘了提到。我的大型机帐户或smtg出现问题,因此我无法检查日志:/n然后我们陷入困境。您也不知道您的JCL是好的,因为如果您将源代码放在编译步骤//SYSIN步骤指向的不同位置,即使是“好的”JCL也无法工作。CC12是一个比源代码错误更大的问题。讲师给了我们完整的JCL代码,我们只需要更改输入/输出文件的名称。其他学生的程序在JCL上运行良好(idk他们使用的是什么方法),正如我所提到的,我仔细检查了JCL的文件路径。这个问题应该暂时搁置。如果没有足够的信息,就没有足够的信息。这些应该是评论。这并不能回答问题。在我们获得更多信息之前,没有人可以这样做,因为我们甚至不知道哪个JCL步骤获得了12@SaggingRufus:事实上,它回答了这个问题。问题是:“有什么建议吗?”。我给出了3个解决问题的建议,外加一个额外的建议。当你甚至不知道错误在哪里或什么地方时,你怎么能开始提出建议呢?此时您提供的任何信息基本上都是发送操作,但我确实知道错误在哪里,因为如我所述,我在修复编译错误后进行了编译,并在修复运行时错误后运行:如我所述。