Está en la página 1de 14

IDENTIFICATION PROGRAM-ID. AUTHOR. DATE-WRITTEN.

DIVISION. DNUPP317. CGI. 21-AUG-2003.

* ****************************************************************** * FUNCTION: THE PROGRAM UPDATES CST-MASTER DATABASE IF END DATE* * IS SPACES OR GREATER THAN CURRENT DATE. CREATES OUTPUT FILES * * PRODUCTS WHICH ARE ERASED FROM THE CST-MASTER AND EXTRACT TO * * REFRESH THE NAVALIDCST TABLE. * ****************************************************************** * RECORD NAME RECD EXTN RETRIEVAL / UPDATE * * ----------------------- ----------* * RECORDS: MKT-PART -3527 UPDATE * ****************************************************************** * RECORD OR DDNAME DESCRIPTION * * -------------------------* * INPUT : INFILE * * OUTPUT : RECYCLE * * MASREPRT REASONF FOR NOT UPDATE. * ****************************************************************** * *---------------------------------------------------------------* HISTORY LOG * RELEASE/ * DATE TIVOLI # PGMR EXPLANATION * ------- -------- ---- -------------------------------------* 21AUG03 2UP250 CGI NEW * 04DEC03 2UP250 DPLP DISPLAY PROGRAM NAME; ADD HISTORY LOG; * CHANGE DEFINITION OF WS-CODE-RETURN & * GIVE IT MEANINGFUL VALUES *---------------------------------------------------------------EJECT ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INPUT-FILE SELECT CED-FILE ASSIGN TO INFILE. ASSIGN TO CEDFILE ORGANIZATION IS INDEXED ACCESS IS DYNAMIC RECORD KEY IS CED-KEY FILE STATUS IS VSAM-STATUS-CODE. ASSIGN TO CIDFILE ORGANIZATION IS INDEXED ACCESS IS DYNAMIC RECORD KEY IS CID-KEY FILE STATUS IS VSAM-STATUS-CODE. ASSIGN TO CIRFILE ORGANIZATION IS INDEXED ACCESS IS DYNAMIC RECORD KEY IS CIR-KEY ALTERNATE RECORD KEY IS CIR-ALT-KEY WITH DUPLICATES FILE STATUS IS VSAM-STATUS-CODE.

SELECT CID-FILE

SELECT CIR-FILE

SELECT OUTPUT-FILE ASSIGN TO OUTFILE. SELECT RECYCLE-FILE ASSIGN TO RECYCLE. SELECT NOCST-MATCH ASSIGN TO NOCST. IDMS-CONTROL SECTION. PROTOCOL. MODE IS BATCH-AUTOSTATUS DEBUG IDMS-RECORDS MANUAL. DATA DIVISION. SCHEMA SECTION. DB SSUPR001 WITHIN CASSCHEM. FILE SECTION. FD INPUT-FILE BLOCK CONTAINS 0 RECORDS LABEL RECORDS ARE STANDARD. 01 INPUT-RECORD. 05 IN-RECORD-ID 05 FILLER 05 IN-RECORD-TYPE 05 FILLER 05 IN-VAL-CAI 05 IN-VAL-CCI 05 IN-VAL-RPC 05 IN-VAL-MRC 05 IN-VAL-ASMB 05 IN-VAL-VEH 05 IN-VAL-TECH-HMLG-DATE 05 IN-VAL-START-DATE 05 FILLER 05 IN-VAL-FINAL-DATE 05 FILLER 05 IN-VAL-PRI-TYPE 05 IN-VAL-PRI-NUMBER 05 IN-VAL-CST 05 IN-VAL-US-OVERRIDE 05 IN-VAL-CA-OVERRIDE 05 IN-VAL-XL-OVERRIDE 05 FILLER FD CED-FILE BLOCK CONTAINS 0 RECORDS LABEL RECORDS ARE STANDARD. 01 CED-RECORD. 05 FILLER 05 CED-KEY. 10 CED-HMLG-C 10 CED-VEH-C 05 CED-DETAILS. 10 CED-ALT-KEY. 15 CED-CST-C 15 CED-PAYS-C 10 CED-CST-LIB 10 CED-CST-PERE-C 10 FILLER

PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC

X(02). X(01). X(04). X(01). X(06). X(05). X(04). X(05). X(04). X(03). X(08). X(08). X(02). X(08). X(02). X(01). X(05). X(04). X(01). X(01). X(01). X(04).

