00001 IDENTIFICATION DIVISION. 03/17/08 00002 PROGRAM-ID. DTSBA602. DTSBA602 00003 AUTHOR. NGC. LV001 00004 DATE-WRITTEN. FEBRUARY 2008. DTSBA602 00005 DATE-COMPILED. DTSBA602 00006 SKIP3 DTSBA602 00007 ***** DTSBA602 00008 * DTSBA602 00009 * FUNCTION: AUDIT ASSIGNMENTS: READ FLAT FILE CONTAINING DTSBA602 00010 * MFAS RECORDS OUTPUT BY DTSBR602, AND WRITE DTSBA602 00011 * TO MASTER FILE. DTSBA602 00012 * DTSBA602 00013 ***** DTSBA602 00014 SKIP3 DTSBA602 00015 ENVIRONMENT DIVISION. DTSBA602 00016 INPUT-OUTPUT SECTION. DTSBA602 00017 DTSBA602 00018 FILE-CONTROL. DTSBA602 00019 SELECT FAS-IN-FILE ASSIGN TO RPT602F3 DTSBA602 00020 FILE STATUS IS FAS-STATUS. DTSBA602 00021 DTSBA602 00022 SKIP2 DTSBA602 00023 DATA DIVISION. DTSBA602 00024 FILE SECTION. DTSBA602 00025 DTSBA602 00026 FD FAS-IN-FILE DTSBA602 00027 RECORDING MODE IS F. DTSBA602 00028 01 FAS-IN-REC PIC X(1064). DTSBA602 00029 DTSBA602 00030 SKIP3 DTSBA602 00031 EJECT DTSBA602 00032 WORKING-STORAGE SECTION. DTSBA602 000325 77 PAN-VALET PICTURE X(24) VALUE '001DTSBA602 03/17/08'. DTSBA602 00033 SKIP3 DTSBA602 00034 01 WRK-AREA. DTSBA602 00035 05 WRK-ABEND-CD PIC S9(04) COMP VALUE +602.DTSBA602 00036 05 ABEND-MSG PIC X(60). DTSBA602 00037 DTSBA602 00038 05 WRK-MOD-NAME PIC X(08) VALUE 'DTSBA602'.DTSBA602 00039 05 WRK-TRACE-IND PIC X(01) VALUE 'N'. DTSBA602 00040 DTSBA602 00041 05 FAS-STATUS PIC X(02). DTSBA602 00042 88 FAS-STATUS-OK-88 VALUE '00'. DTSBA602 00043 88 FAS-STATUS-EOF-88 VALUE '10'. DTSBA602 00044 DTSBA602 00045 05 WRK-ERROR-IND PIC X(01) VALUE 'N'. DTSBA602 00046 88 WRK-ERROR-YES-88 VALUE 'Y'. DTSBA602 00047 88 WRK-ERROR-NO-88 VALUE 'N'. DTSBA602 00048 DTSBA602 00049 05 WRK-FAS-IN-CNT PIC S9(07) COMP-3 VALUE +0. DTSBA602 00050 DTSBA602 00051 05 WRK-MFAS-OUT-CNT PIC S9(07) COMP-3 VALUE +0. DTSBA602 00052 DTSBA602 00053 05 WRK-ASSIGN-START-DATE PIC S9(09) COMP-3. DTSBA602 00054 05 WRK-ASSIGN-DUE-DATE PIC S9(09) COMP-3. DTSBA602 00055 DTSBA602 00056 05 WRK-ASSIGN-NO PIC 9(09) VALUE ZEROS. DTSBA602 00057 DTSBA602 00058 05 WRK-START-YRQ PIC S9(05) COMP-3. DTSBA602 00059 05 WRK-END-YRQ PIC S9(05) COMP-3. DTSBA602 00060 DTSBA602 00061 05 AMT-DISP1 PIC Z(08)9.99-. DTSBA602 00062 05 AMT-DISP2 PIC Z(08)9.99-. DTSBA602 00063 05 AMT-DISP3 PIC Z(08)9.99-. DTSBA602 00064 DTSBA602 00065 DTSBA602 00066 01 L001-LINK-AREA. DTSBA602 00067 ++INCLUDE DTSIL001 DTSBA602 00068 EJECT DTSBA602 00069 DTSBA602 00070 01 L910-LINK-AREA. DTSBA602 00071 ++INCLUDE DTSIL910 DTSBA602 00072 EJECT DTSBA602 00073 01 MSKL-REC. DTSBA602 00074 ++INCLUDE DTSIMSKL DTSBA602 00075 EJECT DTSBA602 00076 01 MHDR-REC. DTSBA602 00077 ++INCLUDE DTSIMHDR DTSBA602 00078 EJECT DTSBA602 00079 01 MPRF-REC. DTSBA602 00080 ++INCLUDE DTSIMPRF DTSBA602 00081 EJECT DTSBA602 00082 01 MFAS-REC. DTSBA602 00083 ++INCLUDE DTSIMFAS DTSBA602 00084 EJECT DTSBA602 00085 01 L921-LINK-AREA. DTSBA602 00086 ++INCLUDE DTSIL921 DTSBA602 00087 EJECT DTSBA602 00088 01 ISKL-REC. DTSBA602 00089 ++INCLUDE DTSIISKL DTSBA602 00090 EJECT DTSBA602 00091 01 L931-LINK-AREA. DTSBA602 00092 ++INCLUDE DTSIL931 DTSBA602 00093 EJECT DTSBA602 00094 01 FSKL-REC. DTSBA602 00095 ++INCLUDE DTSIFSKL DTSBA602 00096 DTSBA602 00097 01 FFAZ-REC. DTSBA602 00098 ++INCLUDE DTSIFFAZ DTSBA602 00099 DTSBA602 00100 01 L004-COMM-AREA. DTSBA602 00101 ++INCLUDE DTSIL004 DTSBA602 00102 EJECT DTSBA602 00103 PROCEDURE DIVISION. DTSBA602 00104 SKIP2 DTSBA602 00105 PERFORM I0000-INITIATE THRU I0000-EXIT. DTSBA602 00106 IF WRK-ERROR-NO-88 DTSBA602 00107 PERFORM P0000-PROCESS THRU P0000-EXIT DTSBA602 00108 PERFORM T0000-TERMINATE THRU T0000-EXIT DTSBA602 00109 END-IF. DTSBA602 00110 DTSBA602 00111 GOBACK. DTSBA602 00112 EJECT DTSBA602 00113 I0000-INITIATE. DTSBA602 00114 SKIP2 DTSBA602 00115 MOVE 'N' TO WRK-TRACE-IND. DTSBA602 00116 DTSBA602 00117 PERFORM I2000-OPEN-FILES-1 THRU I2000-EXIT. DTSBA602 00118 DTSBA602 00119 PERFORM I3000-READ-MHDR THRU I3000-EXIT. DTSBA602 00120 DTSBA602 00121 I0000-EXIT. DTSBA602 00122 EXIT. DTSBA602 00123 I2000-OPEN-FILES-1. DTSBA602 00124 MOVE WRK-TRACE-IND TO L910-TRACE-IND. DTSBA602 00125 DTSBA602 00126 MOVE WRK-MOD-NAME TO L910-MOD-NAME. DTSBA602 00127 DTSBA602 00128 OPEN INPUT FAS-IN-FILE. DTSBA602 00129 IF NOT FAS-STATUS-OK-88 DTSBA602 00130 DISPLAY 'CANNOT OPEN FAS FILE ' FAS-STATUS DTSBA602 00131 SET WRK-ERROR-YES-88 TO TRUE DTSBA602 00132 GO TO I2000-EXIT DTSBA602 00133 END-IF. DTSBA602 00134 DTSBA602 00135 PERFORM S910-OPEN-UPDATE THRU S910-EXIT. DTSBA602 00136 PERFORM S921-OPEN-UPDATE THRU S921-EXIT. DTSBA602 00137 PERFORM S931-OPEN-READ THRU S931-EXIT. DTSBA602 00138 DTSBA602 00139 I2000-EXIT. DTSBA602 00140 EXIT. DTSBA602 00141 DTSBA602 00142 I3000-READ-MHDR. DTSBA602 00143 MOVE LOW-VALUES TO MSKL-REC. DTSBA602 00144 MOVE +0 TO MSKL-EMP-NO. DTSBA602 00145 SET MSKL-HDR-88 TO TRUE. DTSBA602 00146 DTSBA602 00147 PERFORM S910-READ THRU S910-EXIT. DTSBA602 00148 IF L910-NO-REC-88 DTSBA602 00149 MOVE 'MHDR RECORD IS MISSING' DTSBA602 00150 TO ABEND-MSG DTSBA602 00151 PERFORM S999-ABEND THRU S999-EXIT DTSBA602 00152 END-IF. DTSBA602 00153 DTSBA602 00154 MOVE MSKL-REC TO MHDR-REC. DTSBA602 00155 DTSBA602 00156 MOVE MHDR-CURR-RUN-DATE TO L004-DATE. DTSBA602 00157 SET L004-FROM-DATE TO TRUE. DTSBA602 00158 PERFORM S004-EDIT-QTR THRU S004-EXIT. DTSBA602 00159 ADD +1 TO L004-ABS-QTR. DTSBA602 00160 SET L004-FROM-ABS TO TRUE. DTSBA602 00161 PERFORM S004-EDIT-QTR THRU S004-EXIT. DTSBA602 00162 MOVE L004-QTR-START-DATE TO WRK-ASSIGN-START-DATE DTSBA602 00163 L001-FED-8-DATE-9. DTSBA602 00164 DTSBA602 00165 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBA602 00166 ADD 90 TO L001-JUL-ABS-DAY. DTSBA602 00167 PERFORM S001-FROM-ABS-DAY THRU S001-EXIT. DTSBA602 00168 MOVE L001-FED-8-DATE-9 TO WRK-ASSIGN-DUE-DATE. DTSBA602 00169 DTSBA602 00170 ** START AND END QUARTERS SET IN BR602 FROM FSEL DTSBA602 00171 ** MOVE MHDR-CURR-RUN-DATE TO L001-FED-8-DATE-9. DTSBA602 00172 * MOVE L001-FED-8-YR TO L004-QTR-5-YR. DTSBA602 00173 * IF L001-FED-8-MO > 4 DTSBA602 00174 * SUBTRACT 1 FROM L004-QTR-5-YR DTSBA602 00175 * MOVE 1 TO L004-QTR-5-Q DTSBA602 00176 * MOVE L004-QTR-5-9 TO WRK-START-YRQ DTSBA602 00177 * MOVE 4 TO L004-QTR-5-Q DTSBA602 00178 * MOVE L004-QTR-5-9 TO WRK-END-YRQ DTSBA602 00179 * ELSE DTSBA602 00180 * SUBTRACT 2 FROM L004-QTR-5-YR DTSBA602 00181 * MOVE 1 TO L004-QTR-5-Q DTSBA602 00182 * MOVE L004-QTR-5-9 TO WRK-START-YRQ DTSBA602 00183 * MOVE 4 TO L004-QTR-5-Q DTSBA602 00184 * MOVE L004-QTR-5-9 TO WRK-END-YRQ DTSBA602 00185 ** END-IF. DTSBA602 00186 DTSBA602 00187 DISPLAY ' ASSIGN START DATE: ' WRK-ASSIGN-START-DATE. DTSBA602 00188 DISPLAY ' ASSIGN DUE DATE : ' WRK-ASSIGN-DUE-DATE. DTSBA602 00189 * DISPLAY ' START YRQ : ' WRK-START-YRQ. DTSBA602 00190 * DISPLAY ' END YRQ : ' WRK-END-YRQ. DTSBA602 00191 DTSBA602 00192 I3000-EXIT. DTSBA602 00193 EXIT. DTSBA602 00194 DTSBA602 00195 DTSBA602 00196 EJECT DTSBA602 00197 P0000-PROCESS. DTSBA602 00198 READ FAS-IN-FILE INTO MFAS-REC. DTSBA602 00199 IF FAS-STATUS-EOF-88 DTSBA602 00200 DISPLAY 'NO AUDIT ASSIGNMENTS TO PROCESS' DTSBA602 00201 GO TO P0000-EXIT DTSBA602 00202 END-IF. DTSBA602 00203 DTSBA602 00204 PERFORM DTSBA602 00205 UNTIL FAS-STATUS-EOF-88 DTSBA602 00206 OR WRK-ERROR-YES-88 DTSBA602 00207 ADD +1 TO WRK-FAS-IN-CNT DTSBA602 00208 PERFORM P1000-COMPLETE-MFAS THRU P1000-EXIT DTSBA602 00209 PERFORM P2000-WRITE-MFAS THRU P2000-EXIT DTSBA602 00210 READ FAS-IN-FILE INTO MFAS-REC DTSBA602 00211 END-PERFORM. DTSBA602 00212 DTSBA602 00213 P0000-EXIT. DTSBA602 00214 EXIT. DTSBA602 00215 DTSBA602 00216 P1000-COMPLETE-MFAS. DTSBA602 00217 IF MFAS-ASSIGN-NO > WRK-ASSIGN-NO DTSBA602 00218 MOVE MFAS-ASSIGN-NO TO WRK-ASSIGN-NO DTSBA602 00219 END-IF. DTSBA602 00220 DTSBA602 00221 ** MOVE WRK-START-YRQ TO MFAS-START-YRQ. DTSBA602 00222 ** MOVE WRK-END-YRQ TO MFAS-END-YRQ. DTSBA602 00223 MOVE WRK-ASSIGN-START-DATE TO MFAS-START-DATE. DTSBA602 00224 MOVE WRK-ASSIGN-DUE-DATE TO MFAS-DUE-DATE. DTSBA602 00225 MOVE MHDR-PRIOR-RUN-DATE TO MFAS-ESTB-DATE DTSBA602 00226 MFAS-CHNG-DATE. DTSBA602 00227 P1000-EXIT. DTSBA602 00228 EXIT. DTSBA602 00229 DTSBA602 00230 P2000-WRITE-MFAS. DTSBA602 00231 MOVE MFAS-REC TO MSKL-REC. DTSBA602 00232 PERFORM S910-WRITE THRU S910-EXIT. DTSBA602 00233 ADD +1 TO WRK-MFAS-OUT-CNT. DTSBA602 00234 DTSBA602 00235 P2000-EXIT. DTSBA602 00236 EXIT. DTSBA602 00237 DTSBA602 00238 DTSBA602 00239 T0000-TERMINATE. DTSBA602 00240 PERFORM T1000-UPDATE-HEADER THRU T1000-EXIT. DTSBA602 00241 DTSBA602 00242 DISPLAY ' '. DTSBA602 00243 DTSBA602 00244 DISPLAY '*** DTSBA602 TERMINATION STATISTICS ***'. DTSBA602 00245 DTSBA602 00246 DISPLAY ' '. DTSBA602 00247 DTSBA602 00248 DISPLAY 'R602 ASSIGNMENTS READ: ' DTSBA602 00249 WRK-FAS-IN-CNT. DTSBA602 00250 DISPLAY 'MFAS RECORDS WRITTEN: ' DTSBA602 00251 WRK-MFAS-OUT-CNT. DTSBA602 00252 DISPLAY 'LAST ASSIGNMENT NO: ' DTSBA602 00253 WRK-ASSIGN-NO. DTSBA602 00254 DTSBA602 00255 CLOSE FAS-IN-FILE. DTSBA602 00256 PERFORM S910-CLOSE THRU S910-EXIT. DTSBA602 00257 PERFORM S921-CLOSE THRU S921-EXIT. DTSBA602 00258 * PERFORM S931-CLOSE THRU S931-EXIT. DTSBA602 00259 DTSBA602 00260 T0000-EXIT. DTSBA602 00261 EXIT. DTSBA602 00262 DTSBA602 00263 T1000-UPDATE-HEADER. DTSBA602 00264 MOVE MHDR-KEY-AREA TO MSKL-KEY-AREA. DTSBA602 00265 DTSBA602 00266 PERFORM S910-READ THRU S910-EXIT. DTSBA602 00267 DTSBA602 00268 IF L910-NO-REC-88 DTSBA602 00269 MOVE 'LOGIC ERROR T1000-1' TO ABEND-MSG DTSBA602 00270 PERFORM S999-ABEND THRU S999-EXIT DTSBA602 00271 END-IF. DTSBA602 00272 DTSBA602 00273 MOVE MSKL-REC TO MHDR-REC. DTSBA602 00274 MOVE WRK-ASSIGN-NO TO MHDR-LAST-USED-ASSIGN-NO. DTSBA602 00275 MOVE MHDR-REC TO MSKL-REC. DTSBA602 00276 PERFORM S910-REWRITE THRU S910-EXIT. DTSBA602 00277 DTSBA602 00278 T1000-EXIT. DTSBA602 00279 EXIT. DTSBA602 00280 DTSBA602 00281 S001-FROM-FED-8. DTSBA602 00282 SET L001-FROM-FED-8 TO TRUE. DTSBA602 00283 GO TO S001-DATE. DTSBA602 00284 DTSBA602 00285 S001-FROM-ABS-DAY. DTSBA602 00286 SET L001-FROM-ABS-DAY TO TRUE. DTSBA602 00287 GO TO S001-DATE. DTSBA602 00288 DTSBA602 00289 S001-DATE. DTSBA602 00290 CALL 'DTSBU001' USING L001-LINK-AREA. DTSBA602 00291 S001-EXIT. DTSBA602 00292 EXIT. DTSBA602 00293 DTSBA602 00294 S004-EDIT-QTR. DTSBA602 00295 CALL 'DTSBU004' USING L004-COMM-AREA. DTSBA602 00296 DTSBA602 00297 S004-EXIT. DTSBA602 00298 EXIT. DTSBA602 00299 SKIP3 DTSBA602 00300 S910-OPEN-READ. DTSBA602 00301 SET L910-OPEN-READ-88 TO TRUE. DTSBA602 00302 GO TO S910-MSTR-IO. DTSBA602 00303 DTSBA602 00304 S910-OPEN-UPDATE. DTSBA602 00305 SET L910-OPEN-UPDATE-88 TO TRUE. DTSBA602 00306 GO TO S910-MSTR-IO. DTSBA602 00307 DTSBA602 00308 S910-OPEN-UPDATE-NO-AIX. DTSBA602 00309 SET L910-OPEN-UPDATE-NO-AIX-88 TO TRUE. DTSBA602 00310 GO TO S910-MSTR-IO. DTSBA602 00311 DTSBA602 00312 S910-READ. DTSBA602 00313 SET L910-READ-88 TO TRUE. DTSBA602 00314 GO TO S910-MSTR-IO. DTSBA602 00315 DTSBA602 00316 S910-START-BROWSE. DTSBA602 00317 SET L910-START-BROWSE-88 TO TRUE. DTSBA602 00318 GO TO S910-MSTR-IO. DTSBA602 00319 DTSBA602 00320 S910-READ-NEXT. DTSBA602 00321 SET L910-READ-NEXT-88 TO TRUE. DTSBA602 00322 GO TO S910-MSTR-IO. DTSBA602 00323 DTSBA602 00324 S910-COUNT. DTSBA602 00325 SET L910-COUNT-88 TO TRUE. DTSBA602 00326 GO TO S910-MSTR-IO. DTSBA602 00327 DTSBA602 00328 S910-REWRITE. DTSBA602 00329 SET L910-REWRITE-88 TO TRUE. DTSBA602 00330 GO TO S910-MSTR-IO. DTSBA602 00331 DTSBA602 00332 S910-WRITE. DTSBA602 00333 SET L910-WRITE-88 TO TRUE. DTSBA602 00334 GO TO S910-MSTR-IO. DTSBA602 00335 DTSBA602 00336 S910-DELETE. DTSBA602 00337 SET L910-DELETE-88 TO TRUE. DTSBA602 00338 GO TO S910-MSTR-IO. DTSBA602 00339 DTSBA602 00340 S910-CLOSE. DTSBA602 00341 SET L910-CLOSE-88 TO TRUE. DTSBA602 00342 GO TO S910-MSTR-IO. DTSBA602 00343 DTSBA602 00344 S910-MSTR-IO. DTSBA602 00345 CALL 'DTSBU910' USING L910-LINK-AREA DTSBA602 00346 MSKL-REC. DTSBA602 00347 S910-EXIT. DTSBA602 00348 EXIT. DTSBA602 00349 DTSBA602 00350 S921-OPEN-UPDATE. DTSBA602 00351 SET L921-OPEN-UPDATE-88 TO TRUE. DTSBA602 00352 GO TO S921-AIX-IO. DTSBA602 00353 DTSBA602 00354 S921-OPEN-READ. DTSBA602 00355 SET L921-OPEN-READ-88 TO TRUE. DTSBA602 00356 GO TO S921-AIX-IO. DTSBA602 00357 DTSBA602 00358 S921-CLOSE. DTSBA602 00359 SET L921-CLOSE-88 TO TRUE. DTSBA602 00360 GO TO S921-AIX-IO. DTSBA602 00361 DTSBA602 00362 S921-AIX-IO. DTSBA602 00363 CALL 'DTSBU921' USING L921-LINK-AREA DTSBA602 00364 ISKL-REC. DTSBA602 00365 S921-EXIT. DTSBA602 00366 EXIT. DTSBA602 00367 DTSBA602 00368 S931-OPEN-READ. DTSBA602 00369 SET L931-OPEN-READ-88 TO TRUE. DTSBA602 00370 GO TO S931-REF-IO. DTSBA602 00371 DTSBA602 00372 S931-CLOSE. DTSBA602 00373 SET L931-CLOSE-88 TO TRUE. DTSBA602 00374 GO TO S931-REF-IO. DTSBA602 00375 DTSBA602 00376 S931-REF-IO. DTSBA602 00377 CALL 'DTSBU931' USING L931-LINK-AREA DTSBA602 00378 FSKL-REC. DTSBA602 00379 S931-EXIT. DTSBA602 00380 EXIT. DTSBA602 00381 DTSBA602 00382 S999-ABEND. DTSBA602 00383 CALL 'DTSBU999' USING WRK-ABEND-CD. DTSBA602 00384 S999-EXIT. DTSBA602 00385 EXIT. DTSBA602