Declaratives
 01 FILE-STAT-MESSAGE.
    05 FILE-I-O-TYPE       PIC X(06)  JUST RIGHT.
    05 FILLER              PIC X(01)  VALUE " ".
    05 FILE-FAILED         PIC X(06)  VALUE " ".
    05 FILLER              PIC X(01)  VALUE " ".
    05 FILE-STAT-MSG       PIC X(21)  VALUE " ".
    05 FILLER              PIC X(01)  VALUE " " .
    05 FILE-STAT           PIC X(02)  VALUE "00".
       88 VALID-KEY                   VALUE "00".
    05 FILLER              PIC X(01)  VALUE ":" .
    05 FILE-GUARDIAN-ERR   PIC 9(03)  VALUE ZERO.
/*******************
 PROCEDURE DIVISION.
********************
 DECLARATIVES.
 INPUT-SECTION  SECTION.   USE AFTER STANDARD ERROR PROCEDURE ON INPUT.
     MOVE "INPUT"          TO FILE-I-O-TYPE.
     PERFORM EDIT-FILE-STAT.
 I-O-SECTION    SECTION.   USE AFTER STANDARD ERROR PROCEDURE ON I-O.
     MOVE "OUTPUT"         TO FILE-I-O-TYPE.
     PERFORM EDIT-FILE-STAT.
 OUTPUT-SECTION SECTION.   USE AFTER STANDARD ERROR PROCEDURE ON OUTPUT.
     MOVE "I-O"            TO FILE-I-O-TYPE.
     PERFORM EDIT-FILE-STAT.
 EXTEND-SECTION SECTION.   USE AFTER STANDARD ERROR PROCEDURE ON EXTEND.
     MOVE "EXTEND"         TO FILE-I-O-TYPE.
     PERFORM EDIT-FILE-STAT.
 EDIT-FILE-STAT SECTION.
     MOVE GUARDIAN-ERR     TO FILE-GUARDIAN-ERR.
     IF FILE-STAT = "00"
        MOVE "Worked"      TO FILE-FAILED
        MOVE "Successfully        " TO FILE-STAT-MSG
     ELSE
        MOVE "Failed"      TO FILE-FAILED
        MOVE 999           TO DISK-ERRORS
        EVALUATE FILE-STAT
          WHEN "10"  MOVE "End of File         " TO FILE-STAT-MSG
          WHEN "30"  MOVE "Permanent Error     " TO FILE-STAT-MSG
          WHEN "21"  MOVE "Rewrite Error       " TO FILE-STAT-MSG
          WHEN "22"  MOVE "Duplicate Key       " TO FILE-STAT-MSG
          WHEN "23"  MOVE "No Record Exist     " TO FILE-STAT-MSG
          WHEN "24"  MOVE "Write Past Eof      " TO FILE-STAT-MSG
          WHEN "30"  MOVE "Temporary Error     " TO FILE-STAT-MSG
          WHEN "34"  MOVE "Seq Write Past Eof  " TO FILE-STAT-MSG
          WHEN "35"  MOVE "Open File Error     " TO FILE-STAT-MSG
          WHEN "37"  MOVE "Device Open Error   " TO FILE-STAT-MSG
          WHEN "38"  MOVE "Open Parameter Error" TO FILE-STAT-MSG
          WHEN "41"  MOVE "File is NOT Closed  " TO FILE-STAT-MSG
          WHEN "42"  MOVE "File is NOT Opened  " TO FILE-STAT-MSG
          WHEN "43"  MOVE "UnRead Del./Rewrite " TO FILE-STAT-MSG
          WHEN "44"  MOVE "Rewrite Size Differs" TO FILE-STAT-MSG
          WHEN "46"  MOVE "UnStarted Read Next " TO FILE-STAT-MSG
          WHEN "47"  MOVE "Read/Start Open Err " TO FILE-STAT-MSG
          WHEN "48"  MOVE "Write Open Error    " TO FILE-STAT-MSG
          WHEN "49"  MOVE "File not Opened  I/O" TO FILE-STAT-MSG
          WHEN "90"  MOVE "Open Not Timed I/O  " TO FILE-STAT-MSG
          WHEN "91"  MOVE "EditReadUnit Failed " TO FILE-STAT-MSG
          WHEN OTHER MOVE "Unknown condition   " TO FILE-STAT-MSG.
     IF GUARDIAN-ERR = 40
        MOVE "98"          TO FILE-STAT.
 END DECLARATIVES.
Friday, October 1, 2010 7:00:59 AM, From: jim, To: Tandem