PIC X(04). PIC X(04). PIC X(03). PIC PIC PIC PIC PIC X(04). X(03). X(36). X(04). X(271).

10 10 10 10 10

CED-CRE-DATE CED-CRE-USER-ID CED-MAJ-DT CED-MAJ-USER-ID FILLER

PIC PIC PIC PIC PIC

X(10). X(08). X(10). X(08). X(135).

FD CID-FILE BLOCK CONTAINS 0 RECORDS LABEL RECORDS ARE STANDARD. 01 CID-RECORD. 05 FILLER 05 CID-KEY. 10 CID-CST-C 05 CID-DETAILS. 10 CID-CST-LIB 10 CID-HMLG-CSTR-C 10 CID-PAYS-C 10 CID-MRC-C 10 FILLER 10 CID-CRE-DATE 10 CID-CRE-USER-ID 10 CID-MAJ-DATE 10 CID-MAJ-USER-ID 10 CID-DEB-DATE 10 CID-SUP-DATE 10 FILLER FD CIR-FILE BLOCK CONTAINS 0 RECORDS LABEL RECORDS ARE STANDARD. 01 CIR-RECORD. 05 FILLER 05 CIR-KEY. 10 CIR-CST-C 10 CIR-ALT-KEY. 15 CIR-RPC-C 15 CIR-MRC-C 05 CIR-DETAILS. 10 CIR-DEB-DATE 10 CIR-FIN-DATE 10 FILLER 10 CIR-CRE-DATE 10 CIR-CRE-USER-ID 10 CIR-MAJ-DATE 10 CIR-MAJ-USER-ID 10 FILLER

PIC X(04). PIC X(04). PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC X(36). X(05). X(03). X(02). X(275). X(10). X(08). X(10). X(08). X(10). X(10). X(115).

PIC X(04). PIC X(04). PIC X(04). PIC X(02). PIC PIC PIC PIC PIC PIC PIC PIC X(10). X(10). X(295). X(10). X(08). X(10). X(08). X(135).

FD OUTPUT-FILE BLOCK CONTAINS 0 RECORDS LABEL RECORDS ARE STANDARD. 01 OUTPUT-RECORD PIC X(68). FD RECYCLE-FILE BLOCK CONTAINS 0 RECORDS LABEL RECORDS ARE STANDARD. 01 RECYCLE-RECORD PIC X(80). FD NOCST-MATCH BLOCK CONTAINS 0 RECORDS LABEL RECORDS ARE STANDARD.

01 NOCST-MATCH-RECORD. 05 NOCST-LP-OWNER 05 NOCST-CODE-MARQUE 05 NOCST-MSPN 05 NOCST-MSPN-DESC 05 NOCST-US-MKT-STATUS 05 NOCST-CA-MKT-STATUS 05 NOCST-XL-MKT-STATUS 05 NOCST-NAPN 05 NOCST-NAPN-STATUS 05 NOCST-CAI 05 NOCST-CST 05 NOCST-CCI. 10 NOCST-LPC 10 NOCST-QI 10 NOCST-LOC 05 NOCST-DATE-ENDED 05 NOCST-IP-CODE 05 NOCST-SA-CODE 05 FILLER

PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC

X(04). X(03). X(05). X(30). X(01). X(01). X(01). X(07). X(01). 9(06). X(04). X(01). X(01). X(01). X(08). X(01). X(03). X(02).

WORKING-STORAGE SECTION. 01 FILLER PIC X(32) VALUE 'DNUPP317: START WORKING STORAGE '. ****************************************************************** * STATUS INDICATORS * ****************************************************************** 01 WS-STATUS-INDICATORS. 05 WS-END-OF-FILE PIC X(01) VALUE 'N'. 88 END-OF-FILE-YES VALUE 'Y'. 05 WS-END-OF-CIRFILE 88 CIRFILE-EOF-YES 88 CIRFILE-EOF-NO 05 WS-FUTURE-DATE 88 FUTURE-DATE-YES 88 FUTURE-DATE-NO PIC X(01) VALUE 'N'. VALUE 'Y'. VALUE 'N'. PIC X(01) VALUE 'N'. VALUE 'Y'. VALUE 'N'.

