00001 IDENTIFICATION DIVISION. 01/29/02 00002 PROGRAM-ID. DTSBU931. DTSBU931 00003 AUTHOR. TRICOASTAL CONSULTING LTD. LV006 00004 DATE-WRITTEN. DECEMBER 1991. DTSBU931 00005 DATE-COMPILED. DTSBU931 00006 SKIP3 DTSBU931 00007 ***** DTSBU931 00008 * DTSBU931 00009 * FUNCTION: REFERENCE FILE INPUT/OUTPUT. DTSBU931 00010 * DTSBU931 00011 * DTSBU931 00012 * MODIFICATION LOG: DTSBU931 00013 * DTSBU931 00014 * 12/18/91 INITIAL DEVELOPMENT. DTSBU931 00015 * WORK ORDER: PROGRAMMER: TCL DTSBU931 00016 * DTSBU931 00017 * 09/30/1998 REVIEWED AND MODIFIED FOR DC. DTSBU931 00018 * REFERENCE: DC DEVELOPMENT PROGRAMMER: EHH DTSBU931 00019 * DTSBU931 00020 * MM/DD/YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DTSBU931 00021 * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DTSBU931 00022 * REFERENCE: XXXXXXXXXXXXXXX PROGRAMMER: XXX DTSBU931 00023 * DTSBU931 00024 * DTSBU931 00025 * DESCRIPTION: DTSBU931 00026 * DTSBU931 00027 * DTSBU931 PERFORMS ALL REQUIRED REFERENCE FILE DTSBU931 00028 * INPUT/OUTPUT. DTSBU931 00029 * DTSBU931 00030 * DTSBU931 00031 * GENERAL SPECIFICATIONS: DTSBU931 00032 * DTSBU931 00033 * ALL COMMANDS ARE VALID. DTSBU931 00034 * DTSBU931 00035 * IF AN INVALID COMMAND IS REQUESTED, THEN ABEND THE DTSBU931 00036 * MODULE. DTSBU931 00037 * DTSBU931 00038 * IF A FILE-STATUS OF OTHER THAN '00', '10', OR '23' IS DTSBU931 00039 * ENCOUNTERED, THEN ABEND PROCESSING (TOLERATE A DTSBU931 00040 * FILE-STATUS OF '97' FROM AN OPEN COMMAND). DTSBU931 00041 * DTSBU931 00042 * DTSBU931 00043 * DTSBU931 00044 * COMMAND SPECIFIC SPECIFICATIONS: DTSBU931 00045 * DTSBU931 00046 * OPEN-READ DTSBU931 00047 * OPEN INPUT. DTSBU931 00048 * DTSBU931 00049 * OPEN-UPDATE DTSBU931 00050 * OPEN I-O. DTSBU931 00051 * DTSBU931 00052 * CLOSE DTSBU931 00053 * DTSBU931 00054 * READ DTSBU931 00055 * DTSBU931 00056 * START BROWSE DTSBU931 00057 * IF THE START-BROWSE IS SUCCESSFUL, THEN PERFORM THE DTSBU931 00058 * READ-NEXT LOGIC. A SUCCESSFUL START-BROWSE RETURNS DTSBU931 00059 * A RECORD. DTSBU931 00060 * DTSBU931 00061 * READ NEXT DTSBU931 00062 * RETURN L931-NO-REC-88 AT A BREAK IN REC-TYPE. DTSBU931 00063 * DTSBU931 00064 * WRITE DTSBU931 00065 * DTSBU931 00066 * REWRITE DTSBU931 00067 * DTSBU931 00068 * DELETE DTSBU931 00069 * DTSBU931 00070 * DTSBU931 00071 ***** DTSBU931 00072 SKIP3 DTSBU931 00073 ENVIRONMENT DIVISION. DTSBU931 00074 SKIP2 DTSBU931 00075 INPUT-OUTPUT SECTION. DTSBU931 00076 DTSBU931 00077 FILE-CONTROL. DTSBU931 00078 SELECT REF-FILE ASSIGN TO DTSFREF DTSBU931 00079 ORGANIZATION IS INDEXED DTSBU931 00080 RECORD KEY IS FSKL-KEY-AREA OF FILE-SKL-REC DTSBU931 00081 FILE STATUS IS FILE-STATUS DTSBU931 00082 ACCESS IS DYNAMIC. DTSBU931 00083 SKIP3 DTSBU931 00084 DATA DIVISION. DTSBU931 00085 SKIP3 DTSBU931 00086 FILE SECTION. DTSBU931 00087 SKIP3 DTSBU931 00088 FD REF-FILE. DTSBU931 00089 DTSBU931 00090 01 FILE-SKL-REC. DTSBU931 00091 ++INCLUDE DTSIFSKL DTSBU931 00092 SKIP3 DTSBU931 00093 01 FILE-VAR-REC. DTSBU931 00094 05 FILE-VAR-CHAR OCCURS 16 TO 768 TIMES DTSBU931 00095 DEPENDING ON VAR-CHAR-CNT DTSBU931 00096 PIC X(01). DTSBU931 00097 EJECT DTSBU931 00098 WORKING-STORAGE SECTION. DTSBU931 000985 77 PAN-VALET PICTURE X(24) VALUE '006DTSBU931 01/29/02'. DTSBU931 00099 SKIP3 DTSBU931 00100 01 WRK-AREA. DTSBU931 00101 05 WRK-ABEND-CD PIC S9(04) COMP VALUE +931.DTSBU931 00102 DTSBU931 00103 05 VAR-CHAR-CNT PIC S9(04) COMP. DTSBU931 00104 DTSBU931 00105 05 FILE-STATUS PIC X(02). DTSBU931 00106 88 FILE-OK-88 VALUE '00'. DTSBU931 00107 88 FILE-NO-REC-88 VALUE '10' '23'. DTSBU931 00108 88 FILE-VERIFY-88 VALUE '97'. DTSBU931 00109 DTSBU931 00110 05 WRK-REC-PREFIX PIC X(04). DTSBU931 00111 EJECT DTSBU931 00112 01 L991-LINK-AREA. DTSBU931 00113 ++INCLUDE DTSIL991 DTSBU931 00114 EJECT DTSBU931 00115 01 FLEN-LENGTH-LITERALS. DTSBU931 00116 ++INCLUDE DTSIFLEN DTSBU931 00117 EJECT DTSBU931 00118 LINKAGE SECTION. DTSBU931 00119 SKIP3 DTSBU931 00120 01 L931-LINK-AREA. DTSBU931 00121 ++INCLUDE DTSIL931 DTSBU931 00122 EJECT DTSBU931 00123 01 LINK-REC. DTSBU931 00124 05 FSKL-REC. DTSBU931 00125 ++INCLUDE DTSIFSKL DTSBU931 00126 EJECT DTSBU931 00127 PROCEDURE DIVISION USING L931-LINK-AREA DTSBU931 00128 LINK-REC. DTSBU931 00129 DTSBU931 00130 DTSBU931 00131 SET L931-OK-88 TO TRUE. DTSBU931 00132 DTSBU931 00133 IF L931-TRACE-88 DTSBU931 00134 PERFORM S9100-PRE-DISPLAY THRU S9100-EXIT. DTSBU931 00135 DTSBU931 00136 IF L931-READ-NEXT-88 DTSBU931 00137 PERFORM P2300-READ-NEXT THRU P2300-EXIT DTSBU931 00138 ELSE DTSBU931 00139 IF L931-READ-88 DTSBU931 00140 PERFORM P2100-READ THRU P2100-EXIT DTSBU931 00141 ELSE DTSBU931 00142 IF L931-START-BROWSE-88 DTSBU931 00143 PERFORM P2200-START-BROWSE THRU P2200-EXIT DTSBU931 00144 ELSE DTSBU931 00145 IF L931-WRITE-88 DTSBU931 00146 PERFORM P3100-WRITE THRU P3100-EXIT DTSBU931 00147 ELSE DTSBU931 00148 IF L931-REWRITE-88 DTSBU931 00149 PERFORM P3200-REWRITE THRU P3200-EXIT DTSBU931 00150 ELSE DTSBU931 00151 IF L931-DELETE-88 DTSBU931 00152 PERFORM P3300-DELETE THRU P3300-EXIT DTSBU931 00153 ELSE DTSBU931 00154 IF L931-OPEN-READ-88 DTSBU931 00155 OR DTSBU931 00156 L931-OPEN-UPDATE-88 DTSBU931 00157 PERFORM P1100-OPEN THRU P1100-EXIT DTSBU931 00158 ELSE DTSBU931 00159 IF L931-CLOSE-88 DTSBU931 00160 PERFORM P1200-CLOSE THRU P1200-EXIT DTSBU931 00161 ELSE DTSBU931 00162 PERFORM S999-ABEND THRU S999-EXIT. DTSBU931 00163 DTSBU931 00164 IF L931-TRACE-88 DTSBU931 00165 PERFORM S9200-POST-DISPLAY THRU S9200-EXIT. DTSBU931 00166 DTSBU931 00167 DTSBU931 00168 GOBACK. DTSBU931 00169 EJECT DTSBU931 00170 P1100-OPEN. DTSBU931 00171 IF L931-OPEN-UPDATE-88 DTSBU931 00172 OPEN I-O REF-FILE DTSBU931 00173 ELSE DTSBU931 00174 OPEN INPUT REF-FILE. DTSBU931 00175 DTSBU931 00176 IF FILE-OK-88 OR FILE-VERIFY-88 DTSBU931 00177 NEXT SENTENCE DTSBU931 00178 ELSE DTSBU931 00179 PERFORM S999-ABEND THRU S999-EXIT. DTSBU931 00180 P1100-EXIT. DTSBU931 00181 EXIT. DTSBU931 00182 SKIP3 DTSBU931 00183 P1200-CLOSE. DTSBU931 00184 CLOSE REF-FILE. DTSBU931 00185 DTSBU931 00186 IF FILE-OK-88 DTSBU931 00187 NEXT SENTENCE DTSBU931 00188 ELSE DTSBU931 00189 PERFORM S999-ABEND THRU S999-EXIT. DTSBU931 00190 P1200-EXIT. DTSBU931 00191 EXIT. DTSBU931 00192 EJECT DTSBU931 00193 P2100-READ. DTSBU931 00194 MOVE FSKL-KEY-AREA OF LINK-REC DTSBU931 00195 TO FSKL-KEY-AREA OF FILE-SKL-REC. DTSBU931 00196 DTSBU931 00197 READ REF-FILE. DTSBU931 00198 DTSBU931 00199 IF FILE-OK-88 DTSBU931 00200 PERFORM S2200-FILE-TO-LINK THRU S2200-EXIT DTSBU931 00201 ELSE DTSBU931 00202 IF FILE-NO-REC-88 DTSBU931 00203 PERFORM S1100-NO-REC THRU S1100-EXIT DTSBU931 00204 ELSE DTSBU931 00205 PERFORM S999-ABEND THRU S999-EXIT. DTSBU931 00206 P2100-EXIT. DTSBU931 00207 EXIT. DTSBU931 00208 EJECT DTSBU931 00209 P2200-START-BROWSE. DTSBU931 00210 MOVE FSKL-KEY-AREA OF LINK-REC DTSBU931 00211 TO FSKL-KEY-AREA OF FILE-SKL-REC. DTSBU931 00212 DTSBU931 00213 START REF-FILE DTSBU931 00214 KEY IS NOT < FSKL-KEY-AREA OF FILE-SKL-REC. DTSBU931 00215 DTSBU931 00216 IF FILE-OK-88 DTSBU931 00217 PERFORM P2300-READ-NEXT THRU P2300-EXIT DTSBU931 00218 ELSE DTSBU931 00219 IF FILE-NO-REC-88 DTSBU931 00220 PERFORM S1100-NO-REC THRU S1100-EXIT DTSBU931 00221 ELSE DTSBU931 00222 PERFORM S999-ABEND THRU S999-EXIT. DTSBU931 00223 P2200-EXIT. DTSBU931 00224 EXIT. DTSBU931 00225 EJECT DTSBU931 00226 P2300-READ-NEXT. DTSBU931 00227 READ REF-FILE NEXT. DTSBU931 00228 DTSBU931 00229 IF FILE-OK-88 DTSBU931 00230 IF FSKL-REC-TYPE OF FILE-SKL-REC DTSBU931 00231 = FSKL-REC-TYPE OF LINK-REC DTSBU931 00232 PERFORM S2200-FILE-TO-LINK THRU S2200-EXIT DTSBU931 00233 ELSE DTSBU931 00234 PERFORM S1100-NO-REC THRU S1100-EXIT DTSBU931 00235 ELSE DTSBU931 00236 IF FILE-NO-REC-88 DTSBU931 00237 PERFORM S1100-NO-REC THRU S1100-EXIT DTSBU931 00238 ELSE DTSBU931 00239 PERFORM S999-ABEND THRU S999-EXIT. DTSBU931 00240 P2300-EXIT. DTSBU931 00241 EXIT. DTSBU931 00242 EJECT DTSBU931 00243 P3100-WRITE. DTSBU931 00244 PERFORM S2100-LINK-TO-FILE THRU S2100-EXIT. DTSBU931 00245 DTSBU931 00246 WRITE FILE-VAR-REC. DTSBU931 00247 DTSBU931 00248 IF FILE-OK-88 DTSBU931 00249 NEXT SENTENCE DTSBU931 00250 ELSE DTSBU931 00251 PERFORM S999-ABEND THRU S999-EXIT. DTSBU931 00252 P3100-EXIT. DTSBU931 00253 EXIT. DTSBU931 00254 EJECT DTSBU931 00255 P3200-REWRITE. DTSBU931 00256 PERFORM S2100-LINK-TO-FILE THRU S2100-EXIT. DTSBU931 00257 DTSBU931 00258 REWRITE FILE-VAR-REC. DTSBU931 00259 DTSBU931 00260 IF FILE-OK-88 DTSBU931 00261 NEXT SENTENCE DTSBU931 00262 ELSE DTSBU931 00263 PERFORM S999-ABEND THRU S999-EXIT. DTSBU931 00264 P3200-EXIT. DTSBU931 00265 EXIT. DTSBU931 00266 EJECT DTSBU931 00267 P3300-DELETE. DTSBU931 00268 MOVE FSKL-KEY-AREA OF LINK-REC DTSBU931 00269 TO FSKL-KEY-AREA OF FILE-SKL-REC. DTSBU931 00270 DTSBU931 00271 DELETE REF-FILE. DTSBU931 00272 DTSBU931 00273 IF FILE-OK-88 DTSBU931 00274 NEXT SENTENCE DTSBU931 00275 ELSE DTSBU931 00276 PERFORM S999-ABEND THRU S999-EXIT. DTSBU931 00277 P3300-EXIT. DTSBU931 00278 EXIT. DTSBU931 00279 EJECT DTSBU931 00280 S1100-NO-REC. DTSBU931 00281 SET L931-NO-REC-88 TO TRUE. DTSBU931 00282 S1100-EXIT. DTSBU931 00283 EXIT. DTSBU931 00284 SKIP3 DTSBU931 00285 S2100-LINK-TO-FILE. DTSBU931 00286 PERFORM S2310-LINK-REC-LENGTH THRU S2310-EXIT. DTSBU931 00287 DTSBU931 00288 MOVE LINK-REC (1:VAR-CHAR-CNT) TO FILE-VAR-REC. DTSBU931 00289 SKIP2 DTSBU931 00290 S2100-EXIT. DTSBU931 00291 EXIT. DTSBU931 00292 EJECT DTSBU931 00293 S2200-FILE-TO-LINK. DTSBU931 00294 PERFORM S2320-FILE-REC-LENGTH THRU S2320-EXIT. DTSBU931 00295 DTSBU931 00296 MOVE FILE-VAR-REC TO LINK-REC (1:VAR-CHAR-CNT). DTSBU931 00297 S2200-EXIT. DTSBU931 00298 EXIT. DTSBU931 00299 EJECT DTSBU931 00300 S2310-LINK-REC-LENGTH. DTSBU931 00301 IF (FSKL-REC-TYPE OF LINK-REC < +1) DTSBU931 00302 OR DTSBU931 00303 (FSKL-REC-TYPE OF LINK-REC > FLEN-MAX-REC-ID) DTSBU931 00304 PERFORM S999-ABEND THRU S999-EXIT. DTSBU931 00305 DTSBU931 00306 MOVE FLEN-REC-LEN (FSKL-REC-TYPE OF LINK-REC) DTSBU931 00307 TO VAR-CHAR-CNT. DTSBU931 00308 DTSBU931 00309 IF (VAR-CHAR-CNT < +1) DTSBU931 00310 OR DTSBU931 00311 (VAR-CHAR-CNT > FLEN-MAX-REC-LEN) DTSBU931 00312 PERFORM S999-ABEND THRU S999-EXIT. DTSBU931 00313 S2310-EXIT. DTSBU931 00314 EXIT. DTSBU931 00315 SKIP3 DTSBU931 00316 S2320-FILE-REC-LENGTH. DTSBU931 00317 IF (FSKL-REC-TYPE OF FILE-SKL-REC < +1) DTSBU931 00318 OR DTSBU931 00319 (FSKL-REC-TYPE OF FILE-SKL-REC > FLEN-MAX-REC-ID) DTSBU931 00320 PERFORM S999-ABEND THRU S999-EXIT. DTSBU931 00321 DTSBU931 00322 MOVE FLEN-REC-LEN (FSKL-REC-TYPE OF FILE-SKL-REC) DTSBU931 00323 TO VAR-CHAR-CNT. DTSBU931 00324 DTSBU931 00325 IF (VAR-CHAR-CNT < +1) DTSBU931 00326 OR DTSBU931 00327 (VAR-CHAR-CNT > FLEN-MAX-REC-LEN) DTSBU931 00328 PERFORM S999-ABEND THRU S999-EXIT. DTSBU931 00329 S2320-EXIT. DTSBU931 00330 EXIT. DTSBU931 00331 SKIP3 DTSBU931 00332 S9100-PRE-DISPLAY. DTSBU931 00333 DISPLAY ' '. DTSBU931 00334 DTSBU931 00335 DISPLAY ' '. DTSBU931 00336 DTSBU931 00337 DISPLAY '*** DTSBU931 PRE TRACE DISPLAY ***'. DTSBU931 00338 DTSBU931 00339 DISPLAY L931-MOD-NAME DTSBU931 00340 ' = L931-MOD-NAME'. DTSBU931 00341 DTSBU931 00342 DISPLAY L931-CMND-CD DTSBU931 00343 ' = L931-CMND-CD'. DTSBU931 00344 DTSBU931 00345 PERFORM S9300-REC-DISPLAY THRU S9300-EXIT. DTSBU931 00346 S9100-EXIT. DTSBU931 00347 EXIT. DTSBU931 00348 SKIP3 DTSBU931 00349 S9200-POST-DISPLAY. DTSBU931 00350 DISPLAY ' '. DTSBU931 00351 DTSBU931 00352 DISPLAY ' '. DTSBU931 00353 DTSBU931 00354 DISPLAY '*** DTSBU931 POST TRACE DISPLAY ***'. DTSBU931 00355 DTSBU931 00356 DISPLAY L931-RESULT-IND DTSBU931 00357 ' = L931-RESULT-IND'. DTSBU931 00358 DTSBU931 00359 PERFORM S9300-REC-DISPLAY THRU S9300-EXIT. DTSBU931 00360 S9200-EXIT. DTSBU931 00361 EXIT. DTSBU931 00362 SKIP3 DTSBU931 00363 S9300-REC-DISPLAY. DTSBU931 00364 DISPLAY ' '. DTSBU931 00365 DTSBU931 00366 IF (FSKL-REC-TYPE OF LINK-REC < +1) DTSBU931 00367 OR DTSBU931 00368 (FSKL-REC-TYPE OF LINK-REC > FLEN-MAX-REC-ID) DTSBU931 00369 MOVE SPACES TO WRK-REC-PREFIX DTSBU931 00370 ELSE DTSBU931 00371 MOVE FLEN-REC-PREFIX (FSKL-REC-TYPE OF LINK-REC) DTSBU931 00372 TO WRK-REC-PREFIX. DTSBU931 00373 DTSBU931 00374 IF WRK-REC-PREFIX = SPACES DTSBU931 00375 MOVE '????' TO WRK-REC-PREFIX. DTSBU931 00376 DTSBU931 00377 MOVE FLEN-MAX-KEY-LEN TO L991-REQ-CHAR-CNT. DTSBU931 00378 DTSBU931 00379 MOVE FSKL-KEY-AREA OF LINK-REC TO L991-REQ-AREA. DTSBU931 00380 DTSBU931 00381 PERFORM S991-HEX-FORMAT THRU S991-EXIT. DTSBU931 00382 DTSBU931 00383 DISPLAY 'REC TYPE = ' DTSBU931 00384 WRK-REC-PREFIX. DTSBU931 00385 DTSBU931 00386 DISPLAY 'KEY AREA = ' DTSBU931 00387 L991-REPLY-HEX-1-AREA. DTSBU931 00388 DTSBU931 00389 DISPLAY ' ' DTSBU931 00390 L991-REPLY-HEX-2-AREA. DTSBU931 00391 DTSBU931 00392 DISPLAY ' ' DTSBU931 00393 L991-REPLY-AN-AREA. DTSBU931 00394 S9300-EXIT. DTSBU931 00395 EXIT. DTSBU931 00396 EJECT DTSBU931 00397 S991-HEX-FORMAT. DTSBU931 00398 CALL 'DTSBU991' USING L991-LINK-AREA. DTSBU931 00399 S991-EXIT. DTSBU931 00400 EXIT. DTSBU931 00401 SKIP3 DTSBU931 00402 S999-ABEND. DTSBU931 00403 DISPLAY '*** I/O MODULE ABENDING'. DTSBU931 00404 DTSBU931 00405 DISPLAY '*** CMND-CD = ' L931-CMND-CD. DTSBU931 00406 DTSBU931 00407 DISPLAY '*** FILE-STATUS = ' FILE-STATUS. DTSBU931 00408 DTSBU931 00409 DISPLAY '*** CALLING MODULE = ' L931-MOD-NAME. DTSBU931 00410 DTSBU931 00411 PERFORM S9300-REC-DISPLAY THRU S9300-EXIT. DTSBU931 00412 DTSBU931 00413 CALL 'DTSBU999' USING WRK-ABEND-CD. DTSBU931 00414 S999-EXIT. DTSBU931 00415 EXIT. DTSBU931