000100 PROCESS NAME 00010000 000200 ID DIVISION. 00020000 000300 PROGRAM-ID. TRDELETE. 00030000 000400 00040000 000500 ENVIRONMENT DIVISION. 00050000 000600 INPUT-OUTPUT SECTION. 00060000 000700 FILE-CONTROL. 00070000 000800 SELECT trvsam ASSIGN TO TRVSAM 00080000 000900 ORGANIZATION IS INDEXED 00090000 001000 ACCESS MODE IS RANDOM 00100000 001100 RECORD KEY IS trvsam-key 00110000 001200 FILE STATUS IS trvsam-status, 00120000 001300 trvsam-status2. 00130000 001400 00140000 001500 DATA DIVISION. 00150000 001600 FILE SECTION. 00160000 001700 FD trvsam. 00170000 001800 01 trvsam-record. 00180000 001900 05 trvsam-key PIC x(6). 00190000 002000 05 PIC X(74). 00200000 002100 00210000 002200 WORKING-STORAGE SECTION. 00220000 002400 77 trvsam-status PIC XX. 00240000 002500 01 trvsam-status2. 00250000 002600 05 trvsam-status2-rc PIC S9(4) BINARY. 00260000 002700 05 trvsam-status2-fc PIC S9(4) BINARY. 00270000 002800 05 trvsam-status2-rea PIC S9(4) BINARY. 00280000 002900 00290000 003000 LINKAGE SECTION. 00300000 003100 01 parm-area. 00310000 003200 05 parm-length PIC S9(4) BINARY. 00320000 003300 05 parm-data PIC X(6). 00330000 003400 EJECT 00340000 003500 PROCEDURE DIVISION USING parm-area. 00350000 003600 A000-START. 00360000 003700 MOVE ZERO TO RETURN-CODE. 00370000 003800 00380000 003900 EVALUATE TRUE 00390000 004000 WHEN parm-length = ZERO 00400000 004100 DISPLAY 'Program TRDELETE No VSAM key passed.' 00410000 004200 MOVE 16 TO RETURN-CODE 00420000 004300 GO TO Done 00430000 004400 WHEN parm-length NOT = LENGTH OF trvsam-key 00440000 004500 DISPLAY 'Program TRDELETE VSAM key passed ' trvsam-key 00450000 004600 ' not ' LENGTH OF trvsam-key ' bytes.' 00460000 004700 MOVE 12 TO RETURN-CODE 00470000 004800 GO TO Done 00480000 004900 WHEN OTHER 00490000 005000 CONTINUE 00500000 005100 END-EVALUATE. 00510000 005200 00520000 005300 OPEN I-O trvsam. 00530000 005400 00540000 005500 IF trvsam-status = ZERO 00550000 005600 THEN CONTINUE 00560000 005700* THEN DISPLAY 'Program TRDELETE OPEN successful.' 00570000 005800 ELSE 00580000 005900 DISPLAY 'Program TRDELETE OPEN failed.' 00590000 006000 DISPLAY 'COBOL status: ', trvsam-status, '.' 00600000 006100 DISPLAY 'VSAM status: ', trvsam-status2-rc, '.' 00610000 006200 DISPLAY ' ', trvsam-status2-fc, '.' 00620000 006300 DISPLAY ' ', trvsam-status2-rea, '.' 00630000 006400 MOVE trvsam-status TO RETURN-CODE 00640000 006500 GO TO Done 00650000 006600 END-IF. 00660000 006700 00670000 006800 MOVE parm-data TO trvsam-key. 00680000 006900 DELETE trvsam 00690000 007000 INVALID KEY 00700000 007100 IF trvsam-status = '23' 00710000 007200 THEN DISPLAY 'Program TRDELETE record with key ', 00720000 007300 trvsam-key ' does not exist.' 00730000 007400 ELSE 00740000 007500 DISPLAY 'Program TRDELETE record with key ', 00750000 007600 trvsam-key ' not deleted.' 00760000 007700 DISPLAY 'COBOL status: ', trvsam-status, '.' 00770000 007800 DISPLAY 'VSAM status: ', trvsam-status2-rc, '.' 00780000 007900 DISPLAY ' ', trvsam-status2-fc, '.' 00790000 008000 DISPLAY ' ', trvsam-status2-rea, '.' 00800000 008100 MOVE trvsam-status TO RETURN-CODE 00810000 008200 END-IF 00820000 008300 NOT INVALID KEY 00830000 008400 DISPLAY 'Program TRDELETE record with key ' trvsam-key, 00840000 008500 ' deleted.' 00850000 008600 END-DELETE. 00860000 008700 00870000 008800 CLOSE trvsam. 00880000 008900 00890000 009000 IF trvsam-status = ZERO 00900000 009100 THEN CONTINUE 00910000 009200* THEN DISPLAY 'Program TRDELETE CLOSE successful.' 00920000 009300 ELSE DISPLAY 'Program TRDELETE CLOSE unsuccessful.' 00930000 009400 DISPLAY 'COBOL status: ', trvsam-status, '.' 00940000 009500 DISPLAY 'VSAM status: ', trvsam-status2-rc, '.' 00950000 009600 DISPLAY ' ', trvsam-status2-fc, '.' 00960000 009700 DISPLAY ' ', trvsam-status2-rea, '.' 00970000 009800 MOVE trvsam-status TO RETURN-CODE 00980000 009900 END-IF. 00990000 010000 01000000 010100 Done. 01010000 010200 GOBACK. 01020000