****************************************************************** * WORKING STORAGE VARIABLES * ****************************************************************** 01 WS-VARIABLES. 05 WS-CURRENT-DATE PIC X(08) VALUE SPACES. 05 WS-PART-NUMBER PIC X(07) VALUE SPACES. 05 WS-FMT-FINAL-DATE PIC X(08) VALUE SPACES. 05 WS-CODE-RETURN PIC S9999 COMP VALUE +0. 05 WS-COMITT-CTR PIC 9(03) COMP-3 VALUE ZEROES. 05 WS-CIR-ALT-KEY PIC X(09) VALUE ZEROES. 05 WS-HOLD-CIR-ALT-KEY PIC X(09) VALUE ZEROES. 05 WS-CED-KEY PIC X(07) VALUE ZEROES. 01 WS-NCB-CODE. 05 WS-LPC 05 WS-QUALITY 05 WS-LOCALIZATION 01 PART-CONVERSION-DATA. COPY DNUPC001. PIC X(02) VALUE SPACES. PIC X(02) VALUE SPACES. PIC X(02) VALUE SPACES.

01 VSAM-STATUS-CODES. COPY VSAMSTAT. ****************************************************************** * OUTPUT RECORD LAYOUT * ****************************************************************** 01 WS-OUTPUT-RECORD. 05 WS-COUNTRY PIC X(02) VALUE SPACES. 05 FILLER PIC X(06) VALUE SPACES. 05 FILLER PIC X(07) VALUE SPACES. 05 WS-CST-CODE PIC X(04) VALUE SPACES. 05 FILLER PIC X(01) VALUE SPACES. 05 WS-CST-DESC PIC X(48) VALUE SPACES. 01 FILLER PIC X(32) VALUE 'DNUPP317: END OF WORKING STORAGE'. ****************************************************************** * IDMS RECORDS * ****************************************************************** COPY IDMS SUBSCHEMA-CONTROL. COPY IDMS MKT-PART. COPY IDMS PART-MASTER. COPY IDMS CAI-MASTER. COPY IDMS CST-MASTER. ***************************************************************** * LINKAGE SECTION * ***************************************************************** LINKAGE SECTION. 01 JCL-PARM. 05 PARM-LENGTH PIC S9(4) COMP. 05 PARM-DATABASE-NAME PIC X(08). EJECT ****************************************************************** PROCEDURE DIVISION USING JCL-PARM. ****************************************************************** 0000-MAIN-PARAGRAPH. DISPLAY 'DNUPP317 STARTED'. DISPLAY '.'. PERFORM 1000-INITIALIZATION THRU 1000-EXIT. PERFORM 2000-PROCESS THRU 2000-EXIT UNTIL END-OF-FILE-YES. PERFORM 9000-TERMINATION THRU 9000-EXIT. DISPLAY '.'. DISPLAY 'DNUPP317 ENDED'. GOBACK. 0000-EXIT. EXIT. *----------------------------------------------------------------* * OPEN FILES, BIND RECORDS, READY AREAS & INITIAL READ * *----------------------------------------------------------------* 1000-INITIALIZATION.

OPEN INPUT INPUT-FILE OUTPUT RECYCLE-FILE OUTPUT-FILE NOCST-MATCH. OPEN INPUT CED-FILE. IF NOT SUCCESSFUL DISPLAY 'BAD OPEN OF CED FILE ' 'VSAM STATUS = ' VSAM-STATUS-CODE MOVE +4001 TO WS-CODE-RETURN GO TO 8000-ABNORMAL-TERMINATION END-IF. OPEN INPUT CID-FILE. IF NOT SUCCESSFUL CLOSE CED-FILE DISPLAY 'BAD OPEN OF CID FILE ' 'VSAM STATUS = ' VSAM-STATUS-CODE MOVE +4001 TO WS-CODE-RETURN GO TO 8000-ABNORMAL-TERMINATION END-IF. OPEN INPUT CIR-FILE. IF NOT SUCCESSFUL CLOSE CED-FILE CIR-FILE DISPLAY 'BAD OPEN OF CIR FILE ' 'VSAM STATUS = ' VSAM-STATUS-CODE MOVE +4001 TO WS-CODE-RETURN GO TO 8000-ABNORMAL-TERMINATION END-IF. MOVE FUNCTION CURRENT-DATE(1:8) TO WS-CURRENT-DATE. COPY IDMS SUBSCHEMA-BINDS. READY CAS-PRICE-AREA READY CAS-BOM-AREA READY MTC-PART-AREA READY MICH-UPNREF-AREA READY MICH-IXCST-AREA USAGE-MODE USAGE-MODE USAGE-MODE USAGE-MODE USAGE-MODE IS IS IS IS IS RETRIEVAL. UPDATE. RETRIEVAL. UPDATE. UPDATE.

