00001 IDENTIFICATION DIVISION. 09/12/25 00002 PROGRAM-ID. DTSCU072. DTSCU072 00003 AUTHOR. TRICOASTAL CONSULTING LTD. LV011 00004 DATE-WRITTEN. NOVEMBER 1991. DTSCU072 00005 DATE-COMPILED. DTSCU072 00006 SKIP3 DTSCU072 00007 ***** DTSCU072 00008 * DTSCU072 00009 * FUNCTION: ADDRESS EDIT. DTSCU072 00010 * DTSCU072 00011 * MODIFICATION LOG: DTSCU072 00012 * DTSCU072 00013 * 01/16/92 INITIAL DEVELOPMENT. DTSCU072 00014 * WORK ORDER: PROGRAMMER: JME DTSCU072 00015 * DTSCU072 00016 * 04/05/94 CONVERT TO MONTANA. DTSCU072 00017 * WORK ORDER: PROGRAMMER: RHC DTSCU072 00018 * DTSCU072 00019 * 02/08/95 REDUCE THE NUMBER OF ERROR MESSAGES GENERATED. DTSCU072 00020 * WORK ORDER: PROGRAMMER: RHC DTSCU072 00021 * DTSCU072 00022 * 09/18/95 FOREIGN ADDRESS LOGIC ADDED. DTSCU072 00023 * WORK ORDER: JR PROGRAMMER: EHH DTSCU072 00024 * DTSCU072 00025 * 10-20-95 NEW VERSION OF FINALST -- COPY MEMBER LENGTH DTSCU072 00026 * CHANGED, FIELDS MOVED AROUND, RENAMED, ETC. DTSCU072 00027 * ADDED COMM-AREA-LENGTH-FIELD, CHANGED CODE IN DTSCU072 00028 * S1000-LINK-TO-FINALIST TO USE IT. CHANGED CODE DTSCU072 00029 * IN P2120-FINALIST-RESULTS. DTSCU072 00030 * WORK ORDER: NONE PROGRAMMER: EHH DTSCU072 00031 * DTSCU072 00032 * 08/13/96 RECOMPILED FOR NEW VERSION OF FINALIST (REL 670). DTSCU072 00033 * REFERENCE RFP: NONE PROGRAMMER: MJA DTSCU072 00034 * DTSCU072 00035 * 08/20/97 RECOMPILED FOR NEW VERSION OF FINALIST (REL 680). DTSCU072 00036 * REFERENCE RFP: NONE PROGRAMMER: EHH DTSCU072 00037 * DTSCU072 00038 * 12/30/97 INITIALIZE FINAL-FIRMCORR-OPT WITH A VALUE OF DTSCU072 00039 * 'Y' AND FINAL-ALSLBL-OPT WITH A VALUE OF 'N'. DTSCU072 00040 * BATCH TESTING WITH CNFIGAAR INDICATES IN ORDER DTSCU072 00041 * TO FORCE THE ONLINE VERSION OF FINALIST TO YIELD DTSCU072 00042 * THE SAME RESULTS AS THE BATCH VERSION OF FINALIST `DTSCU072 00043 * WITH CNFIGAAR SPECIFIED THESE TWO OPTIONS MUST BE DTSCU072 00044 * SET AS INDICATED. THESE TWO OPTIONS WERE ADDED DTSCU072 00045 * TO FINALIST AFTER SYSTEM IMPLEMENTATION, BUT THE DTSCU072 00046 * MAINTENANCE PROGRAMMERS OVERLOOKED THEM. DTSCU072 00047 * REFERENCE RFP: TCL 214 PROGRAMMER: EHH DTSCU072 00048 * DTSCU072 00049 * 09/08/1998 FINALIST ORIENTED CODE COMMENTED OUT. LPFNCL01 DTSCU072 00050 * COPY MEMBER NOT AVAILABLE. AFTER LPFNCL01 DTSCU072 00051 * BECOMES AVAILABLE AND THE LINK TO FINALIST IS DTSCU072 00052 * WORKING, THIS MODULE MUST BE REVISITED. DTSCU072 00053 * REFERENCE: DC DEVELOPMENT PROGRAMMER: EHH DTSCU072 00054 * DTSCU072 00055 * 09/08/1999 FINALIST ORIENTED CODE UNCOMMENTED AND PROGRAM DTSCU072 00056 * RECOMPILED FOR RELEASE 700. LPFNCL01 TURNED DTSCU072 00057 * OUT TO BE UNCHANGED FROM 680 PROGRAMMER: TKT DTSCU072 00058 * DTSCU072 00059 * 09/20/2000 RECOMPILED FOR NEW VERSION(R720) OF FINALIST. DTSCU072 00060 * REFERENCE: DC DEVELOPMENT PROGRAMMER: ZL1 DTSCU072 00061 * DTSCU072 00062 * DTSCU072 00063 * 04/02/2002 RECOMPILED FOR NEW VERSION(R730) OF FINALIST. DTSCU072 00064 * REFERENCE: DC DEVELOPMENT PROGRAMMER: ZL1 DTSCU072 00065 * DTSCU072 00066 * 05/15/2017 UNCOMMENTED CODE FOR CHECKING CASS CERTIFICATION CL**2 00067 * REFERENCE: DC DEVELOPMENT PROGRAMMER: ZL1 CL**2 00068 * CL**2 00069 * 99/99/9999 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DTSCU072 00070 * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DTSCU072 00071 * REFERENCE: XXXXXXXXXXXXXXX PROGRAMMER: XXX DTSCU072 00072 * DTSCU072 00073 * DTSCU072 00074 * DESCRIPTION: DTSCU072 00075 * DTSCU072 00076 * EDIT AN ADDRESS. DTSCU072 00077 * DTSCU072 00078 * DTSCU072 00079 * SEE ISSUE STATEMENT 12, ISSUE STATEMENT 13, AND DTSCU072 00080 * THE 'FINALIST' MANUAL. DTSCU072 00081 * DTSCU072 00082 * SEE THE COMMENTS IN THE CODE. DTSCU072 00083 * DTSCU072 00084 * DTSCU072 00085 * 04/20/94 THE LOGIC PERMITTING A BLANK DELIVERY LINE DTSCU072 00086 * (IF L072-NAME IS A VALID FIRM NAME) IS DTSCU072 00087 * SUPPRESSED. DTSCU072 00088 * DTSCU072 00089 * STATUS UNIT WORKERS INDICATE THEY "NEVER" DTSCU072 00090 * ENCOUNTER A BLANK DELIVERY LINE. DTSCU072 00091 * DTSCU072 00092 ***** DTSCU072 00093 SKIP3 DTSCU072 00094 ENVIRONMENT DIVISION. DTSCU072 00095 SKIP3 DTSCU072 00096 DATA DIVISION. DTSCU072 00097 SKIP3 DTSCU072 00098 WORKING-STORAGE SECTION. DTSCU072 000985 77 PAN-VALET PICTURE X(24) VALUE '011DTSCU072 09/12/25'. DTSCU072 00099 77 PAN-VALET PICTURE X(24) VALUE '023DTSCU072 05/15/02'. DTSCU072 00100 SKIP3 DTSCU072 00101 01 WRK-AREA. DTSCU072 00102 05 WRK-ABEND-CODE PIC X(04) VALUE 'U072'. DTSCU072 00103 DTSCU072 00104 05 WRK-RESP-CODE PIC S9(08) COMP. DTSCU072 00105 SKIP3 DTSCU072 00106 01 FC-FINALIST-RETURN-CODES. DTSCU072 00107 05 FC-REASON-CODES. DTSCU072 00108 10 FC-REASON-CODE1 PIC 9(01). DTSCU072 00109 88 FC-ZIP-VERIF-88 VALUE 0 . DTSCU072 00110 88 FC-ZIP-GUESSED-88 VALUE 4 . DTSCU072 00111 88 FC-ZIP-FIXED-88 VALUE 5 6 7 . DTSCU072 00112 88 FC-ZIP-RETURNED-88 VALUE 1 . DTSCU072 00113 88 FC-ZIP-BYPASSED-88 VALUE 2 3 . DTSCU072 00114 88 FC-ZIP-BAD-88 VALUE 9. DTSCU072 00115 10 FC-REASON-CODE2 PIC 9(01). DTSCU072 00116 88 FC-CITY-VERIF-88 VALUE 0 . DTSCU072 00117 88 FC-CITY-VANITY-88 VALUE 7 . DTSCU072 00118 88 FC-CITY-STANDARD-88 VALUE 2 3 . DTSCU072 00119 88 FC-CITY-GUESSED-88 VALUE 6 . DTSCU072 00120 88 FC-CITY-FIXED-88 VALUE 5 . DTSCU072 00121 88 FC-CITY-RETURNED-88 VALUE 1 . DTSCU072 00122 88 FC-CITY-BYPASSED-88 VALUE 4 . DTSCU072 00123 88 FC-CITY-BAD-88 VALUE 9. DTSCU072 00124 10 FC-REASON-CODE3-CARRIER-ROUTE PIC 9(01). DTSCU072 00125 10 FC-REASON-CODE4-ZIP-PLUS-4 PIC 9(01). DTSCU072 00126 10 FC-REASON-CODE5 PIC 9(01). DTSCU072 00127 88 FC-STREET-VERIF-88 VALUE 0 . DTSCU072 00128 88 FC-STREET-STANDARD-88 VALUE 1 . DTSCU072 00129 88 FC-STREET-GUESSED-88 VALUE 2 3 4 6 . DTSCU072 00130 88 FC-STREET-BAD-88 VALUE 9. DTSCU072 00131 10 FC-REASON-CODE6 PIC 9(01). DTSCU072 00132 88 FC-RANGE-VERIF-88 VALUE 0 . DTSCU072 00133 88 FC-RANGE-GUESSED-88 VALUE 4 . DTSCU072 00134 88 FC-RANGE-BAD-88 VALUE 1 2 3 9. DTSCU072 00135 10 FC-REASON-CODE7 PIC 9(01). DTSCU072 00136 88 FC-SUFDIR-VERIF-88 VALUE 0 . DTSCU072 00137 88 FC-SUFDIR-MULTI-88 VALUE 4 . DTSCU072 00138 88 FC-SUFDIR-FIXED-88 VALUE 1 2 3 . DTSCU072 00139 88 FC-SUFDIR-BAD-88 VALUE 9. DTSCU072 00140 05 FC-ADDRESS-INFO-CODES. DTSCU072 00141 10 FC-INFO-CODE1 PIC 9(01). DTSCU072 00142 10 FC-INFO-CODE2 PIC 9(01). DTSCU072 00143 10 FC-INFO-CODE3 PIC 9(01). DTSCU072 00144 10 FC-INFO-CODE4 PIC 9(01). DTSCU072 00145 88 FC-BOTH-ADDR-BAD-88 VALUE 9. DTSCU072 00146 10 FC-INFO-CODE5 PIC 9(01). DTSCU072 00147 10 FC-INFO-CODE678 PIC 9(03). DTSCU072 00148 SKIP3 DTSCU072 00149 01 MSG-AREAS. DTSCU072 00150 05 MSG-E081-AREA. DTSCU072 00151 10 MSG-E081-MSG-ID PIC X(04) VALUE 'E081'.DTSCU072 00152 10 MSG-E081-MSG-TXT. DTSCU072 00153 15 FILLER PIC X(25) DTSCU072 00154 VALUE 'FINALIST NOT AVAILABLE'. DTSCU072 00155 15 MSG-E081-CAERRMOD PIC X(08). DTSCU072 00156 15 FILLER PIC X(02) VALUE SPACES.DTSCU072 00157 15 MSG-E081-CAERRSRC PIC X(08). DTSCU072 00158 15 FILLER PIC X(02) VALUE SPACES.DTSCU072 00159 15 MSG-E081-CAERRDSC PIC X(09). DTSCU072 00160 15 FILLER PIC X(06) VALUE SPACES.DTSCU072 00161 05 MSG-E082-AREA. DTSCU072 00162 10 FILLER PIC X(21) VALUE 'E082FINALIST RESULT: '.DTSCU072 00163 10 FILLER PIC X(43) DTSCU072 00164 VALUE 'UNABLE TO DETERMINE ZIP PLUS FOUR'. DTSCU072 00165 05 MSG-E083-AREA. DTSCU072 00166 10 FILLER PIC X(21) VALUE 'E083FINALIST RESULT: '.DTSCU072 00167 10 FILLER PIC X(43) DTSCU072 00168 VALUE 'ZIP CODE FAILED'. DTSCU072 00169 05 MSG-E084-AREA. DTSCU072 00170 10 FILLER PIC X(21) VALUE 'E084FINALIST RESULT: '.DTSCU072 00171 10 FILLER PIC X(43) DTSCU072 00172 VALUE 'CITY FAILED'. DTSCU072 00173 05 MSG-E085-AREA. DTSCU072 00174 10 FILLER PIC X(21) VALUE 'E085FINALIST RESULT: '.DTSCU072 00175 10 FILLER PIC X(43) DTSCU072 00176 VALUE 'STREET ADDRESS FAILED'. DTSCU072 00177 05 MSG-E086-AREA. DTSCU072 00178 10 FILLER PIC X(21) VALUE 'E086FINALIST RESULT: '.DTSCU072 00179 10 FILLER PIC X(43) DTSCU072 00180 VALUE 'ADDRESS FAILED'. DTSCU072 00181 05 MSG-E087-AREA. DTSCU072 00182 10 FILLER PIC X(21) VALUE 'E087FINALIST RESULT: '.DTSCU072 00183 10 FILLER PIC X(43) DTSCU072 00184 VALUE 'ADDRESS LINE LONGER THAN 40 CHARACTERS'. DTSCU072 00185 *****05 MSG-E08Y-AREA. DTSCU072 00186 ***** 10 FILLER PIC X(04) VALUE 'E08Y'. DTSCU072 00187 ***** 10 FILLER PIC X(60) DTSCU072 00188 ***** VALUE 'ILLEGAL NAME FORMAT FOUND ON MASTER FILE'. DTSCU072 00189 *****05 MSG-E08Z-AREA. DTSCU072 00190 ***** 10 FILLER PIC X(04) VALUE 'E08ZFINALIST RESULT: '.DTSCU072 00191 ***** 10 FILLER PIC X(43) DTSCU072 00192 ***** VALUE 'NON-FIRM NAME FOUND ON MASTER FILE'. DTSCU072 00193 EJECT DTSCU072 00194 01 C072-LITERALS. DTSCU072 00195 ++INCLUDE DTSIC072 DTSCU072 00196 SKIP3 DTSCU072 00197 ++INCLUDE LPFNCL01 DTSCU072 00198 EJECT DTSCU072 00199 01 CECD-LITERALS. DTSCU072 00200 ++INCLUDE DTSICECD DTSCU072 00201 EJECT DTSCU072 00202 LINKAGE SECTION. DTSCU072 00203 SKIP3 DTSCU072 00204 01 DFHCOMMAREA. DTSCU072 00205 ++INCLUDE DTSIL072 DTSCU072 00206 EJECT DTSCU072 00207 PROCEDURE DIVISION. DTSCU072 00208 DTSCU072 00209 *& NOTE: THE FOLLOWING LINE DISABLES CASS CERTIFICATION. DTSCU072 00210 *& IT MUST BE REMOVED WHEN FINALIST IS AVAILABLE. DTSCU072 00211 DTSCU072 00212 SET L072-NO-CASS-EDITS-88 TO TRUE. CL**9 00213 CL**9 00214 PERFORM I1000-INITIALIZE THROUGH I1000-EXIT. DTSCU072 00215 DTSCU072 00216 MOVE L072-ST TO C072-ST. DTSCU072 00217 IF C072-DC-88 DTSCU072 00218 PERFORM P2000-US-ADDRESS THRU P2000-EXIT DTSCU072 00219 ELSE DTSCU072 00220 IF C072-US-88 DTSCU072 00221 PERFORM P2000-US-ADDRESS THRU P2000-EXIT DTSCU072 00222 ELSE DTSCU072 00223 IF C072-CANADA-88 DTSCU072 00224 PERFORM P1000-CANADA-ADDRESS THRU P1000-EXIT DTSCU072 00225 ELSE DTSCU072 00226 IF C072-FOREIGN-88 DTSCU072 00227 PERFORM P3000-FOREIGN-ADDRESS THRU P3000-EXIT DTSCU072 00228 ELSE DTSCU072 00229 SET L072-ST-NOT-VALID-88 TO TRUE DTSCU072 00230 IF L072-ST = SPACE OR LOW-VALUE DTSCU072 00231 MOVE EMSG-FIELD-REQUIRED TO L072-MSG-AREA DTSCU072 00232 ELSE DTSCU072 00233 MOVE EMSG-FIELD-NOT-VALID TO L072-MSG-AREA. DTSCU072 00234 DTSCU072 00235 IF L072-MSG-ID NOT = SPACE DTSCU072 00236 SET L072-ADDRESS-NOT-VALID-88 TO TRUE. DTSCU072 00237 DTSCU072 00238 IF L072-ADDRESS-NOT-VALID-88 DTSCU072 00239 NEXT SENTENCE DTSCU072 00240 ELSE DTSCU072 00241 IF L072-DELIV-LINE-1-NOT-VALID-88 DTSCU072 00242 OR L072-DELIV-LINE-2-NOT-VALID-88 DTSCU072 00243 OR L072-CITY-NOT-VALID-88 DTSCU072 00244 OR L072-ST-NOT-VALID-88 DTSCU072 00245 OR L072-ZIP-NOT-VALID-88 DTSCU072 00246 SET L072-ADDRESS-NOT-VALID-88 TO TRUE DTSCU072 00247 ELSE DTSCU072 00248 IF L072-DELIV-LINE-1-CHANGED-88 DTSCU072 00249 OR L072-DELIV-LINE-2-CHANGED-88 DTSCU072 00250 OR L072-CITY-CHANGED-88 DTSCU072 00251 OR L072-ST-CHANGED-88 DTSCU072 00252 OR L072-ZIP-CHANGED-88 DTSCU072 00253 SET L072-ADDRESS-CHANGED-88 TO TRUE. DTSCU072 00254 DTSCU072 00255 DTSCU072 00256 EXEC CICS DTSCU072 00257 RETURN DTSCU072 00258 END-EXEC. DTSCU072 00259 DTSCU072 00260 DTSCU072 00261 DTSCU072 00262 GOBACK. DTSCU072 00263 EJECT DTSCU072 00264 I1000-INITIALIZE. DTSCU072 00265 IF L072-NO-CASS-EDITS-88 DTSCU072 00266 NEXT SENTENCE DTSCU072 00267 ELSE DTSCU072 00268 SET L072-CASS-EDITS-88 TO TRUE. DTSCU072 00269 DTSCU072 00270 DTSCU072 00271 SET L072-NO-CASS-EDITS-88 TO TRUE. CL*10 00272 SET L072-ADDRESS-UNCHANGED-88 TO TRUE. DTSCU072 00273 DTSCU072 00274 DTSCU072 00275 SET L072-ATTN-LINE-UNCHANGED-88 TO TRUE. DTSCU072 00276 DTSCU072 00277 SET L072-DELIV-LINE-1-UNCHANGED-88 TO TRUE. DTSCU072 00278 DTSCU072 00279 SET L072-DELIV-LINE-2-UNCHANGED-88 TO TRUE. DTSCU072 00280 DTSCU072 00281 SET L072-CITY-UNCHANGED-88 TO TRUE. DTSCU072 00282 DTSCU072 00283 SET L072-ST-UNCHANGED-88 TO TRUE. DTSCU072 00284 DTSCU072 00285 SET L072-ZIP-UNCHANGED-88 TO TRUE. DTSCU072 00286 DTSCU072 00287 DTSCU072 00288 IF L072-ATTN-LINE = LOW-VALUES DTSCU072 00289 MOVE SPACES TO L072-ATTN-LINE. DTSCU072 00290 DTSCU072 00291 IF L072-DELIV-LINE-1 = LOW-VALUES DTSCU072 00292 MOVE SPACES TO L072-DELIV-LINE-1. DTSCU072 00293 DTSCU072 00294 IF L072-DELIV-LINE-2 = LOW-VALUES DTSCU072 00295 MOVE SPACES TO L072-DELIV-LINE-2. DTSCU072 00296 DTSCU072 00297 IF L072-CITY = LOW-VALUES DTSCU072 00298 MOVE SPACES TO L072-CITY. DTSCU072 00299 DTSCU072 00300 IF L072-ST = LOW-VALUES DTSCU072 00301 MOVE SPACES TO L072-ST. DTSCU072 00302 DTSCU072 00303 IF L072-ZIP = LOW-VALUES DTSCU072 00304 MOVE SPACES TO L072-ZIP. DTSCU072 00305 DTSCU072 00306 DTSCU072 00307 MOVE SPACES TO L072-ADVANCED-BARCODE DTSCU072 00308 L072-CASS-RETURN-CODES DTSCU072 00309 L072-MSG-AREA. DTSCU072 00310 DTSCU072 00311 DTSCU072 00312 MOVE L072-ST TO C072-ST. DTSCU072 00313 I1000-EXIT. DTSCU072 00314 EXIT. DTSCU072 00315 EJECT DTSCU072 00316 P1000-CANADA-ADDRESS. DTSCU072 00317 SET L072-NO-CASS-EDITS-88 TO TRUE. DTSCU072 00318 DTSCU072 00319 DTSCU072 00320 * IF (L072-ATTN-LINE NOT = SPACES) DTSCU072 00321 * AND DTSCU072 00322 * (L072-DELIV-LINE-1 NOT = SPACES) DTSCU072 00323 * AND DTSCU072 00324 * (L072-DELIV-LINE-2 NOT = SPACES) DTSCU072 00325 * MOVE EMSG-CROSS-EDIT TO L072-MSG-AREA DTSCU072 00326 * SET L072-ATTN-LINE-NOT-VALID-88 DTSCU072 00327 * L072-DELIV-LINE-1-NOT-VALID-88 DTSCU072 00328 * L072-DELIV-LINE-2-NOT-VALID-88 TO TRUE DTSCU072 00329 * GO TO P1000-EXIT. DTSCU072 00330 DTSCU072 00331 IF (L072-DELIV-LINE-1 NOT = SPACES) DTSCU072 00332 AND DTSCU072 00333 (L072-DELIV-LINE-2 = SPACES) DTSCU072 00334 MOVE L072-DELIV-LINE-1 TO L072-DELIV-LINE-2 DTSCU072 00335 MOVE SPACES TO L072-DELIV-LINE-1 DTSCU072 00336 SET L072-DELIV-LINE-1-CHANGED-88 DTSCU072 00337 L072-DELIV-LINE-2-CHANGED-88 TO TRUE. DTSCU072 00338 DTSCU072 00339 IF L072-DELIV-LINE-2 = SPACES DTSCU072 00340 MOVE EMSG-FIELD-REQUIRED TO L072-MSG-AREA DTSCU072 00341 SET L072-DELIV-LINE-2-NOT-VALID-88 TO TRUE DTSCU072 00342 GO TO P1000-EXIT. DTSCU072 00343 DTSCU072 00344 IF L072-CITY = SPACE DTSCU072 00345 MOVE EMSG-FIELD-REQUIRED TO L072-MSG-AREA DTSCU072 00346 SET L072-CITY-NOT-VALID-88 TO TRUE DTSCU072 00347 GO TO P1000-EXIT. DTSCU072 00348 DTSCU072 00349 * IF L072-ZIP = SPACES CL**7 00350 * MOVE EMSG-FIELD-REQUIRED TO L072-MSG-AREA CL**7 00351 * SET L072-ZIP-NOT-VALID-88 TO TRUE CL**7 00352 * GO TO P1000-EXIT. CL**7 00353 DTSCU072 00354 * IF L072-ZIP (1:1) NOT ALPHABETIC CL**6 00355 * OR L072-ZIP (2:1) NOT NUMERIC CL**6 00356 * OR L072-ZIP (3:1) NOT ALPHABETIC CL**6 00357 * OR L072-ZIP (4:1) NOT = SPACE CL**6 00358 * OR L072-ZIP (5:1) NOT NUMERIC CL**6 00359 * OR L072-ZIP (6:1) NOT ALPHABETIC CL**6 00360 * OR L072-ZIP (7:1) NOT NUMERIC CL**6 00361 * OR L072-ZIP (8:3) NOT = SPACE CL**6 00362 * SET L072-ZIP-NOT-VALID-88 TO TRUE CL**6 00363 * MOVE EMSG-FIELD-NOT-VALID TO L072-MSG-AREA. CL**6 00364 P1000-EXIT. DTSCU072 00365 EXIT. DTSCU072 00366 SKIP3 DTSCU072 00367 P2000-US-ADDRESS. DTSCU072 00368 * IF L072-CASS-EDITS-88 CL*10 00369 * PERFORM P2100-CASS THRU P2100-EXIT CL*10 00370 * ELSE CL*10 00371 SET L072-NO-CASS-EDITS-88 TO TRUE. CL*10 00372 PERFORM P2200-NO-CASS THRU P2200-EXIT. DTSCU072 00373 P2000-EXIT. DTSCU072 00374 EXIT. DTSCU072 00375 EJECT DTSCU072 00376 P2100-CASS. DTSCU072 00377 MOVE SPACE TO FINAL-ORIGINAL-RETURN-AREA DTSCU072 00378 FINAL-EXPANDED-RETURN-AREA. DTSCU072 00379 MOVE HIGH-VALUE TO FINAL-FILLER. DTSCU072 00380 DTSCU072 00381 MOVE '0' TO FINAL-FUNCTION-CODE. DTSCU072 00382 DTSCU072 00383 *-------------------------------------------------------------- DTSCU072 00384 * FINALIST ONLINE DOES NOT ACCEPT VALID CASS CONFIGURATIONS DTSCU072 00385 * (CONFIGXXX). HOWEVER, THE FOLLOWING CODE SETS THE DTSCU072 00386 * INDIVIDUAL TAILORING OPTIONS TO DUPLICATE (WHEN COMBINED DTSCU072 00387 * WITH LATER USE OF FUNCTION CODE EQUAL TO 5) THE DTSCU072 00388 * 'CNFIGAAR' CONFIGURATION. DTSCU072 00389 *-------------------------------------------------------------- DTSCU072 00390 MOVE 'X ' TO FINAL-FUNCTION-OPTION. DTSCU072 00391 MOVE 'Y' TO FINAL-UNIQUE-OPT. DTSCU072 00392 MOVE 'Y' TO FINAL-STRTPHON-OPT. DTSCU072 00393 MOVE 'Y' TO FINAL-FIRMCORR-OPT. DTSCU072 00394 MOVE 'Y' TO FINAL-CITYPHON-OPT. DTSCU072 00395 MOVE 'N' TO FINAL-WEIGHT-OPT. DTSCU072 00396 MOVE 'Y' TO FINAL-ZIPCORR-OPT. DTSCU072 00397 MOVE 'Y' TO FINAL-CITYCORR-OPT. DTSCU072 00398 MOVE 'N' TO FINAL-STRCOSM-OPT. DTSCU072 00399 MOVE 'Y' TO FINAL-FRMPRS-OPT. DTSCU072 00400 MOVE 'Y' TO FINAL-UNITDES-OPT. DTSCU072 00401 MOVE 'Y' TO FINAL-CTYLONG-OPT. DTSCU072 00402 MOVE 'N' TO FINAL-ALSLBL-OPT. DTSCU072 00403 MOVE 'LPFNMODC' TO CAMODNAM. DTSCU072 00404 DTSCU072 00405 PERFORM S1000-LINK-TO-FINALIST THROUGH S1000-EXIT. DTSCU072 00406 DTSCU072 00407 IF FINAL-RETURN-CODE1 = 'E' DTSCU072 00408 PERFORM P2110-FINALIST-ABEND THROUGH P2110-EXIT DTSCU072 00409 GO TO P2100-EXIT. DTSCU072 00410 DTSCU072 00411 MOVE SPACES TO FINAL-INPUT-ADDR-AREA. DTSCU072 00412 DTSCU072 00413 IF L072-DELIV-LINE-1 > SPACES DTSCU072 00414 MOVE L072-DELIV-LINE-1 TO USER-INPUT-ADDRESS-1. DTSCU072 00415 DTSCU072 00416 * IF L072-DELIV-LINE = SPACE DTSCU072 00417 * IF L072-MOPO-88 DTSCU072 00418 * OR L072-FFID-88 DTSCU072 00419 * SET L071-FROM-LAST-NAME-FIRST TO TRUE DTSCU072 00420 * MOVE L072-NAME TO L071-NAM DTSCU072 00421 * PERFORM S071-NAME-CONVERT THROUGH S071-EXIT DTSCU072 00422 * IF L071-NAME-CONVERTED DTSCU072 00423 * MOVE L071-NAM TO USER-INPUT-ADDRESS-2 DTSCU072 00424 * ELSE DTSCU072 00425 * SET L072-DELIV-LINE-NOT-VALID-88 TO TRUE DTSCU072 00426 * MOVE MSG-E08Y-AREA TO L072-MSG-AREA DTSCU072 00427 * GO TO P2100-EXIT DTSCU072 00428 * ELSE DTSCU072 00429 * MOVE L072-NAME TO USER-INPUT-ADDRESS-2 DTSCU072 00430 * ELSE DTSCU072 00431 * MOVE L072-DELIV-LINE TO USER-INPUT-ADDRESS-2. DTSCU072 00432 * IF L072-DELIV-LINE = SPACE DTSCU072 00433 * SET L072-DELIV-LINE-NOT-VALID-88 TO TRUE DTSCU072 00434 * MOVE EMSG-FIELD-REQUIRED TO L072-MSG-AREA DTSCU072 00435 * GO TO P2100-EXIT DTSCU072 00436 * ELSE DTSCU072 00437 * MOVE L072-DELIV-LINE TO USER-INPUT-ADDRESS-2. DTSCU072 00438 * DTSCU072 00439 * MOVE SPACES TO USER-INPUT-CSZ-AREA. DTSCU072 00440 DTSCU072 00441 MOVE L072-DELIV-LINE-2 TO USER-INPUT-ADDRESS-2. DTSCU072 00442 DTSCU072 00443 * STRING L072-CITY ' ' L072-ST DTSCU072 00444 * DELIMITED BY ' ' DTSCU072 00445 * INTO USER-INPUT-CITY-STATE. DTSCU072 00446 DTSCU072 00447 MOVE L072-CITY TO USER-INPUT-CITY-STATE (1:25). DTSCU072 00448 MOVE L072-ST TO USER-INPUT-CITY-STATE (28:2). DTSCU072 00449 DTSCU072 00450 MOVE L072-ZIP TO USER-INPUT-ZIP. DTSCU072 00451 MOVE L072-ZIP (7:4) TO USER-INPUT-SEC-SEG. DTSCU072 00452 DTSCU072 00453 MOVE '5' TO FINAL-FUNCTION-CODE. DTSCU072 00454 PERFORM S1000-LINK-TO-FINALIST THROUGH S1000-EXIT. DTSCU072 00455 IF FINAL-RETURN-CODE1 = 'E' DTSCU072 00456 PERFORM P2110-FINALIST-ABEND THROUGH P2110-EXIT DTSCU072 00457 GO TO P2100-EXIT. DTSCU072 00458 DTSCU072 00459 PERFORM P2120-FINALIST-RESULTS THROUGH P2120-EXIT. DTSCU072 00460 IF L072-MSG-ID = SPACE DTSCU072 00461 PERFORM P2130-CHECK-FINALIST-CODES THROUGH P2130-EXIT. DTSCU072 00462 * IF L072-DELIV-LINE-NOT-VALID-88 DTSCU072 00463 *** WORKAROUND FOR FINALIST BUG: GENERAL DELIVERY W/ GARBAGE CITY DTSCU072 00464 * IF L072-DELIV-LINE = 'GENERAL DELIVERY' DTSCU072 00465 * SET L072-DELIV-LINE-UNCHANGED-88 TO TRUE DTSCU072 00466 * MOVE MSG-E084-AREA TO L072-MSG-AREA DTSCU072 00467 * SET L072-CITY-NOT-VALID-88 TO TRUE. DTSCU072 00468 DTSCU072 00469 IF L072-MSG-ID = SPACE DTSCU072 00470 IF FINAL-OUTSEL-BAD = 'Y' DTSCU072 00471 SET L072-ADDRESS-NOT-VALID-88 TO TRUE DTSCU072 00472 MOVE MSG-E086-AREA TO L072-MSG-AREA. DTSCU072 00473 DTSCU072 00474 * MOVE '9' TO FINAL-FUNCTION-CODE. DTSCU072 00475 * PERFORM S1000-LINK-TO-FINALIST THROUGH S1000-EXIT. DTSCU072 00476 * IF FINAL-RETURN-CODE1 = 'E' DTSCU072 00477 * PERFORM P2110-FINALIST-ABEND THROUGH P2110-EXIT. DTSCU072 00478 DTSCU072 00479 P2100-EXIT. DTSCU072 00480 EXIT. DTSCU072 00481 SKIP3 DTSCU072 00482 P2110-FINALIST-ABEND. DTSCU072 00483 SET L072-ADDRESS-NOT-VALID-88 TO TRUE. DTSCU072 00484 DTSCU072 00485 MOVE CAERRMOD TO MSG-E081-CAERRMOD. DTSCU072 00486 MOVE CAERRSRC TO MSG-E081-CAERRSRC. DTSCU072 00487 MOVE CAERRDSC TO MSG-E081-CAERRDSC. DTSCU072 00488 DTSCU072 00489 *****MOVE SPACES TO MSG-E081-CAERRMOD DTSCU072 00490 ***** MSG-E081-CAERRSRC DTSCU072 00491 ***** MSG-E081-CAERRDSC. DTSCU072 00492 DTSCU072 00493 MOVE MSG-E081-AREA TO L072-MSG-AREA. DTSCU072 00494 P2110-EXIT. DTSCU072 00495 EXIT. DTSCU072 00496 EJECT DTSCU072 00497 P2120-FINALIST-RESULTS. DTSCU072 00498 IF FINAL-LABEL-LENGTH1 > 40 DTSCU072 00499 MOVE MSG-E087-AREA TO L072-MSG-AREA DTSCU072 00500 SET L072-DELIV-LINE-1-NOT-VALID-88 TO TRUE DTSCU072 00501 ELSE DTSCU072 00502 IF L072-DELIV-LINE-1 > SPACES DTSCU072 00503 IF FINAL-LABEL-LENGTH1 > 0 DTSCU072 00504 MOVE EMSG-FIELD-NOT-ALLOWED TO L072-MSG-AREA DTSCU072 00505 SET L072-DELIV-LINE-1-NOT-VALID-88 TO TRUE DTSCU072 00506 ELSE DTSCU072 00507 MOVE SPACES TO L072-DELIV-LINE-1 DTSCU072 00508 ELSE DTSCU072 00509 IF L072-DELIV-LINE-1 = SPACES DTSCU072 00510 IF FINAL-LABEL-LENGTH1 > 0 DTSCU072 00511 MOVE FINAL-LABEL-LINE1 TO L072-DELIV-LINE-1 DTSCU072 00512 SET L072-DELIV-LINE-1-CHANGED-88 TO TRUE DTSCU072 00513 * SET L072-ATTN-DELIV-88 TO TRUE DTSCU072 00514 ELSE DTSCU072 00515 NEXT SENTENCE DTSCU072 00516 ELSE DTSCU072 00517 IF FINAL-LABEL-LENGTH1 > 0 DTSCU072 00518 MOVE FINAL-LABEL-LINE1 TO L072-DELIV-LINE-1 DTSCU072 00519 SET L072-DELIV-LINE-1-CHANGED-88 TO TRUE DTSCU072 00520 * SET L072-ATTN-DELIV-88 TO TRUE DTSCU072 00521 ELSE DTSCU072 00522 MOVE SPACES TO L072-DELIV-LINE-1 DTSCU072 00523 SET L072-DELIV-LINE-1-CHANGED-88 TO TRUE. DTSCU072 00524 * SET L072-ATTN-NONE-88 TO TRUE. DTSCU072 00525 DTSCU072 00526 IF FINAL-LABEL-LENGTH2 > 40 DTSCU072 00527 MOVE MSG-E087-AREA TO L072-MSG-AREA DTSCU072 00528 SET L072-DELIV-LINE-2-NOT-VALID-88 TO TRUE DTSCU072 00529 ELSE DTSCU072 00530 * IF L072-DELIV-LINE = SPACE DTSCU072 00531 * IF FINAL-MAIL-FIRM-NAME = SPACE DTSCU072 00532 * SET L072-DELIV-LINE-NOT-VALID-88 TO TRUE DTSCU072 00533 * MOVE MSG-E08Z-AREA TO L072-MSG-AREA DTSCU072 00534 * ELSE DTSCU072 00535 * NEXT SENTENCE DTSCU072 00536 * ELSE DTSCU072 00537 IF FINAL-LABEL-LINE2 NOT = L072-DELIV-LINE-2 DTSCU072 00538 MOVE FINAL-LABEL-LINE2 TO L072-DELIV-LINE-2 DTSCU072 00539 SET L072-DELIV-LINE-2-CHANGED-88 TO TRUE. DTSCU072 00540 DTSCU072 00541 IF FINAL-FULL-CITY-NAME NOT = L072-CITY DTSCU072 00542 MOVE FINAL-FULL-CITY-NAME TO L072-CITY DTSCU072 00543 SET L072-CITY-CHANGED-88 TO TRUE. DTSCU072 00544 DTSCU072 00545 IF FINAL-STATE NOT = L072-ST DTSCU072 00546 MOVE FINAL-STATE TO L072-ST DTSCU072 00547 SET L072-ST-CHANGED-88 TO TRUE. DTSCU072 00548 DTSCU072 00549 IF FINAL-ZIP NOT = L072-ZIP (1:5) DTSCU072 00550 MOVE FINAL-ZIP TO L072-ZIP (1:5) DTSCU072 00551 SET L072-ZIP-CHANGED-88 TO TRUE. DTSCU072 00552 DTSCU072 00553 IF FINAL-SEC-SEG = SPACE DTSCU072 00554 MOVE SPACE TO L072-ZIP (6:5) DTSCU072 00555 ELSE DTSCU072 00556 IF L072-ZIP (7:4) NOT = SPACE DTSCU072 00557 AND FINAL-SEC-SEG NOT = L072-ZIP (7:4) DTSCU072 00558 SET L072-ZIP-CHANGED-88 TO TRUE DTSCU072 00559 END-IF DTSCU072 00560 MOVE '-' TO L072-ZIP (6:1) DTSCU072 00561 MOVE FINAL-SEC-SEG TO L072-ZIP (7:4). DTSCU072 00562 DTSCU072 00563 STRING FINAL-RETURN-CODE1 DELIMITED BY SIZE DTSCU072 00564 '-' DELIMITED BY SIZE DTSCU072 00565 FINAL-REASON-CODES (1:9) DELIMITED BY SIZE DTSCU072 00566 '-' DELIMITED BY SIZE DTSCU072 00567 FINAL-ADDRESS-INFO-CODES (1:6) DELIMITED BY SIZE DTSCU072 00568 INTO L072-CASS-RETURN-CODES. DTSCU072 00569 DTSCU072 00570 MOVE FINAL-ADVANCED-BARCODE TO L072-ADVANCED-BARCODE. DTSCU072 00571 P2120-EXIT. DTSCU072 00572 EXIT. DTSCU072 00573 EJECT DTSCU072 00574 P2130-CHECK-FINALIST-CODES. DTSCU072 00575 MOVE FINAL-REASON-CODES TO FC-REASON-CODES. DTSCU072 00576 MOVE FINAL-ADDRESS-INFO-CODES TO FC-ADDRESS-INFO-CODES. DTSCU072 00577 DTSCU072 00578 IF FC-STREET-BAD-88 DTSCU072 00579 OR FC-RANGE-BAD-88 DTSCU072 00580 OR FC-SUFDIR-BAD-88 DTSCU072 00581 MOVE MSG-E085-AREA TO L072-MSG-AREA DTSCU072 00582 SET L072-DELIV-LINE-2-NOT-VALID-88 TO TRUE DTSCU072 00583 GO TO P2130-EXIT. DTSCU072 00584 DTSCU072 00585 IF FC-CITY-BYPASSED-88 DTSCU072 00586 OR FC-CITY-BAD-88 DTSCU072 00587 MOVE MSG-E084-AREA TO L072-MSG-AREA DTSCU072 00588 SET L072-CITY-NOT-VALID-88 TO TRUE DTSCU072 00589 GO TO P2130-EXIT. DTSCU072 00590 DTSCU072 00591 IF FC-ZIP-BYPASSED-88 DTSCU072 00592 OR FC-ZIP-BAD-88 DTSCU072 00593 MOVE MSG-E083-AREA TO L072-MSG-AREA DTSCU072 00594 SET L072-ZIP-NOT-VALID-88 TO TRUE DTSCU072 00595 GO TO P2130-EXIT. DTSCU072 00596 DTSCU072 00597 IF FC-BOTH-ADDR-BAD-88 DTSCU072 00598 MOVE MSG-E086-AREA TO L072-MSG-AREA DTSCU072 00599 SET L072-DELIV-LINE-2-NOT-VALID-88 TO TRUE DTSCU072 00600 GO TO P2130-EXIT. DTSCU072 00601 DTSCU072 00602 IF FINAL-RETURN-CODE1 NOT = '0' DTSCU072 00603 IF FC-SUFDIR-MULTI-88 DTSCU072 00604 MOVE MSG-E085-AREA TO L072-MSG-AREA DTSCU072 00605 SET L072-DELIV-LINE-2-NOT-VALID-88 TO TRUE DTSCU072 00606 GO TO P2130-EXIT DTSCU072 00607 ELSE DTSCU072 00608 MOVE MSG-E082-AREA TO L072-MSG-AREA DTSCU072 00609 SET L072-ZIP-NOT-VALID-88 TO TRUE DTSCU072 00610 GO TO P2130-EXIT. DTSCU072 00611 P2130-EXIT. DTSCU072 00612 EXIT. DTSCU072 00613 EJECT DTSCU072 00614 P2200-NO-CASS. DTSCU072 00615 IF (L072-DELIV-LINE-1 NOT = SPACES) DTSCU072 00616 AND DTSCU072 00617 (L072-DELIV-LINE-2 = SPACES) DTSCU072 00618 MOVE L072-DELIV-LINE-1 TO L072-DELIV-LINE-2 DTSCU072 00619 MOVE SPACES TO L072-DELIV-LINE-1 DTSCU072 00620 SET L072-DELIV-LINE-1-CHANGED-88 DTSCU072 00621 L072-DELIV-LINE-2-CHANGED-88 TO TRUE. DTSCU072 00622 DTSCU072 00623 IF L072-DELIV-LINE-2 = SPACES DTSCU072 00624 MOVE EMSG-FIELD-REQUIRED TO L072-MSG-AREA DTSCU072 00625 SET L072-DELIV-LINE-2-NOT-VALID-88 TO TRUE DTSCU072 00626 GO TO P2200-EXIT. DTSCU072 00627 DTSCU072 00628 IF L072-CITY = SPACE DTSCU072 00629 MOVE EMSG-FIELD-REQUIRED TO L072-MSG-AREA DTSCU072 00630 SET L072-CITY-NOT-VALID-88 TO TRUE DTSCU072 00631 GO TO P2200-EXIT. DTSCU072 00632 DTSCU072 00633 * IF L072-ZIP = SPACES CL**5 00634 * MOVE EMSG-FIELD-REQUIRED TO L072-MSG-AREA CL**5 00635 * SET L072-ZIP-NOT-VALID-88 TO TRUE CL**5 00636 * GO TO P2200-EXIT. CL**5 00637 DTSCU072 00638 IF L072-ZIP (1:5) NOT NUMERIC CL**3 00639 * OR L072-ZIP (1:5) = '00000' CL**3 00640 MOVE EMSG-FIELD-NOT-VALID TO L072-MSG-AREA CL**3 00641 SET L072-ZIP-NOT-VALID-88 TO TRUE CL**3 00642 GO TO P2200-EXIT. CL**4 00643 CL**4 00644 IF L072-ZIP (7:4) = SPACES CL**4 00645 GO TO P2200-EXIT CL**4 00646 ELSE CL**4 00647 IF L072-ZIP (7:4) NOT NUMERIC CL**4 00648 MOVE EMSG-FIELD-NOT-VALID TO L072-MSG-AREA CL**3 00649 SET L072-ZIP-NOT-VALID-88 TO TRUE. CL**3 00650 * MOVE SPACE TO L072-ZIP (6:5) CL**3 00651 * SET L072-ZIP-CHANGED-88 TO TRUE. CL**3 00652 * IF L072-ZIP (1:5) NOT NUMERIC CL**3 00653 * OR L072-ZIP (1:5) = '00000' CL**3 00654 * MOVE EMSG-FIELD-NOT-VALID TO L072-MSG-AREA CL**3 00655 * SET L072-ZIP-NOT-VALID-88 TO TRUE CL**3 00656 * ELSE CL**3 00657 * IF L072-ZIP (6:5) NOT = SPACE CL**3 00658 * MOVE SPACE TO L072-ZIP (6:5) CL**3 00659 * SET L072-ZIP-CHANGED-88 TO TRUE. CL**3 00660 P2200-EXIT. DTSCU072 00661 EXIT. DTSCU072 00662 EJECT DTSCU072 00663 P3000-FOREIGN-ADDRESS. DTSCU072 00664 SET L072-NO-CASS-EDITS-88 TO TRUE. DTSCU072 00665 DTSCU072 00666 IF L072-ZIP = ALL '*' DTSCU072 00667 NEXT SENTENCE DTSCU072 00668 ELSE DTSCU072 00669 MOVE ALL '*' TO L072-ZIP DTSCU072 00670 SET L072-ZIP-CHANGED-88 TO TRUE. DTSCU072 00671 DTSCU072 00672 IF L072-DELIV-LINE-1 = SPACES DTSCU072 00673 SET L072-DELIV-LINE-1-NOT-VALID-88 TO TRUE DTSCU072 00674 MOVE EMSG-FIELD-REQUIRED TO L072-MSG-AREA DTSCU072 00675 GO TO P3000-EXIT. DTSCU072 00676 DTSCU072 00677 IF L072-DELIV-LINE-2 = SPACES DTSCU072 00678 SET L072-DELIV-LINE-2-NOT-VALID-88 TO TRUE DTSCU072 00679 MOVE EMSG-FIELD-REQUIRED TO L072-MSG-AREA DTSCU072 00680 GO TO P3000-EXIT. DTSCU072 00681 DTSCU072 00682 IF L072-CITY = SPACES DTSCU072 00683 SET L072-CITY-NOT-VALID-88 TO TRUE DTSCU072 00684 MOVE EMSG-FIELD-REQUIRED TO L072-MSG-AREA DTSCU072 00685 GO TO P3000-EXIT. DTSCU072 00686 P3000-EXIT. DTSCU072 00687 EXIT. DTSCU072 00688 EJECT DTSCU072 00689 S1000-LINK-TO-FINALIST. DTSCU072 00690 EXEC CICS DTSCU072 00691 LINK DTSCU072 00692 PROGRAM ('FINALOL') DTSCU072 00693 COMMAREA (FINAL-CALL-AREA) DTSCU072 00694 END-EXEC. DTSCU072 00695 S1000-EXIT. DTSCU072 00696 EXIT. DTSCU072 00697 SKIP3 DTSCU072 00698 ****************** S071-NAME-CONVERT NOT USED. DTSCU072 00699 *S071-NAME-CONVERT. DTSCU072 00700 * EXEC CICS DTSCU072 00701 * LINK DTSCU072 00702 * PROGRAM ('DTSCU071') DTSCU072 00703 * COMMAREA (L071-COMM-AREA) DTSCU072 00704 * END-EXEC. DTSCU072 00705 *S071-EXIT. DTSCU072 00706 * EXIT. DTSCU072 00707 ****************** S899-ABEND NOT USED. DTSCU072 00708 *S899-ABEND. DTSCU072 00709 * SKIP1 DTSCU072 00710 * EXEC CICS DTSCU072 00711 * ABEND DTSCU072 00712 * ABCODE (WRK-ABEND-CODE) DTSCU072 00713 * END-EXEC. DTSCU072 00714 * SKIP1 DTSCU072 00715 *S899-EXIT. DTSCU072 00716 * EXIT. DTSCU072