Входной файл COBOL в выходной файл MAXCC (код возврата ошибки) = 0012

Я пытался прочитать свой ввод и записать его в выходной файл, но не могу найти ошибок в коде. JCL, который я отправляю, хорош, потому что он был написан моим лектором по мэйнфреймам, поэтому я знаю, что проблема где-то в коде COBOL... перепроверил все, пытался найти что-то с ним в классе - бесполезно... Выравнивание строк , интервалы и т. д., я считаю, в порядке.

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.

Какие-либо предложения? Спасибо.

P.S. Я не могу проверить свои журналы заданий — что-то не так с моей учетной записью мейнфрейма или с самим мейнфреймом. Это основная причина, почему я не могу найти проблему


person zilijonas    schedule 17.05.2017    source источник
comment
Можете ли вы опубликовать полный журнал задания компиляции? Это позволит определить ошибку.   -  person Steve Ives    schedule 17.05.2017
comment
О, я забыл упомянуть. Что-то не так с моей учетной записью мейнфрейма или smtg, поэтому я не могу проверить свои журналы :/   -  person zilijonas    schedule 17.05.2017
comment
Тогда мы застряли. Вы также не знаете, что ваш JCL хорош, потому что, если вы поместите свой исходный код в другое место, куда указывает шаг //SYSIN этапа компиляции, даже «хороший» JCL не будет работать. CC12 — это более серьезная проблема, чем просто неправильный исходный код.   -  person Steve Ives    schedule 17.05.2017
comment
Лектор дал нам полный код JCL, единственное, что нам нужно было изменить, это имена входных/выходных файлов. Другие студенческие программы работали нормально (не знаю, какой метод они использовали) с этим JCL, и, как я уже упоминал, я дважды проверил пути к файлам JCL.   -  person zilijonas    schedule 17.05.2017
comment
Сколько шагов в работе? Я полагаю, как минимум 2 (компиляция и привязка (также известная как ссылка)) - у кого из них был RC12? Нам действительно нужен рабочий журнал.   -  person Steve Ives    schedule 17.05.2017
comment
вы компилировали программу? проверьте, чтобы убедиться, что вы скомпилировали в то же место, где JCL ищет программу   -  person SaggingRufus    schedule 17.05.2017
comment
@SteveIves Я разместил код JCL, если это поможет   -  person zilijonas    schedule 17.05.2017
comment
@SaggingRufus Я сделал   -  person zilijonas    schedule 17.05.2017
comment
Какой шаг дал CC12? Компиляция или GO? Можете ли вы опубликовать свой файл «ИГРОКИ»?   -  person Steve Ives    schedule 17.05.2017
comment
@SteveIves Я полагаю, COBOL.SYSIN. файл PLAYERS_file   -  person zilijonas    schedule 17.05.2017
comment
Но какой шаг дал CC12?   -  person Steve Ives    schedule 17.05.2017
comment
@SteveIves, как я могу знать без журналов?   -  person zilijonas    schedule 17.05.2017
comment
Хорошо, тогда вам придется обратиться к людям технической поддержки на вашем сайте.   -  person Steve Ives    schedule 17.05.2017
comment
Не могли бы вы опубликовать содержимое файла PLAYERS? Или хотя бы первые несколько строк. Я не могу запустить это без этого.   -  person Steve Ives    schedule 17.05.2017
comment
Этот вопрос действительно следует отложить. Если информации недостаточно, информации недостаточно   -  person SaggingRufus    schedule 17.05.2017
comment
проблема была со строкой OPEN OUTPUT OUTPUT10. Я изменил его на OPEN EXTEND OUTPUT10, и все работает!   -  person zilijonas    schedule 07.06.2017


Ответы (2)


ОК - я успешно запустил это после некоторых изменений кода. Вам действительно нужно отсортировать вывод - используете ли вы правильный MSGCLASS. Проверяй - не предполагай.

Ошибки программы: Посмотрите PROGRAM-ID Посмотрите длины записей и сравните с тем, что вы описываете длины записей файлов Посмотрите, что вы пишете.

Улучшения: Всегда проверяйте свой статус после любой операции с файлом - ОТКРЫТЬ, ПРОЧИТАТЬ, ЗАПИСАТЬ, ЗАКРЫТЬ. Ваш отступ не является хорошим. Если это на вашем компьютере, будьте более осторожны при публикации.

person NicC    schedule 17.05.2017
comment
это действительно должны быть комментарии. Это не отвечает на вопрос ОП. Никто не может, пока у нас не будет больше информации, потому что мы даже не знаем, какой шаг JCL получает 12 - person SaggingRufus; 18.05.2017
comment
@SaggingRufus: на самом деле это отвечает на вопрос. Вопрос был: Любые предложения?. Я дал 3 предложения по устранению проблем плюс доп. - person NicC; 19.05.2017
comment
Как вы вообще можете что-то предлагать, если даже не знаете, где и в чем ошибка? Любая информация, которую вы предоставляете на этом этапе, в основном отправляет OP в погоню за дикими гусями. - person SaggingRufus; 19.05.2017
comment
Но я знаю, где находятся ошибки, потому что, как я уже сказал, я скомпилировал после исправления ошибок компиляции и запустил после исправления ошибок времени выполнения: как я уже сказал. - person NicC; 19.05.2017

Входной файл и выходной файл объявлены как фиксированные и имеют длину 80.

Но обе входные и выходные переменные имеют длину меньше 80. Они имеют длину 27. Итак, в сведениях об игроке и выходных данных добавьте переменную-заполнитель длиной 80 - 27 = 53.

Также убедитесь, что длина входного и выходного файлов равна 80.

person Esha Upadhyay    schedule 28.05.2017