INITIALIZE PART-CONVERSION-DATA. MOVE SPACES TO PART-CONVERSION-DATA. MOVE 'FT' TO CALL-SEQUENCE(1). MOVE PARM-DATABASE-NAME TO DATABASE-NAME. CALL 'DNUPP001' USING PART-CONVERSION-DATA. READ INPUT-FILE AT END DISPLAY 'ERROR: INPUT FILE EMPTY' MOVE 'Y' TO WS-END-OF-FILE END-READ. 1000-EXIT. EXIT. 2000-PROCESS.

INITIALIZE WS-NCB-CODE WS-OUTPUT-RECORD NOCST-MATCH-RECORD. SET FUTURE-DATE-NO SET CIRFILE-EOF-NO MOVE MOVE MOVE MOVE MOVE MOVE MOVE MOVE SPACES PARM-DATABASE-NAME '5' IN-VAL-CAI IN-VAL-CCI(1:1) IN-VAL-CCI(2:1) IN-VAL-CCI(3:1) WS-NCB-CODE TO TRUE. TO TRUE. TO TO TO TO TO TO TO TO PART-CONVERSION-DATA. DATABASE-NAME. PART-CONVERSION-TYPE. CAI-NUMBER(1). WS-LPC. WS-QUALITY. WS-LOCALIZATION. NCB-CODE(1).

CALL 'DNUPP001' IF CONV-RETURN-CODE(1) WRITE RECYCLE-RECORD GO TO 2000-CONTINUE END-IF. MOVE NA-PART-NUMBER(1) MOVE WS-PART-NUMBER OBTAIN CALC PART-MASTER ON DB-REC-NOT-FOUND WRITE RECYCLE-RECORD GO TO 2000-CONTINUE END-IF.

USING PART-CONVERSION-DATA. NOT = '00' FROM INPUT-RECORD

TO WS-PART-NUMBER. TO PART-NUMBER-001 NOCST-NAPN. FROM INPUT-RECORD

MOVE PART-NUMBER-STATUS-001 TO NOCST-NAPN-STATUS. MOVE ADMIN-CODE-8024 MOVE IP-CODE-8024 MOVE LP-OWNER-8024 MOVE IN-VAL-CAI OBTAIN CALC CAI-MASTER ON DB-REC-NOT-FOUND WRITE RECYCLE-RECORD GO TO 2000-CONTINUE END-IF. TO NOCST-SA-CODE. TO NOCST-IP-CODE. TO NOCST-LP-OWNER. TO CAI-NUMBER-8024. FROM INPUT-RECORD

INITIALIZE PART-CONVERSION-DATA. MOVE SPACES TO PART-CONVERSION-DATA. MOVE '2' TO PART-CONVERSION-TYPE. MOVE WS-PART-NUMBER TO NA-PART-NUMBER(1). MOVE '2' TO OLD-PART-ORIGIN. MOVE PARM-DATABASE-NAME TO DATABASE-NAME. CALL 'DNUPP001' USING PART-CONVERSION-DATA. IF CONV-RETURN-CODE(1) WRITE RECYCLE-RECORD GO TO 2000-CONTINUE END-IF. MOVE OLD-PART-NUMBER OBTAIN CALC MKT-PART NOT = '00' FROM INPUT-RECORD

TO PART-NUMBER-3527.

ON DB-REC-NOT-FOUND WRITE RECYCLE-RECORD GO TO 2000-CONTINUE END-IF. MOVE MOVE MOVE MOVE MOVE MOVE CODE-MARQUE-3527 PART-NUMBER-3527 DESCRIPTION-3527 US-MKT-STATUS-3527 CA-MKT-STATUS-3527 XL-MKT-STATUS-3527

FROM INPUT-RECORD

TO TO TO TO TO TO

NOCST-CODE-MARQUE. NOCST-MSPN. NOCST-MSPN-DESC. NOCST-US-MKT-STATUS. NOCST-CA-MKT-STATUS. NOCST-XL-MKT-STATUS.

