Rah*_*hul 2 cobol mainframe cics zos gnucobol
科博程序:
PROGRAM-ID. SCHPROG.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT MYFILE ASSIGN TO INDD
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD MYFILE.
01 FILERECORDS.
05 NAME PIC A(10).
05 CLASS-IN PIC 9(1).
05 ROLL PIC 9(5).
WORKING-STORAGE SECTION.
COPY SCHMAPA.
COPY SCHMAPB.
COPY SCHMAPC.
01 END-OF-FILE PIC A(3) VALUE 'NO'.
PROCEDURE DIVISION.
000-MAIN-PARA.
PERFORM 100-SEND-MAPA.
PERFORM 100-RECEIVE-MAPA.
IF CHOICEI = '1'
PERFORM 200-SEND-MAPB
PERFORM 200-RECEIVE-MAPB
PERFORM 200-SEND-MAPB
PERFORM 100-SEND-MAPA
END-IF.
IF CHOICEI = '2'
PERFORM 300-SEND-MAPC
PERFORM 300-RECEIVE-MAPC
PERFORM 500-SRCH-REC
PERFORM 300-SEND-MAPC
PERFORM 100-SEND-MAPA
END-IF.
STOP RUN.
100-SEND-MAPA.
EXEC CICS
SEND
MAP('SCHOLA') MAPSET('SCHMAPA')
ERASE
END-EXEC.
100-RECEIVE-MAPA.
EXEC CICS
RECEIVE
MAP('SCHOLA') MAPSET('SCHMAPA')
END-EXEC.
200-SEND-MAPB.
EXEC CICS
SEND
MAP('SCHOLB') MAPSET('SCHMAPB')
ERASE
END-EXEC.
200-RECEIVE-MAPB.
EXEC CICS
RECEIVE
MAP('SCHOLB') MAPSET('SCHMAPB')
END-EXEC.
PERFORM 400-FILE-PROCESS.
300-SEND-MAPC.
EXEC CICS
SEND
MAP('SCHOLC') MAPSET('SCHMAPC')
ERASE
END-EXEC.
300-RECEIVE-MAPC.
EXEC CICS
RECEIVE
MAP('SCHOLC') MAPSET('SCHMAPC')
END-EXEC.
400-FILE-PROCESS.
OPEN OUTPUT MYFILE.
MOVE NAMEI TO NAME.
MOVE CLASSI TO CLASS-IN.
MOVE ROLLI TO ROLL.
WRITE FILERECORDS.
CLOSE MYFILE.
MOVE 'RECORD INSERTED' TO MSGBO.
500-SRCH-REC.
OPEN INPUT MYFILE.
PERFORM UNTIL END-OF-FILE = 'YES'
READ MYFILE INTO FILERECORDS
AT END
MOVE 'YES' TO END-OF-FILE
NOT AT END
IF ROLL = ROLLCI
MOVE NAME TO NAMECO
MOVE CLASS-IN TO CLASSCO
END-IF
END-READ
END-PERFORM.
CLOSE MYFILE.
Run Code Online (Sandbox Code Playgroud)
出现错误。
IGYPA3043-E Data-item "FILERECORDS (GROUP)" and record "FILERECORDS (GROUP)"
had overlapping storage. Movement of data may not occur at execution time.
Run Code Online (Sandbox Code Playgroud)
我已经提供了我的 cobol 程序。请检查并帮助我找到问题。
我正在从 Cics 区域更新文件,并使用相同的文件来获取详细信息并将其放入 cics 区域。
不知道为什么我会收到此错误。早些时候,我使用相同的组数据项将记录添加到文件中,并且工作正常。请帮忙 !!
虽然其他答案正确回答了您的问题,但编译 CICS 需要遵守此处记录的一些限制,并在下面引用截至 2021 年 4 月 6 日的限制。您可能还需要查阅有关您的CICS 版本和发行版的 CICS 文档。
\n\n\n限制: 不能在 CICS 中运行具有 Java\xe2\x84\xa2 互操作性的面向对象语法的 COBOL 程序。此外,如果您编写\n在 CICS 下运行的程序,请勿使用以下代码:
\n\n
\n- ENVIRONMENT DIVISION 中的 FILE-CONTROL 条目,除非\nFILE-CONTROL 条目用于 SORT 语句
\n- \nDATA DIVISION 的 FILE SECTION,除非 FILE SECTION 用于 SORT 语句
\n- 主程序的用户指定参数 USE 声明(除了\nUSE FOR DEBUGGING)
\n- 这些 COBOL 语言语句:
\n- ACCEPT 格式 1:\n数据传输(您可以使用 format-2 ACCEPT 检索系统日期\n和时间)
\n- 关闭
\n- 删除
\n- 显示在控制台上
\n- 在 SYSPUNCH 上显示
\n- 合并
\n- 打开
\n- 读
\n- 重新运行
\n- 改写
\n- 开始
\n- 停止文字
\n- 写
\n
[...]
\n\n\n编码文件输入和输出:您必须使用 CICS 命令来进行大多数输入和输出处理。因此,不要描述文件或代码\n任何 OPEN、CLOSE、READ、START、REWRITE、WRITE 或 DELETE 语句。\n而是使用 CICS 命令来检索、更新、插入和删除\n数据。
\n