* $$ JOB JNM=RTM2,CLASS=V,DISP=L,PRI=3 * $$ LST CLASS=O,DISP=D,JSEP=0,DEST=(*,BILLB) // JOB RTM2 // EXEC LIBR ACC S=TSTLIB.WHB IDENTIFICATION DIVISION. PROGRAM-ID. RTM2. AUTHOR. BILL BLASINGIM. REMARKS. CREATE REPORT FROM MACKINNEY CICS RTM DATA. DATE-WRITTEN. JAN. 24, 1995. DATE-COMPILED. ENVIRONMENT DIVISION. CONFIGURATION SECTION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT VSAM-FILE ASSIGN TO SYS015-VSAMIN ORGANIZATION IS INDEXED ACCESS MODE IS SEQUENTIAL RECORD KEY IS VSAM-KEY FILE STATUS IS VSAM-STATUS. SELECT TAPE-FILE ASSIGN TO SYS020-UT-3420-TAPEIN. SELECT PRINTER ASSIGN TO SYS020-UR-3211-S-PRINTER. DATA DIVISION. FILE SECTION. FD VSAM-FILE LABEL RECORDS ARE STANDARD. 01 VSAM-RECORD. 05 VSAM-KEY. 10 VSAM-YYMMDD PIC S9(7) COMP-3. 10 VSAM-HHMMSSS PIC S9(7) COMP-3. 05 FILLER PIC X(7). 05 VSAM-RTM-DETAIL-BUFFER PIC X(8170). FD TAPE-FILE LABEL RECORDS ARE STANDARD. 01 TAPE-RECORD. 05 TAPE-YYMMDD PIC S9(7) COMP-3. 05 TAPE-HHMMSSS PIC S9(7) COMP-3. 05 FILLER PIC X(7). 05 TAPE-RTM-DETAIL-BUFFER PIC X(8170). FD PRINTER LABEL RECORDS ARE OMITTED. 01 PRINT-REC PIC X(120). WORKING-STORAGE SECTION. 01 WORK-AREA. 05 FILLER PIC X(20) VALUE '** WS STARTS HERE **'. 05 VSAM-STATUS PIC 99 VALUE 0. 05 VSAM-IN-STATUS PIC 99 VALUE 0. 05 PAGE-CNT PIC S9(3) VALUE +0 COMP-3. 05 LINE-CNT PIC S9(3) VALUE +0 COMP-3. 05 KEY-SEQUENCE PIC S9(3) VALUE +0 COMP-3. 05 RECIN-CNT PIC S9(7) VALUE +0 COMP-3. 05 RECOUT-CNT PIC S9(7) VALUE +0 COMP-3. 05 OUTPUT-CNT PIC S9(7) VALUE +0 COMP-3. 05 VSAM-READ-CNT PIC S9(7) VALUE +0 COMP-3. 05 SORT-RELEASE-CNT PIC S9(7) VALUE +0 COMP-3. 05 WS-TRANID-CNT PIC S9(7) VALUE +0 COMP-3. 05 EXCLUDE-CNT PIC S9(7) VALUE +0 COMP-3. 05 ENTRY-CNT PIC S9(7) VALUE +0 COMP-3. 05 TRAN-TOT PIC S9(9) VALUE +0 COMP-3. 05 LAST-YYMMDD PIC S9(7) VALUE +0 COMP-3. 05 SAVE-MM PIC 9(02) VALUE ZERO. 05 SUB1 PIC S9(5) VALUE +0 COMP. 05 LAST-OPID PIC X(03). 05 LAST-TRANID PIC X(04). 05 WS-SYSIPT PIC X(08) VALUE SPACES. 05 DISK-TAPE PIC X(01) VALUE 'D'. 88 DISK-INPUT VALUE 'D'. 88 TAPE-INPUT VALUE 'T'. 05 NOF-IND PIC X(01) VALUE 'N'. 88 NOT-ON-FILE VALUE 'Y'. 05 EOF-FLAG PIC X(01) VALUE 'N'. 88 EOF VALUE 'Y'. 05 DATE-SWITCH PIC X(01) VALUE 'N'. 88 DATE-SUMMARY VALUE 'Y'. 05 COUNT-DETAIL. 10 FILLER PIC X(02) VALUE SPACES. 10 COUNT-TYPE PIC X(15) VALUE SPACES. 10 FILLER PIC X(03) VALUE SPACES. 10 COUNT-UNPACK PIC Z9(7) VALUE ZEROES. 05 ERROR-REC. 10 FILLER PIC X(07) VALUE '* VSAM '. 10 ERROR-ACTION PIC X(06) VALUE SPACES. 10 FILLER PIC X(09) VALUE ' ERROR = '. 10 ERROR-NO PIC 99. 10 FILLER PIC X(02) VALUE ' *'. 01 EXCLUDE-TABLE PIC X(1200) VALUE SPACES. 01 FILLER REDEFINES EXCLUDE-TABLE. 05 EXCLUDE-ENTRY PIC X(04) OCCURS 300 TIMES INDEXED BY INDEX-1. 01 HEADING-1. 05 FILLER PIC X(01) VALUE SPACE. 05 H1-DATE PIC X(08). 05 FILLER PIC X(15) VALUE SPACES. 05 FILLER PIC X(12) VALUE 'BANKATLANTIC'. 05 FILLER PIC X(23) VALUE SPACES. 05 FILLER PIC X(05) VALUE 'PAGE '. 05 H1-PAGE PIC Z(4)9. 01 HEADING-2. 05 FILLER PIC X(01) VALUE SPACES. 05 FILLER PIC X(22) VALUE SPACES. 05 FILLER PIC X(17) VALUE 'TRANID BY OPID '. 05 FILLER PIC X(20) VALUE SPACES. 01 DETAIL-HEADING-1. 05 FILLER PIC X(01) VALUE SPACES. 05 FILLER PIC X(15) VALUE 'OP TRAN TRAN'. 05 FILLER PIC X(01) VALUE SPACES. 01 DETAIL-HEADING-2. 05 FILLER PIC X(01) VALUE SPACES. 05 FILLER PIC X(16) VALUE 'ID ID COUNT'. 05 FILLER PIC X(01) VALUE SPACES. 01 IN-BUFFER PIC X(8170). 01 FILLER REDEFINES IN-BUFFER. 05 IN-TABLE OCCURS 430 TIMES. 10 FILLER PIC X(19). 01 IN-RECORD. 05 IN-YYMMDD PIC S9(7) COMP-3 VALUE +0. 05 IN-DETAIL. 10 IN-START-TIME PIC S9(7) COMP-3. 10 IN-TRANID PIC X(04). 10 IN-TERMID PIC X(04). 10 IN-OPID PIC X(03). 10 IN-END-TIME PIC S9(7) COMP-3. 01 PRINT-DETAIL. 05 FILLER PIC X(01) VALUE SPACES. 05 PD-OPID PIC X(03) VALUE SPACES. 05 FILLER PIC X(01) VALUE SPACES. 05 PD-TRANID PIC X(04) VALUE SPACES. 05 FILLER PIC X(01) VALUE SPACES. 05 PD-TRANID-CNT PIC Z(6)9 VALUE ZERO. 05 FILLER PIC X(01) VALUE SPACES. 01 DATE-LIST. 05 FILLER PIC X(01) VALUE SPACES. 05 DL-YYMMDD PIC 9(06) VALUE ZEROS. 05 FILLER REDEFINES DL-YYMMDD. 10 DL-YY PIC 9(02). 10 DL-MM PIC 9(02). 10 DL-DD PIC 9(02). 05 FILLER PIC X(01) VALUE SPACES. 05 DL-TRAN-CNT PIC Z(7)9 VALUE ZEROS. 05 FILLER PIC X(01) VALUE SPACES. 01 DATE-TOTAL. 05 FILLER PIC X(01) VALUE SPACES. 05 FILLER PIC X(06) VALUE SPACES. 05 DT-MONTH-TOT PIC Z(8)9 VALUE ZEROS. 05 FILLER PIC X(01) VALUE SPACES. PROCEDURE DIVISION. ACCEPT WS-SYSIPT. IF WS-SYSIPT = '* TAPE *' THEN MOVE 'T' TO DISK-TAPE. OPEN OUTPUT PRINTER. MOVE CURRENT-DATE TO H1-DATE. * PERFORM HEADING-RTN THRU HEADING-RTN-EXIT. PERFORM OPEN-FILE-RTN THRU OPEN-FILE-EXIT. PERFORM READ-INPUT-RTN THRU READ-INPUT-EXIT. MOVE LAST-YYMMDD TO DL-YYMMDD. MOVE RECIN-CNT TO DL-TRAN-CNT. WRITE PRINT-REC FROM DATE-LIST AFTER ADVANCING 1 LINE. MOVE TRAN-TOT TO DT-MONTH-TOT. WRITE PRINT-REC FROM DATE-TOTAL AFTER ADVANCING 1 LINE. GO TO NORMAL-EOJ. OPEN-FILE-RTN. IF TAPE-INPUT THEN OPEN INPUT TAPE-FILE ELSE OPEN INPUT VSAM-FILE IF VSAM-STATUS NOT = 0 MOVE 'OPEN' TO ERROR-ACTION GO TO ERROR-RTN. OPEN-FILE-EXIT. EXIT. READ-INPUT-RTN. IF DISK-INPUT THEN MOVE LOW-VALUES TO VSAM-KEY PERFORM READ-VSAM-RTN THRU READ-VSAM-EXIT MOVE VSAM-YYMMDD TO LAST-YYMMDD, DL-YYMMDD PERFORM PROCESS-VSAM-RTN THRU PROCESS-VSAM-EXIT UNTIL EOF ELSE PERFORM READ-TAPE-RTN THRU READ-TAPE-EXIT MOVE TAPE-YYMMDD TO LAST-YYMMDD, DL-YYMMDD PERFORM PROCESS-TAPE-RTN THRU PROCESS-TAPE-EXIT UNTIL EOF. READ-INPUT-EXIT. EXIT. READ-VSAM-RTN. READ VSAM-FILE NEXT RECORD AT END MOVE 'Y' TO EOF-FLAG GO TO READ-VSAM-EXIT. IF VSAM-STATUS NOT = 0 MOVE 'READ' TO ERROR-ACTION GO TO ERROR-RTN. * IF VSAM-READ-CNT > 1 THEN * MOVE 'Y' TO EOF-FLAG * GO TO READ-VSAM-EXIT. IF VSAM-YYMMDD NOT NUMERIC THEN GO TO READ-VSAM-RTN. ADD +1 TO VSAM-READ-CNT. READ-VSAM-EXIT. EXIT. PROCESS-VSAM-RTN. * EXHIBIT NAMED VSAM-YYMMDD, * VSAM-HHMMSSS. IF VSAM-YYMMDD NOT = LAST-YYMMDD PERFORM CHECK-MONTH-RTN THRU CHECK-MONTH-EXIT MOVE RECIN-CNT TO DL-TRAN-CNT WRITE PRINT-REC FROM DATE-LIST AFTER ADVANCING 1 LINE ADD RECIN-CNT TO TRAN-TOT MOVE +0 TO RECIN-CNT MOVE VSAM-YYMMDD TO LAST-YYMMDD. MOVE VSAM-RTM-DETAIL-BUFFER TO IN-BUFFER PERFORM PROCESS-BUFFER-RTN THRU PROCESS-BUFFER-RTN-EXIT VARYING SUB1 FROM 1 BY 1 UNTIL SUB1 > 429. PERFORM READ-VSAM-RTN THRU READ-VSAM-EXIT. PROCESS-VSAM-EXIT. EXIT. CHECK-MONTH-RTN. MOVE DL-MM TO SAVE-MM. MOVE LAST-YYMMDD TO DL-YYMMDD. IF DL-MM NOT = SAVE-MM THEN MOVE TRAN-TOT TO DT-MONTH-TOT WRITE PRINT-REC FROM DATE-TOTAL AFTER ADVANCING 1 LINE MOVE +0 TO TRAN-TOT. CHECK-MONTH-EXIT. EXIT. READ-TAPE-RTN. READ TAPE-FILE AT END MOVE 'Y' TO EOF-FLAG GO TO READ-TAPE-EXIT. * IF VSAM-READ-CNT > 1 THEN * MOVE 'Y' TO EOF-FLAG * GO TO READ-TAPE-EXIT. IF TAPE-YYMMDD NOT NUMERIC THEN GO TO READ-TAPE-RTN. ADD +1 TO VSAM-READ-CNT. READ-TAPE-EXIT. EXIT. PROCESS-TAPE-RTN. * EXHIBIT NAMED TAPE-YYMMDD, * TAPE-HHMMSSS. * MOVE TAPE-RTM-DETAIL-BUFFER TO IN-BUFFER. MOVE TAPE-RTM-DETAIL-BUFFER TO IN-BUFFER. IF TAPE-YYMMDD NOT = LAST-YYMMDD MOVE LAST-YYMMDD TO DL-YYMMDD MOVE RECIN-CNT TO DL-TRAN-CNT WRITE PRINT-REC FROM DATE-LIST AFTER ADVANCING 1 LINE ADD RECIN-CNT TO TRAN-TOT MOVE +0 TO RECIN-CNT MOVE TAPE-YYMMDD TO LAST-YYMMDD. PERFORM PROCESS-BUFFER-RTN THRU PROCESS-BUFFER-RTN-EXIT VARYING SUB1 FROM 1 BY 1 UNTIL SUB1 > 429. PERFORM READ-TAPE-RTN THRU READ-TAPE-EXIT. PROCESS-TAPE-EXIT. EXIT. PROCESS-BUFFER-RTN. MOVE IN-TABLE (SUB1) TO IN-DETAIL. IF IN-START-TIME NOT NUMERIC THEN GO TO PROCESS-BUFFER-RTN-EXIT. ADD +1 TO RECIN-CNT. PROCESS-BUFFER-RTN-EXIT. EXIT. HEADING-RTN. * DISPLAY 'HEADING-RTN'. ADD +1 TO PAGE-CNT. MOVE PAGE-CNT TO H1-PAGE. WRITE PRINT-REC FROM HEADING-1 AFTER ADVANCING PAGE. WRITE PRINT-REC FROM HEADING-2 AFTER ADVANCING 1 LINE. WRITE PRINT-REC FROM DETAIL-HEADING-1 AFTER ADVANCING 2 LINES. WRITE PRINT-REC FROM DETAIL-HEADING-2 AFTER ADVANCING 1 LINES. MOVE SPACES TO PRINT-REC. WRITE PRINT-REC AFTER ADVANCING 1 LINE. MOVE +0 TO LINE-CNT. HEADING-RTN-EXIT. EXIT. ERROR-RTN. * DISPLAY 'ERROR-RTN.'. MOVE VSAM-STATUS TO ERROR-NO. DISPLAY ERROR-REC. NORMAL-EOJ. IF TAPE-INPUT THEN CLOSE TAPE-FILE ELSE CLOSE VSAM-FILE IF VSAM-STATUS NOT = 0 MOVE 'CLOSE' TO ERROR-ACTION PERFORM ERROR-RTN. MOVE 'EXCLUDE ENTRIES' TO COUNT-TYPE. MOVE ENTRY-CNT TO COUNT-UNPACK. DISPLAY COUNT-DETAIL. MOVE 'RECORDS' TO COUNT-TYPE. MOVE RECIN-CNT TO COUNT-UNPACK. DISPLAY COUNT-DETAIL. MOVE 'EXCLUDED' TO COUNT-TYPE. MOVE EXCLUDE-CNT TO COUNT-UNPACK. DISPLAY COUNT-DETAIL. MOVE 'SELECTED' TO COUNT-TYPE. MOVE SORT-RELEASE-CNT TO COUNT-UNPACK. DISPLAY COUNT-DETAIL. * MOVE 'WRITTEN' TO COUNT-TYPE. * MOVE OUTPUT-CNT TO COUNT-UNPACK. * DISPLAY COUNT-DETAIL. STOP RUN. /* /* /& * $$ EOJ