EVALUATE IN-RECORD-ID WHEN '10' PERFORM 3000-HMP-CSTMATCH THRU 3000-EXIT WHEN '20' PERFORM 4000-HCO-CSTMATCH THRU 4000-EXIT WHEN '30' PERFORM 5000-SIF-CSTMATCH THRU 5000-EXIT WHEN OTHER CONTINUE END-EVALUATE. 2000-CONTINUE. READ INPUT-FILE AT END MOVE 'Y' END-READ. IF WS-COMITT-CTR COMMIT MOVE ZEROES END-IF. 2000-EXIT. EXIT. *----------------------------------------------------------------* *PROCESS HMP-RECORD TO APPLY DELIVERY RULES * *----------------------------------------------------------------* 3000-HMP-CSTMATCH. MOVE IN-VAL-FINAL-DATE IF WS-FMT-FINAL-DATE WS-FMT-FINAL-DATE SET FUTURE-DATE-YES END-IF. MOVE IN-VAL-RPC MOVE IN-VAL-MRC MOVE WS-CIR-ALT-KEY SET CIRFILE-EOF-NO TO WS-FMT-FINAL-DATE. = SPACES OR > WS-CURRENT-DATE TO TRUE TO WS-CIR-ALT-KEY(1:4) TO WS-CIR-ALT-KEY(5:5) TO CIR-ALT-KEY WS-HOLD-CIR-ALT-KEY. TO TRUE.

TO WS-END-OF-FILE >= 50 TO WS-COMITT-CTR

START CIR-FILE KEY IS EQUAL TO CIR-ALT-KEY INVALID KEY SET CIRFILE-EOF-YES TO TRUE

END-START. PERFORM 3100-READ-CIR UNTIL CIRFILE-EOF-YES. 3000-EXIT. EXIT. 3100-READ-CIR. READ CIR-FILE NEXT AT END SET CIRFILE-EOF-YES GO TO 3100-EXIT END-READ. MOVE CIR-RPC-C MOVE CIR-MRC-C IF WS-HOLD-CIR-ALT-KEY SET CIRFILE-EOF-YES GO TO 3100-EXIT END-IF. MOVE IN-VAL-CAI MOVE CIR-CST-C THRU 3100-EXIT

TO TRUE

TO WS-CIR-ALT-KEY(1:4). TO WS-CIR-ALT-KEY(5:5). NOT = WS-CIR-ALT-KEY TO TRUE

TO CST-KEY-8033(1:6). TO CST-KEY-8033(7:4).

OBTAIN CST-MASTER WITHIN IX-CST-KEY USING CST-KEY-8033 ON DB-REC-NOT-FOUND PERFORM 3200-STORE-CST-MASTER THRU 3200-EXIT GO TO 3100-EXIT END-IF. IF WS-NCB-CODE = CCI-CODE-8033 IF FUTURE-DATE-YES MOVE WS-FMT-FINAL-DATE TO DATE-ENDED-8033 MOVE WS-CURRENT-DATE TO CST-MASTER(25:8) MODIFY CST-MASTER ADD 1 TO WS-COMITT-CTR PERFORM 3400-STORE-TABLE-DETAIL THRU 3400-EXIT END-IF IF FUTURE-DATE-NO IF CST-MASTER(25:8) NOT = WS-CURRENT-DATE MOVE CST-CODE-8033 TO NOCST-CST MOVE CAI-NUMBER-8033 TO NOCST-CAI MOVE DATE-ENDED-8033 TO NOCST-DATE-ENDED MOVE CCI-CODE-8033(1:1) TO NOCST-LPC MOVE CCI-CODE-8033(3:1) TO NOCST-QI MOVE CCI-CODE-8033(5:1) TO NOCST-LOC WRITE NOCST-MATCH-RECORD ERASE CST-MASTER ADD 1 TO WS-COMITT-CTR END-IF END-IF END-IF. 3100-EXIT. EXIT.

3200-STORE-CST-MASTER. IF FUTURE-DATE-YES MOVE IN-VAL-CAI TO CAI-NUMBER-8033 MOVE CIR-CST-C TO CST-CODE-8033 MOVE WS-NCB-CODE TO CCI-CODE-8033 MOVE WS-FMT-FINAL-DATE TO DATE-ENDED-8033 MOVE WS-CURRENT-DATE TO CST-MASTER(25:8) STORE CST-MASTER ADD 1 TO WS-COMITT-CTR PERFORM 3400-STORE-TABLE-DETAIL THRU 3400-EXIT END-IF. 3200-EXIT. EXIT. 3400-STORE-TABLE-DETAIL. MOVE CIR-CST-C READ CID-FILE INVALID KEY GO TO 3400-EXIT END-READ. EVALUATE CID-PAYS-C WHEN '400' MOVE 'US' WHEN '404' MOVE 'CA' WHEN '412' MOVE 'MX' WHEN OTHER GO TO 3400-EXIT END-EVALUATE. MOVE CST-CODE-8033 MOVE CID-CST-LIB WRITE OUTPUT-RECORD 3400-EXIT. EXIT. 4000-HCO-CSTMATCH. MOVE IN-VAL-FINAL-DATE IF WS-FMT-FINAL-DATE WS-FMT-FINAL-DATE SET FUTURE-DATE-YES END-IF. MOVE IN-VAL-ASMB MOVE IN-VAL-VEH MOVE WS-CED-KEY READ CED-FILE INVALID KEY TO WS-FMT-FINAL-DATE. TO CID-KEY.

TO WS-COUNTRY TO WS-COUNTRY TO WS-COUNTRY

TO WS-CST-CODE. TO WS-CST-DESC. FROM WS-OUTPUT-RECORD.

= SPACES OR > WS-CURRENT-DATE TO TRUE TO WS-CED-KEY(1:4) TO WS-CED-KEY(5:3) TO CED-KEY.

GO TO 4000-EXIT END-READ. MOVE IN-VAL-CAI MOVE CED-CST-C TO CST-KEY-8033(1:6) TO CST-KEY-8033(7:4)

OBTAIN CST-MASTER WITHIN IX-CST-KEY USING CST-KEY-8033 ON DB-REC-NOT-FOUND PERFORM 4200-STORE-CST-MASTER THRU 4200-EXIT GO TO 4000-EXIT END-IF. IF WS-NCB-CODE = CCI-CODE-8033 IF FUTURE-DATE-YES MOVE WS-FMT-FINAL-DATE TO DATE-ENDED-8033 MOVE WS-CURRENT-DATE TO CST-MASTER(25:8) MODIFY CST-MASTER ADD 1 TO WS-COMITT-CTR PERFORM 4400-STORE-TABLE-DETAIL THRU 4400-EXIT END-IF IF FUTURE-DATE-NO IF CST-MASTER(25:8) NOT = WS-CURRENT-DATE MOVE CST-CODE-8033 TO NOCST-CST MOVE CAI-NUMBER-8033 TO NOCST-CAI MOVE DATE-ENDED-8033 TO NOCST-DATE-ENDED MOVE CCI-CODE-8033(1:1) TO NOCST-LPC MOVE CCI-CODE-8033(3:1) TO NOCST-QI MOVE CCI-CODE-8033(5:1) TO NOCST-LOC WRITE NOCST-MATCH-RECORD ERASE CST-MASTER ADD 1 TO WS-COMITT-CTR END-IF END-IF END-IF. 4000-EXIT. EXIT. 4200-STORE-CST-MASTER. IF FUTURE-DATE-YES MOVE IN-VAL-CAI TO CAI-NUMBER-8033 MOVE CED-CST-C TO CST-CODE-8033 MOVE WS-NCB-CODE TO CCI-CODE-8033 MOVE WS-FMT-FINAL-DATE TO DATE-ENDED-8033 STORE CST-MASTER ADD 1 TO WS-COMITT-CTR PERFORM 4400-STORE-TABLE-DETAIL THRU 4400-EXIT END-IF. 4200-EXIT. EXIT. 4400-STORE-TABLE-DETAIL. EVALUATE CED-PAYS-C WHEN '400'

MOVE 'US' WHEN '404' MOVE 'CA' WHEN '412' MOVE 'MX' WHEN OTHER GO TO 4400-EXIT END-EVALUATE. MOVE CST-CODE-8033 MOVE CED-CST-LIB WRITE OUTPUT-RECORD 4400-EXIT. EXIT. 5000-SIF-CSTMATCH. MOVE IN-VAL-FINAL-DATE IF WS-FMT-FINAL-DATE WS-FMT-FINAL-DATE SET FUTURE-DATE-YES END-IF. MOVE IN-VAL-CAI MOVE IN-VAL-CST

TO WS-COUNTRY TO WS-COUNTRY TO WS-COUNTRY

TO WS-CST-CODE. TO WS-CST-DESC. FROM WS-OUTPUT-RECORD.

TO WS-FMT-FINAL-DATE. = SPACES OR > WS-CURRENT-DATE TO TRUE TO CST-KEY-8033(1:6). TO CST-KEY-8033(7:4).

OBTAIN CST-MASTER WITHIN IX-CST-KEY USING CST-KEY-8033 ON DB-REC-NOT-FOUND PERFORM 5200-STORE-CST-MASTER THRU 5200-EXIT GO TO 5000-EXIT END-IF. IF WS-NCB-CODE = CCI-CODE-8033 IF FUTURE-DATE-YES MOVE WS-FMT-FINAL-DATE TO DATE-ENDED-8033 MOVE WS-CURRENT-DATE TO CST-MASTER(25:8) MODIFY CST-MASTER ADD 1 TO WS-COMITT-CTR PERFORM 5400-STORE-TABLE-DETAIL THRU 5400-EXIT END-IF IF FUTURE-DATE-NO IF CST-MASTER(25:8) NOT = WS-CURRENT-DATE MOVE CST-CODE-8033 TO NOCST-CST MOVE CAI-NUMBER-8033 TO NOCST-CAI MOVE DATE-ENDED-8033 TO NOCST-DATE-ENDED MOVE CCI-CODE-8033(1:1) TO NOCST-LPC MOVE CCI-CODE-8033(3:1) TO NOCST-QI MOVE CCI-CODE-8033(5:1) TO NOCST-LOC WRITE NOCST-MATCH-RECORD ERASE CST-MASTER ADD 1 TO WS-COMITT-CTR END-IF END-IF END-IF. 5000-EXIT.

EXIT. 5200-STORE-CST-MASTER. IF FUTURE-DATE-YES MOVE IN-VAL-CAI TO CAI-NUMBER-8033 MOVE IN-VAL-CST TO CST-CODE-8033 MOVE WS-NCB-CODE TO CCI-CODE-8033 MOVE WS-FMT-FINAL-DATE TO DATE-ENDED-8033 STORE CST-MASTER ADD 1 TO WS-COMITT-CTR PERFORM 5400-STORE-TABLE-DETAIL THRU 5400-EXIT END-IF. 5200-EXIT. EXIT. 5400-STORE-TABLE-DETAIL. MOVE IN-VAL-CST READ CID-FILE INVALID KEY GO TO 5400-EXIT END-READ. EVALUATE CID-PAYS-C WHEN '400' MOVE 'US' WHEN '404' MOVE 'CA' WHEN '412' MOVE 'MX' WHEN OTHER GO TO 5400-EXIT END-EVALUATE. MOVE CST-CODE-8033 MOVE CID-CST-LIB WRITE OUTPUT-RECORD 5400-EXIT. EXIT. *----------------------------------------------------------------* * THIS PARA IS INVOKED WHENEVER THE PROGRAM IS TO BE TERMINATED * * ABNORMALLY. THIS PRINTS THE NATURE OF THE ERROR * *----------------------------------------------------------------* 8000-ABNORMAL-TERMINATION. CALL 'ILBOABN0' USING WS-CODE-RETURN. 8000-EXIT. EXIT. *----------------------------------------------------------------* * CLOSE DATABASE AND CLOSE INPUT & OUTPUT FILES * *----------------------------------------------------------------* 9000-TERMINATION. TO CID-KEY.

TO WS-COUNTRY TO WS-COUNTRY TO WS-COUNTRY

TO WS-CST-CODE. TO WS-CST-DESC. FROM WS-OUTPUT-RECORD.

INITIALIZE PART-CONVERSION-DATA. MOVE SPACES TO PART-CONVERSION-DATA. MOVE 'LT' TO CALL-SEQUENCE(1). MOVE PARM-DATABASE-NAME TO DATABASE-NAME. CALL 'DNUPP001' USING PART-CONVERSION-DATA. FINISH. CLOSE CED-FILE CID-FILE CIR-FILE INPUT-FILE NOCST-MATCH OUTPUT-FILE RECYCLE-FILE. 9000-EXIT. EXIT. COPY IDMS IDMS-STATUS. IDMS-ABORT SECTION. IDMS-ABORT-EXIT. EXIT.

También podría gustarte