cics mq program -- which reads from mq and updates db2

Download CICS Mq Program -- Which Reads From Mq and Updates Db2

If you can't read please download the document

Upload: rameshdwara

Post on 02-Dec-2015

245 views

Category:

Documents


16 download

DESCRIPTION

CICS Mq Program -- Which Reads From Mq and Updates Db2

TRANSCRIPT

SUBJECT: NVALUSA.LIBR.SAMS.WC6811() IDENTIFICATION DIVISION. PROGRAM-ID. WC6811. AUTHOR. SATISH KUMAR RAGHUPATHY. INSTALLATION. WAL-MART STORES DATE-WRITTEN. 01/29/08. DATE-COMPILED. ****************************************************************** ******************** COMPILE OPTION CE 114 *********************** ************ 'COBOLMQ' LANGUAGE CODE MUST BE USED **************** ****************************************************************** *----------------------------------------------------------------* *!!!!!!!!!!!!!!!!!!!-SPECIAL INSTRUCTIONS-!!!!!!!!!!!!!!!!!!!!!!!* *----------------------------------------------------------------* ***** CURRENTLY YOU MUST DO A 'CE' COMPILE AND ADD 'SP' TO ******* ***** STEP002, WHICH IS THE CICS PRE-COMPILER STEP. ******* ***** CHANGE : PARM='COBOL2,DLI,CICS' ******* ***** TO : PARM='COBOL2,DLI,CICS,SP' ******* ***** LANGUAGE CODE 'MODMOVE' MUST BE USED IN LIBRARIAN TO ******* ***** INSTALL THE PROGRAM. THIS IS BECAUSE NO LANGUAGE CODE******* ***** EXISTS TO SUPPORT MQSERIES AND CICS SYSTEM COMMANDS ******* ***** (COMBINATION OF COBOLMQ AND TSPL LANGUAGE CODES) ******* ***** MAKE SURE THE VERSION YOU WANT IN PRODUCTION IS IN ******* ***** WM.TESTLINK BEFORE INSTALLING. ******* *----------------------------------------------------------------* *!!!!!!!!!!!!!!!!!!!-SPECIAL INSTRUCTIONS-!!!!!!!!!!!!!!!!!!!!!!!* *----------------------------------------------------------------* ****************************************************************** **TITLE: ITEM LEGACY UPDATE FOR HOST SYSTEMS ** ** ** **TRAN-ID: WLU0 ** ** ** **PURPOSE: UPDATE LEGACY HOST SYSTEMS WITH ITEM DATA ** ** FROM DB2 GOLD. ** ** ** **PROGRAM DESC : THIS TRANSACTION READS ROWS FROM ** ** THE PUBLISH_PENDING TABLE, DETERMINES LEGACY ** ** DATABASES TO BE UPDATED AND UPDATES THEM ** ** ACCORDING TO THE BUSINESS RULES. ** ** ** **ERROR LOGGING: IF ERRORS ARE ENCOUNTERED, THEY ARE REPORTED ** ** IN A DB2 TABLE: PUBLISH_PENDG_ERR. ** ** LAST_UPDATE_TS HOLDS THE TIMESTAMP OF WHEN ** ** THE MESSAGE WAS WRITTEN TO THE TABLE. ** ** ** ** SEVERE ERRORS ARE ALSO WRITTEN TO ** ** A TSQ: ITEM@@1_WLU0ERRQ ** ** WHERE @@ = COUNTRY CODE ** ** AND SENT TO THE HOST ON-CALL PAGER: MDSE1 ** ** ** **------------------- SPECIAL CONSIDERATIONS -------------------** ** ** ** 1. WC6811 WILL RESTART ITSELF AGAIN AND AGAIN ** ** AND SHOULD ONLY STOP IF THE CICS REGION IS ** ** STOPPED OR IF IT IS TURNED OFF THROUGH THE ** ** PARM DB2 TABLE. DATA PROCESSING CAN BE STOPPED ** ** OR EXECUTION OF THE PROGRAM CAN BE STOPPED BY ** ** SETTING THE PARM. THIS CAN BE ACCOMPLISHED THRU ** ** THE SCREEN WLUP. ** ** (SEE A000000-INITIAL AND A000100-SLCT-PARM) ** ** ** **------------------- SPECIAL CONSIDERATIONS -------------------** ** ** ****************************************************************** ** PROGRAM CHANGE HISTORY ** ****************************************************************** ** ** ** REV DATE CHG-ID DESCRIPTION ** ** --- -------- ------- ----------------------------------------** ** 00 01-29-08 SRAGHUP CLONED IT681 & INSTALLED ** ** 01 06-12-08 DVASTIN BACK OUT CLONE OF IT681 CHANGES ** 02- ** 02 06-13-08 RJHA FIX ISSUES FOR SIGNING_DESC ** 03- ** 03 07-23-08 DVASTIN BACK OUT TO THIS VERSION W/O QUEUES FOR ** 03- ** IT715 ** 04- ** 04 07-30-08 SPARACH ADDED CODE TO CALICULATE I2A PALLET QTY ** 05- ** 05 10-20-08 RJHA ADDED CALL TO PRICING ROUTINE WC6812 ** ****************************************************************** ENVIRONMENT DIVISION. DATA DIVISION. ****************************************************************** WORKING-STORAGE SECTION. ****************************************************************** 01 WS-MESSAGES. 03 WS-WHEN-MSG. 05 FILLER PIC X(21) VALUE 'WC6811 COMPILE DATE: '. 05 WS-WHEN-DT PIC X(8). 05 FILLER PIC X(7) VALUE ' TIME: '. 05 WS-WHEN-TM PIC X(8). 03 WS-OLD-MSG PIC X(27) VALUE 'PUBLISH PENDING ROW TOO OLD'. 03 WS-CC-MSG. 05 WS-CC-MSG1 PIC X(38) VALUE 'UNABLE TO GET COUNTRY CODE. TSENV RC= '. 05 WS-CC-MSG2 PIC 99. 03 WS-MQ-MSG. 05 WS-MQ-MSG1 PIC X(40) VALUE 'FAIL MCLANE FEED TO WCV504 COMP CODE = '. 05 WS-MQ-CODE PIC X(9). 03 WS-IMS-MSG. 05 WS-IMS-TXT PIC X(44). 05 FILLER PIC X(10) VALUE 'DIBSTAT = '. 05 WS-IMS-STAT PIC X(2). 03 WS-DB2-MSG. 05 WS-DB2-TXT PIC X(44). 05 FILLER PIC X(10) VALUE ' SQLCODE ='. 05 WS-DB2-CODE PIC --------9. 05- 03 WS-WC6811-MSG. 05- 05 FILLER PIC X(15) 05- VALUE ' RETURN CODE = '. 05- 05 WS-RET-CODE PIC --------9. 05- 05 WS-RET-TXT PIC X(165). 03 WS-ABND-MSG. 05 FILLER PIC X(12) VALUE 'ERR IN PARA '. 05 WS-ABND-PARA PIC X(30). 05 WS-ABND-DIBSTAT PIC X(12). 05 WS-ABND-ABCODE REDEFINES WS-ABND-DIBSTAT PIC X(12). 03 WS-BEEP-MESSAGE-RPT PIC X(44) VALUE 'UNABLE TO WRITE TO ERROR LOG TABLE '. 03 WS-BEEP-MESSAGE-ICE PIC X(44) VALUE 'WLU0 NOT ABLE TO PUT ON ICE '. 03 WS-BEEP-MESSAGE. 05 BM-ID PIC X(10) VALUE 'WC6811-01E'. 05 FILLER PIC X(01) VALUE SPACE. 05 BM-TYPE PIC X(03) VALUE SPACES. 05 FILLER PIC X(01) VALUE SPACE. 05 BM-REGION PIC X(08) VALUE SPACES. 05 FILLER PIC X(01) VALUE SPACE. 05 BM-CC PIC X(02) VALUE SPACES. 05 FILLER PIC X(01) VALUE SPACE. 05 BM-CODE PIC X(09). 05 BM-CODE-OUT REDEFINES BM-CODE PIC --------9. 05 FILLER PIC X(01) VALUE SPACE. 05 BM-MESSAGE PIC X(54) VALUE SPACES. 03 WS-CICS-MESSAGE. 05 FILLER PIC X(9) VALUE ' *WC6811*'. 05 FILLER PIC X(01) VALUE SPACE. 05 WS-CICS-MSG-YY PIC 9(02) VALUE ZEROS. 05 WS-CICS-MSG-MM PIC 9(02) VALUE ZEROS. 05 WS-CICS-MSG-DD PIC 9(02) VALUE ZEROS. 05 FILLER PIC X(01) VALUE '/'. 05 WS-CICS-MSG-HR PIC 9(02) VALUE ZEROS. 05 WS-CICS-MSG-MN PIC 9(02) VALUE ZEROS. 05 FILLER PIC X(01) VALUE SPACE. 05 WS-CICS-MSG-CODE PIC --------9 VALUE ZEROES. 05 FILLER PIC X(01) VALUE SPACES. 05 WS-CICS-MSG-AREA PIC X(37) VALUE SPACES. 05 FILLER PIC X VALUE SPACES. 05 WS-CICS-MSG-KEY PIC X(10) VALUE SPACES. 05 FILLER PIC X(02) VALUE SPACES. 03 WS-PPER-ERR-MSG. 05 FILLER PIC X(6) VALUE 'ITEM: '. 05 WS-PPER-ITEM-NBR PIC 9(9). 05 FILLER PIC X(8) VALUE ' TABLE: '. 05 WS-PPER-TABLE-NAME PIC X(18). 05 FILLER PIC X(9) VALUE ' LOG_TS: '. 05 WS-PPER-LOG-TS PIC X(26). 05 FILLER PIC X(13) VALUE ' ERROR_DESC: '. 05 WS-PPER-ERROR-DESC PIC X(63). 05 FILLER PIC X(9) VALUE ' REGION: '. 05 WS-PPER-CICS-REGION PIC X(8). 05 FILLER PIC X(14) VALUE ' LST_UPDT_TS: '. 05 WS-PPER-LAST-UPDATE-TS PIC X(26). 05 FILLER PIC X(15) VALUE ' LST_UPDT_PGM: '. 05 WS-PPER-LAST-UPDATE-PGM PIC X(10). 05 FILLER PIC X(9) VALUE ' DC_NBR: '. 05 WS-PPER-DC-NBR PIC 9(9). 05 FILLER PIC X(16) VALUE ' CROSS_REF_NBR: '. 05 WS-PPER-CROSS-REF-NBR PIC 9(9). 05 FILLER PIC X(12) VALUE ' ASSRT_NBR: '. 05 WS-PPER-ASSORTMENT-NBR PIC 9(9). 01 WS-TSQ-NAMES. 03 WS-ERR-TSQ. 05 FILLER PIC X(4) VALUE 'ITEM'. 05 WS-ERR-CC PIC X(2) VALUE 'XX'. 05 WS-ERR-SIZE PIC X(1) VALUE '1'. 05 FILLER PIC X(1) VALUE '_'. 05 WS-ERR-TRAN PIC X(4) VALUE 'WLU0'. 05 FILLER PIC X(4) VALUE 'ERRQ'. 01 WS-GLOBAL-ENQ. 03 FILLER PIC X(8) VALUE 'CICSGRS_'. 03 WS-ENQ-CC PIC X(2). 03 WS-ENQ-BUS PIC X(3). 03 FILLER PIC X VALUE '_'. 03 WS-ENQ-TRANID PIC X(4) VALUE 'WLU0'. 03 FILLER PIC X(8) VALUE '_ITEMFLE'. 01 DSNTIAR-ERR-MSG. 03 DSNTIAR-MSG-LEN PIC S9(4) COMP VALUE +1728. 03 DSNTIAR-MSG-TXT PIC X(72) OCCURS 24 TIMES INDEXED BY DSNTIAR-ERR-IDX. 01 DSNTIAR-LRECL-LEN PIC S9(8) COMP VALUE +72. 01 DSNTIAR-RETURN-CODE PIC S9(4) COMP. 05- 01 WS-LINK-WC6812 PIC X(08) VALUE 'WC6812 '. 01 WS-DEFAULT-WORK-FIELDS. 04- 03 WS-TEMP-I2A-PALLET-QTY PIC S9(04) COMP VALUE ZERO. 03 WS-WHEN-COMP PIC X(16). 03 PCB-POS PIC S9(4) COMP. 03 ABS-TIME PIC S9(15) COMP-3 VALUE ZEROS. 03 WS-REGION PIC X(8) VALUE SPACES. 03 WS-CICS-MSG-LENGTH PIC S9(04) COMP. 03 WS-CICS-STATUS PIC S9(08) COMP VALUE +0. 03 WS-START-CODE PIC X(2) VALUE SPACE. 03 WS-START-MSG PIC X(14) VALUE 'WC6811 STARTED'. 03 WS-NOTHING PIC X(01) VALUE SPACE. 03 WS-RSTRT-SEC PIC S9(08) COMP VALUE +5. 03 WS-RSTRT-MIN PIC S9(08) COMP VALUE +5. 03 WS-CICS-RESP PIC S9(08) COMP SYNC VALUE +0. 03 WS-CICS-ABCODE PIC X(4) VALUE SPACES. 03 WS-RETRY-CNT PIC S9(4) COMP VALUE 0. 03 WS-RETRY-MAX PIC S9(4) COMP VALUE 10. 03 WS-911-RETRY-CNT PIC S9(4) COMP VALUE 0. 03 WS-911-RETRY-MAX PIC S9(4) COMP VALUE 10. 03 WS-DATE. 05 WS-CENTURY PIC 99. 05 WS-YEAR PIC 99. 05 FILLER PIC X. 05 WS-MONTH PIC 99. 05 FILLER PIC X. 05 WS-DAY PIC 99. 05 FILLER PIC X. 05 WS-HOUR PIC 99. 05 FILLER PIC X. 05 WS-MIN PIC 99. 05 FILLER PIC X(10). 03 SYS-DATE. 05 SYS-CC PIC 9(2). 05 SYS-YY PIC 9(2). 05 FILLER PIC X. 05 SYS-MM PIC 9(2). 05 FILLER PIC X. 05 SYS-DD PIC 9(2). 03 SYS-TIME. 05 SYS-HR PIC 9(02). 05 FILLER PIC X. 05 SYS-MN PIC 9(02). 05 FILLER PIC X. 05 SYS-SC PIC 9(02). 03 TMP-DB2-DATE. 05 TMP-DB2-CCYY. 10 TMP-DB2-CC PIC 99. 10 TMP-DB2-YY PIC 99. 05 FILLER PIC X VALUE '-'. 05 TMP-DB2-MM PIC 99. 05 FILLER PIC X VALUE '-'. 05 TMP-DB2-DD PIC 99. 03 WS-LAST-UPDATE-TS. 05 WS-LAST-UPDATE-DATE. 10 LU-CNTRY PIC X(2) VALUE '00'. 10 LU-YEAR PIC X(2) VALUE '00'. 10 FILLER PIC X VALUE '-'. 10 LU-MONTH PIC X(2) VALUE '00'. 10 FILLER PIC X VALUE '-'. 10 LU-DAY PIC X(2) VALUE '00'. 05 FILLER PIC X VALUE '-'. 05 WS-LAST-TIME. 10 LU-HOURS PIC X(2) VALUE '00'. 10 FILLER PIC X VALUE '.'. 10 LU-MINS PIC X(2) VALUE '00'. 10 FILLER PIC X VALUE '.'. 10 LU-SECS PIC X(2) VALUE '00'. 05 FILLER PIC X VALUE '.'. 05 LU-SUBSECS PIC X(6) VALUE '000000'. 03 WS-MMDDYY. 05 WS-MM PIC 99. 05 WS-DD PIC 99. 05 WS-YY PIC 99. 01 CURRENT-DATE. 03 CD-CCYYMMDD. 05 CD-CC PIC 99. 05 CD-YYMMDD. 07 CD-YY PIC 99. 07 CD-MM PIC 99. 07 CD-DD PIC 99. 05 CURR-DATE-6 REDEFINES CD-YYMMDD PIC 9(6). 03 CURR-DATE-8 REDEFINES CD-CCYYMMDD PIC 9(8). 01 CURRENT-DATE-FMT2. 03 FILLER PIC X(1) VALUE '0'. 03 CD-YYMMDD PIC X(6) VALUE SPACES. 01 CURRENT-TIME. 03 CT-HHMMSSSS. 05 CT-HHMM. 07 CT-HH PIC 99. 07 CT-MM PIC 99. 05 CURR-TIME-4 REDEFINES CT-HHMM PIC 9(4). 05 FILLER PIC X(4). 01 HOLD-DATE. 03 HOLD-DATE-CYYMMDD. 05 HOLD-CC PIC X(1) VALUE '9'. 05 HOLD-YMD. 07 HOLD-YMD-YY PIC X(02) VALUE SPACES. 07 HOLD-YMD-MM PIC X(02) VALUE SPACES. 07 HOLD-YMD-DD PIC X(02) VALUE SPACES. 03 HOLD-DATE-7 REDEFINES HOLD-DATE-CYYMMDD PIC 9(7). 01 HOLD-DATE-CCYYMMDD. 03 HOLD-CYMD. 05 HOLD-CYMD-CC PIC X(02) VALUE SPACES. 05 HOLD-CYMD-YY PIC X(02) VALUE SPACES. 05 HOLD-CYMD-MM PIC X(02) VALUE SPACES. 05 HOLD-CYMD-DD PIC X(02) VALUE SPACES. 03 HOLD-DATE-8 REDEFINES HOLD-CYMD PIC 9(8). 01 HOLD-DATE-MMDDYY. 03 HOLD-MDY. 05 HOLD-MDY-MM PIC X(02) VALUE SPACES. 05 HOLD-MDY-DD PIC X(02) VALUE SPACES. 05 HOLD-MDY-YY PIC X(02) VALUE SPACES. 03 HOLD-DATE-6 REDEFINES HOLD-MDY PIC 9(6). 01 HOLD-FIELDS. 03 HOLD-I2B5-LICENSE-FLAG PIC X VALUE SPACE. 03 HOLD-I2B5-EFF-PERCENT PIC S999V99 COMP-3 VALUE +0. 03 HOLD-I2B5-EFF-BEGIN-DATE PIC S9(7) COMP-3 VALUE +0. 03 HOLD-I2B5-EFF-END-DATE PIC S9(7) COMP-3 VALUE +0. 01 WS-WORK-FIELDS. 03 WS-SAVE-TIME-PERIOD PIC S9(9) COMP VALUE 0. 03 WS-TIME-PERIOD PIC S9(9) COMP VALUE 0. 03 WS-TIME-PERIOD-NULL PIC S9(4) COMP. 03 WS-COMMIT-LIMIT PIC S9(4) COMP VALUE 0. 03 WS-COMMIT-LIMIT-NULL PIC S9(4) COMP. 03 WS-ROW-CNT PIC S9(4) COMP VALUE 0. 03 WS-MIN-TS PIC X(26). 03 WS-DLET-PUBPEND-TS PIC X(26). 03 WS-CHANGE-TYPE-CODE PIC X(01). 03 WS-VNDR-NAME PIC X(30) VALUE SPACES. 03 WS-HOLD-MQSQ PIC X(30). 03 WS-HOLD-MQUN PIC X(31). 03 WS-UPC-CODE-NUM PIC 9(13) VALUE ZERO. 03 WS-OLD-UPC-CODE-NUM PIC 9(13) VALUE ZERO. 03 WS-NUMERIC2 PIC 9(2) VALUE ZERO. 03 WS-NUMERIC6 PIC 9(6) VALUE ZERO. 03 WS-UP-RCD-NBR PIC 9(2) VALUE ZERO. 03 WS-KNOWN-TABLES PIC X(18). 88 KNOWN-TBL VALUES '< TBD >'. 01 WS-FLAGS-N-SWITCHES. 03 DB2-DONE-SW PIC X VALUE 'N'. 03 FOUND-SW PIC X VALUE 'N'. 03 PUBPEND-SW PIC X VALUE 'N'. 03 PUBPEND-OPEN-SW PIC X VALUE 'N'. 03 DUP-ISRT PIC X VALUE 'N'. 03 UPC-ITEM-SW PIC X VALUE 'N'. 03 UPC-FOUND-SW PIC X VALUE 'N'. 03 MIN-TS-SET-SW PIC X VALUE 'N'. 03 WS-911-SW PIC X VALUE 'N'. 03 I2B5-SW PIC X VALUE 'N'. 03 DONE-ALL-UPC-SW PIC X VALUE 'N'. 03 I2A-UPC-CHANGED-SW PIC X VALUE 'N'. 03 REVIEW-DAY-SW PIC X VALUE 'N'. 03 VENDOR-FND-SW PIC X VALUE 'N'. 03 EOF-PUBPEND PIC X VALUE 'N'. 03 EOF-UPCITEM PIC X VALUE 'N'. 03 EOF-I2A5 PIC X VALUE 'N'. 01- 03 EOF-I2B5 PIC X VALUE 'N'. 01- 03 EFF-DT-CHG-SW PIC X VALUE 'N'. 01- 03 EXP-DT-CHG-SW PIC X VALUE 'N'. 01- 03 EFF-PCT-CHG-SW PIC X VALUE 'N'. 01- 03 LICENSE-CHG-SW PIC X VALUE 'N'. 03 CA-MCLANE-WAREHOUSE-SW PIC X VALUE 'N'. 88 CA-MCLANE-WAREHOUSE VALUE 'Y'. 88 CA-NOT-MCLANE-WAREHOUSE VALUE 'N'. 01 VN-NUM. 02 VEND-NUM PIC 9(9). 02 FILLER REDEFINES VEND-NUM. 03 VN-NUMB PIC 9(6). 03 VN-DPSUB. 05 VN-DP PIC 99. 05 VN-SUB PIC 9. 01 WS-MCLANE-ITEM. 05 I2A-SEGMENT-AREA PIC X(400) VALUE SPACES. 05 CA-MQ-FLAG PIC X(01) VALUE ' '. 05 CA-RETURN-CODE COMP PIC S9(09) VALUE ZEROES. 05 CA-STAT PIC 9(2) VALUE ZEROES. 05 CA-TIMESTAMP PIC X(26) VALUE SPACES. 05 CA-ACTION PIC X(01) VALUE SPACES. 05 CA-MSG-AREA PIC X(40) VALUE SPACES. 05 WHSE-NUM-TAB. 07 WHSE-NUM OCCURS 10 TIMES PIC 9(5). 01 UPC-ITEM-TABLE. 03 UIT-NBR-OF-UPC PIC S9(3) COMP VALUE 0. 03 UIT-UPCS OCCURS 240 TIMES INDEXED BY UPC-IDX. 05 UIT-UPC-NBR PIC 9(13) VALUE ZEROES. 01 ITEM-NULLS. 05 I-NULL-ITEM-ORD-EFF-DATE PIC S9(04) COMP. 05 I-NULL-ITEM-EXPIRE-DATE PIC S9(04) COMP. 05 I-NULL-DESTINATION-CODE PIC S9(04) COMP. 05 I-NULL-ITEM2-DESC PIC S9(04) COMP. 05 I-NULL-SHLFLBL1-COLR-DESC PIC S9(04) COMP. 05 I-NULL-SHLFLBL2-SIZE-DESC PIC S9(04) COMP. 05 I-NULL-INFRM-REORD-TYP-CD PIC S9(04) COMP. 05 I-NULL-WHSE-ALIGN-TYPE-CD PIC S9(04) COMP. 05 I-NULL-VNPK-WEIGHT-QTY PIC S9(04) COMP. 05 I-NULL-VNPK-CUBE-QTY PIC S9(04) COMP. 05 I-NULL-VNDR-MIN-ORD-QTY PIC S9(04) COMP. 05 I-NULL-WHPK-CUBE-QTY PIC S9(04) COMP. 05 I-NULL-WHPK-WEIGHT-QTY PIC S9(04) COMP. 05 I-NULL-WHSE-MAX-ORDER-QTY PIC S9(04) COMP. 05 I-NULL-WHPK-CALC-MTHD-CD PIC S9(04) COMP. 05 I-NULL-VNDR-INCRM-ORD-QTY PIC S9(04) COMP. 05 I-NULL-ACCTG-DEPT-NBR PIC S9(04) COMP. 05 I-NULL-RESERVE-MDSE-CODE PIC S9(04) COMP. 05 I-NULL-PRESN-UNIT-QTY PIC S9(04) COMP. 04- 05 I-NULL-PALLET-TI-QTY-CD PIC S9(04) COMP. 04- 05 I-NULL-PALLET-HI-QTY-CD PIC S9(04) COMP. 01 ITEM-DC-NULLS. 05 IDC-NULL-CANCEL-WHN-OUT-DT PIC S9(04) COMP. 05 IDC-NULL-LAST-RCVD-DATE PIC S9(04) COMP. 01 CLUB-ITEM-NULLS. 05 CLB-NULL-LINK-ITEM-NBR PIC S9(04) COMP. 05 CLB-NULL-UNIT-RETAIL-CHG-DT PIC S9(04) COMP. 05 CLB-NULL-CANCEL-WHN-OUT-DT PIC S9(04) COMP. 05 CLB-NULL-CNCL-UNIT-RTL-AMT PIC S9(04) COMP. 05 CLB-NULL-LEAD-TIME-QTY PIC S9(04) COMP. 01 CLUB-INVT-NULLS. 05 CLB-NULL-LAST-RCVD-DATE PIC S9(04) COMP. 05 CLB-NULL-NEG-ON-HAND-DATE PIC S9(04) COMP. 01 ITEM-LEASE-SUPP-NULLS. 05 LSE-NULL-LEASE-SALES-PCT PIC S9(04) COMP. 05 LSE-NULL-LEASE-EXP-DATE PIC S9(04) COMP. 01 PUBLISH-PENDG-ERR-NULLS. 05 PE-NULL-DC-NBR PIC S9(04) COMP VALUE -1. 05 PE-NULL-CROSS-REF-NBR PIC S9(04) COMP VALUE -1. 05 PE-NULL-ASSORTMENT-NBR PIC S9(04) COMP VALUE -1. 01 PUBLISH-PENDING-NULLS. 05 PP-NULL-DEPT-NBR PIC S9(04) COMP. 05 PP-NULL-SUBCLASS-NBR PIC S9(04) COMP. 05 PP-NULL-FINELINE-NBR PIC S9(04) COMP. 05 PP-NULL-MDSE-CATG-NBR PIC S9(04) COMP. 05 PP-NULL-MDSE-SUBCATG-NBR PIC S9(04) COMP. 05 PP-NULL-PRODUCT-NBR PIC S9(04) COMP. 05 PP-NULL-CONSUMER-ITEM-NBR PIC S9(04) COMP. 05 PP-NULL-ITEM-NBR PIC S9(04) COMP. 05 PP-NULL-VAR-TYPE-ID PIC S9(04) COMP. 05 PP-NULL-VAR-ID PIC S9(04) COMP. 05 PP-NULL-DC-NBR PIC S9(04) COMP. 05 PP-NULL-CROSS-REF-NBR PIC S9(04) COMP. 05 PP-NULL-ASSORTMENT-NBR PIC S9(04) COMP. 05 PP-NULL-SEQ-NBR PIC S9(04) COMP. 01- 01 I2A5-SSA-Q. 01- 05 SSA-I2A5-KEY PIC X(8) VALUE 'UPCNO '. 01- 05 SSA-I2A5-SEQ PIC 9(2) VALUE ZERO. 01- 05 FILLER PIC X(2) VALUE ' '. 01- 01 INIT-I2A5-UP-SEGMENT. 01- 03 INIT-I2A5-UP-SEG-LTH PIC S9(4) COMP VALUE 0. 01- 03 INIT-I2A5-UP-KEY PIC X(12) VALUE SPACES. 01- 03 INIT-I2A5UP-LST-CHG. 01- 05 INIT-I2A5UP-LST-CHG-FLAG PIC X VALUE 'N'. 01- 05 INIT-I2A5UP-LST-CHG-DATE. 01- 07 INIT-I2A5UP-LST-CHG-CT PIC 9 VALUE 0. 01- 07 INIT-I2A5UP-LST-CHG-YR PIC 99 VALUE 0. 01- 07 INIT-I2A5UP-LST-CHG-MO PIC 99 VALUE 0. 01- 07 INIT-I2A5UP-LST-CHG-DA PIC 99 VALUE 0. 01- 05 INIT-I2A5UP-LST-CHG-TIME. 01- 07 INIT-I2A5UP-LST-CHG-HR PIC 99 VALUE 0. 01- 07 INIT-I2A5UP-LST-CHG-MI PIC 99 VALUE 0. 01- 05 INIT-I2A5UP-LST-CHG-INIT PIC XXX VALUE SPACES. 01- 05 INIT-I2A5UP-LST-CHG-TERM PIC X(4) VALUE SPACES. 01- 03 INIT-I2A5UP-NBR-OCCURS PIC S999 COMP-3 VALUE +0. 01- 03 INIT-I2A5UP-FIL020 PIC X(5) VALUE SPACES. 01- 03 INIT-I2A5-UP-TAB OCCURS 20 TIMES 01- INDEXED BY I-I2A5-UP-IDX. 01- 05 INIT-I2A5-UP-NBR PIC X(13) VALUE SPACES. 01- 05 INIT-I2A5-UP-FIL040 PIC X(5) VALUE SPACES. ****************************************************************** ** COPY BOOKS ** ****************************************************************** COPY I2ACC. COPY I2A5UPCC. COPY WCI2BCC. COPY I2B5CC. COPY I2CCC. COPY I2PCC. COPY V1ACC. COPY V1DCC. COPY V1PCC. COPY MQUNCC. COPY MQSQCC. COPY TSENV1C. 05- COPY WC6812CC. ***************************************************************** ** COPYBOOK FOR DATE VARIABLES * ***************************************************************** 01 WMDATE-PARMS. COPY WMDATEC. *********************************************************** * DB2 TABLE INCLUDES * *********************************************************** *---------------------------------------------------------* * PARM * *---------------------------------------------------------* EXEC SQL INCLUDE SPARM000 END-EXEC. *---------------------------------------------------------* * PUBLISH_PENDING * *---------------------------------------------------------* EXEC SQL INCLUDE SPUBPEN0 END-EXEC. *---------------------------------------------------------* * PUBLISH_COMPLETE * *---------------------------------------------------------* EXEC SQL INCLUDE SPUBCOM0 END-EXEC. *---------------------------------------------------------* * PUBLISH_PENDG_ERR * *---------------------------------------------------------* EXEC SQL INCLUDE SPUBPER0 END-EXEC. *---------------------------------------------------------* * ITEM * *---------------------------------------------------------* EXEC SQL INCLUDE SITEMTB0 END-EXEC. *---------------------------------------------------------* * ITEM_LOG * *---------------------------------------------------------* EXEC SQL INCLUDE SITMLOG0 END-EXEC. *---------------------------------------------------------* * ITEM_DC_LOG * *---------------------------------------------------------* EXEC SQL INCLUDE SITDCLO0 END-EXEC. *---------------------------------------------------------* * UPC_ITEM * *---------------------------------------------------------* EXEC SQL INCLUDE S0002300 END-EXEC. *---------------------------------------------------------* * UPC_ITEM_LOG * *---------------------------------------------------------* EXEC SQL INCLUDE S0002400 END-EXEC. *---------------------------------------------------------* * CLUB_ITEM_LOG * *---------------------------------------------------------* EXEC SQL INCLUDE SCLITLG0 END-EXEC. *---------------------------------------------------------* * CLUB_ITEM_INVT_LOG * *---------------------------------------------------------* EXEC SQL INCLUDE SCITINL0 END-EXEC. *---------------------------------------------------------* * ITEM_LSE_SUPP_LOG * *---------------------------------------------------------* 01- EXEC SQL 01- INCLUDE SILSLOG0 01- END-EXEC. *---------------------------------------------------------* * ITEM_LEGACY_XREF * *---------------------------------------------------------* EXEC SQL INCLUDE SITCHDI0 END-EXEC. *---------------------------------------------------------* * INF_VNDR_CNTL_SAMS * *---------------------------------------------------------* EXEC SQL INCLUDE SIVCSAM0 END-EXEC. *---------------------------------------------------------* * S_REVW_CYCLE * *---------------------------------------------------------* EXEC SQL INCLUDE SSREVWC0 END-EXEC. *---------------------------------------------------------* * DB2 COMMUNICATIONS AREA * *---------------------------------------------------------* EXEC SQL INCLUDE SQLCA END-EXEC. *---------------------------------------------------------* * PUBLISH_PENDING CURSOR * *---------------------------------------------------------* EXEC SQL DECLARE PUBPEND CURSOR WITH HOLD FOR SELECT A.TABLE_NAME ,A.TRIGGER_TS ,A.CHANGE_TYPE_CODE ,A.DEPT_NBR ,A.SUBCLASS_NBR ,A.FINELINE_NBR ,A.MDSE_CATG_NBR ,A.MDSE_SUBCATG_NBR ,A.PRODUCT_NBR ,A.CONSUMER_ITEM_NBR ,A.ITEM_NBR ,A.VAR_TYPE_ID ,A.VAR_ID ,A.DC_NBR ,A.CROSS_REF_NBR ,A.ASSORTMENT_NBR ,A.SEQ_NBR ,COALESCE (B.LEGACY_ITEM_NBR,0) FROM PUBLISH_PENDING A LEFT JOIN ITEM_LEGACY_XREF B ON A.ITEM_NBR = B.ITEM_NBR WHERE A.TRIGGER_TS > :PUBLISH-PENDING-DATA.TRIGGER-TS ORDER BY A.TRIGGER_TS ASC FOR FETCH ONLY END-EXEC. *---------------------------------------------------------* * CURSOR FOR UPC_ITEM TABLE * *---------------------------------------------------------* EXEC SQL DECLARE UPCITEM CURSOR WITH HOLD FOR SELECT UPC_NBR ,LAST_CHANGE_USERID ,CURRENT TIMESTAMP FROM UPC_ITEM WHERE ITEM_NBR = :UPC-ITEM-DATA.ITEM-NBR AND UPC_NBR :ITEM-DATA.UPC-NBR END-EXEC. ****************************************************************** PROCEDURE DIVISION. ****************************************************************** PERFORM A000000-INITIAL MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM X000400-FETCH-PUB-PEND UNTIL DB2-DONE-SW = 'Y' PERFORM A005000-PROCESS-PUBPEND UNTIL EOF-PUBPEND = 'Y' PERFORM R400000-COMMIT-DATA MOVE 'N' TO DB2-DONE-SW MOVE 1 TO WS-RETRY-CNT PERFORM X000500-CLOSE-PUBPEND UNTIL DB2-DONE-SW = 'Y' PERFORM D200000-TERM-PSB PERFORM R100000-RESTART-SEC PERFORM R200000-RETURN. ****************************************************************** ** DO INITIAL STARTUP PROCESSING ** ****************************************************************** A000000-INITIAL. MOVE 'A000000-INITIAL' TO WS-ABND-PARA. MOVE WHEN-COMPILED TO WS-WHEN-COMP. MOVE WS-WHEN-COMP(1:8) TO WS-WHEN-DT MOVE WS-WHEN-COMP(9:8) TO WS-WHEN-TM EXEC CICS HANDLE ABEND LABEL (D999999-HANDLE-ABEND) END-EXEC. *-----------------------------------------------------------* * CHECK SYSTEM STATUS. IF CICS IS STARTING UP OR SHUTTING * * DOWN, RESTART AND/OR RETURN. * *-----------------------------------------------------------* EXEC CICS INQUIRE SYSTEM CICSSTATUS( WS-CICS-STATUS ) END-EXEC. IF WS-CICS-STATUS = DFHVALUE( STARTUP ) PERFORM R100050-RESTART-MIN PERFORM R200000-RETURN ELSE IF WS-CICS-STATUS = DFHVALUE( FIRSTQUIESCE ) OR WS-CICS-STATUS = DFHVALUE( FINALQUIESCE ) PERFORM R200000-RETURN END-IF END-IF. *-----------------------------------------------------------* * IF STARTED FROM A TERMINAL SEND TEXT AND FREE THE SCREEN * *-----------------------------------------------------------* EXEC CICS ASSIGN STARTCODE (WS-START-CODE) APPLID(WS-REGION) END-EXEC. IF WS-START-CODE = 'TD' EXEC CICS SEND TEXT FROM(WS-START-MSG) LENGTH(LENGTH OF WS-START-MSG) END-EXEC PERFORM R100000-RESTART-SEC PERFORM R200000-RETURN ELSE EXEC CICS RETRIEVE INTO(WS-NOTHING) RESP(WS-CICS-RESP) END-EXEC END-IF. EXEC CICS ASKTIME ABSTIME(ABS-TIME) END-EXEC. EXEC CICS FORMATTIME ABSTIME (ABS-TIME) TIME (SYS-TIME) TIMESEP ('.') YYYYMMDD(SYS-DATE) DATESEP ('-') END-EXEC. MOVE SYS-YY TO WS-CICS-MSG-YY. MOVE SYS-MM TO WS-CICS-MSG-MM. MOVE SYS-DD TO WS-CICS-MSG-DD. MOVE SYS-HR TO WS-CICS-MSG-HR. MOVE SYS-MN TO WS-CICS-MSG-MN. MOVE 80 TO WS-CICS-MSG-LENGTH. ACCEPT CURRENT-DATE FROM DATE YYYYMMDD. ACCEPT CURRENT-TIME FROM TIME. MOVE 'WC6811' TO LAST-UPDATE-PGM-ID OF PUBLISH-PENDG-ERR-DATA MOVE 0 TO ITEM-NBR OF PUBLISH-PENDG-ERR-DATA MOVE WS-REGION TO CICS-REGION-ID OF PUBLISH-PENDG-ERR-DATA BM-REGION MOVE SPACES TO TABLE-NAME OF PUBLISH-PENDG-ERR-DATA STRING SYS-DATE, '-', SYS-TIME, '.000001' DELIMITED BY SIZE INTO LOG-TS OF PUBLISH-PENDG-ERR-DATA PERFORM A000500-GET-TSENV. **-- THIS ENQ COMMAND CHECKS TO MAKE SURE THAT AN WLU0 IS NOT **-- ALREADY RUNNING AS AN ACTIVE TASK. IF NOT ACTIVE, IT WILL **-- CONTINUE, OTHERWISE START UP AGAIN IN 5 MINUTES. EXEC CICS ENQ RESOURCE (WS-GLOBAL-ENQ) LENGTH (LENGTH OF WS-GLOBAL-ENQ) RESP (WS-CICS-RESP) TASK NOSUSPEND END-EXEC. IF WS-CICS-RESP = DFHRESP(ENQBUSY) PERFORM R100050-RESTART-MIN PERFORM R200000-RETURN END-IF. EXEC CICS DELETEQ TS QNAME(WS-ERR-TSQ) RESP (WS-CICS-RESP) END-EXEC. EXEC CICS WRITEQ TS QNAME(WS-ERR-TSQ) FROM(WS-WHEN-MSG) LENGTH(LENGTH OF WS-WHEN-MSG) RESP(WS-CICS-RESP) END-EXEC. PERFORM A001000-PARM-PROCESS. MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW MOVE '2008-01-01-00.01.01.000001' TO TRIGGER-TS OF PUBLISH-PENDING-DATA PERFORM X000000-OPEN-PUB-PEND-CURS UNTIL DB2-DONE-SW = 'Y'. PERFORM D000000-SCHED-PSB. ****************************************************************** ** READ DATA FROM PARM TBL TO VERIFY THE START/STOP STATUS OF ** ** THE P2BRIDGE ** ****************************************************************** A001000-PARM-PROCESS. MOVE 'A001000-PARM-PROCESS' TO WS-ABND-PARA. MOVE 2 TO PARM-TYPE-CODE OF PARM-DATA MOVE 'P2BRIDGE' TO PROCESS-NAME OF PARM-DATA MOVE 0 TO WS-TIME-PERIOD MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM A001100-SLCT-PARM UNTIL DB2-DONE-SW = 'Y' IF PARM-NAME OF PARM-DATA NOT = 'RUN' IF PUBPEND-OPEN-SW = 'Y' MOVE 'N' TO DB2-DONE-SW MOVE 1 TO WS-RETRY-CNT PERFORM X000500-CLOSE-PUBPEND UNTIL DB2-DONE-SW = 'Y' END-IF MOVE 'WC6811 TURNED OFF' TO TABLE-NAME OF PUBLISH-PENDG-ERR-DATA WS-CICS-MSG-AREA MOVE 'WC6811 TURNED OFF: DATA WILL NOT BE PROCESSED' TO WS-DB2-TXT MOVE SQLCODE TO WS-DB2-CODE MOVE WS-DB2-MSG TO ERROR-DESC-TEXT MOVE LENGTH OF WS-DB2-MSG TO ERROR-DESC-LEN PERFORM R700000-WRITE-TSQ-ERROR MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM X000100-ISRT-PUB-PENDG-ERR UNTIL DB2-DONE-SW = 'Y' IF STATUS-CODE OF PARM-DATA = 'Y' PERFORM R100050-RESTART-MIN PERFORM R200000-RETURN END-IF END-IF. IF STATUS-CODE OF PARM-DATA NOT = 'Y' IF PUBPEND-OPEN-SW = 'Y' MOVE 'N' TO DB2-DONE-SW MOVE 1 TO WS-RETRY-CNT PERFORM X000500-CLOSE-PUBPEND UNTIL DB2-DONE-SW = 'Y' END-IF MOVE 'PROCESS STOPPING' TO TABLE-NAME OF PUBLISH-PENDG-ERR-DATA WS-CICS-MSG-AREA MOVE 'WC6811 RUN STOPPED DUE TO PARM TABLE VALUE' TO WS-DB2-TXT MOVE SQLCODE TO WS-DB2-CODE MOVE WS-DB2-MSG TO ERROR-DESC-TEXT MOVE LENGTH OF WS-DB2-MSG TO ERROR-DESC-LEN PERFORM R700000-WRITE-TSQ-ERROR MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM X000100-ISRT-PUB-PENDG-ERR UNTIL DB2-DONE-SW = 'Y' PERFORM R200000-RETURN END-IF. IF WS-TIME-PERIOD = WS-SAVE-TIME-PERIOD IF MIN-TS-SET-SW = 'N' MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM A001200-SET-MIN-TS UNTIL DB2-DONE-SW = 'Y' END-IF ELSE MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM A001200-SET-MIN-TS UNTIL DB2-DONE-SW = 'Y' END-IF. MOVE WS-TIME-PERIOD TO WS-SAVE-TIME-PERIOD. ****************************************************************** ** CHECK PARM TABLE TO SEE IF THIS PROGRAM SHOULD BE ** ** PROCESSING DATA. ** ** ALSO GET THE TIME PERIOD TO SET THE MINIMUM TIMESTAMP. ** ** TIME PERIOD IS STORED IN THE STORE_NBR FIELD OF PARM TABLE. ** ****************************************************************** A001100-SLCT-PARM. MOVE 'A001100-SLCT-PARM' TO WS-ABND-PARA. EXEC SQL SELECT PARM_NAME ,STATUS_CODE ,STORE_NBR ,MDSE_CATG_NBR INTO :PARM-DATA.PARM-NAME ,:PARM-DATA.STATUS-CODE ,:WS-TIME-PERIOD :WS-TIME-PERIOD-NULL ,:WS-COMMIT-LIMIT :WS-COMMIT-LIMIT-NULL FROM PARM WHERE PROCESS_NAME = :PARM-DATA.PROCESS-NAME AND PARM_TYPE_CODE = :PARM-DATA.PARM-TYPE-CODE WITH UR END-EXEC. EVALUATE SQLCODE WHEN 0 MOVE 'Y' TO DB2-DONE-SW IF WS-TIME-PERIOD-NULL < 0 MOVE 120 TO WS-TIME-PERIOD END-IF IF WS-COMMIT-LIMIT-NULL < 0 MOVE 1 TO WS-COMMIT-LIMIT END-IF WHEN +100 MOVE 'PROCESS STOPPING' TO TABLE-NAME OF PUBLISH-PENDG-ERR-DATA WS-CICS-MSG-AREA MOVE 'WC6811 RUN STOPPED - NO ROW IN PARM TABLE' TO WS-DB2-TXT MOVE SQLCODE TO WS-DB2-CODE MOVE WS-DB2-MSG TO ERROR-DESC-TEXT MOVE LENGTH OF WS-DB2-MSG TO ERROR-DESC-LEN PERFORM R700000-WRITE-TSQ-ERROR MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM X000100-ISRT-PUB-PENDG-ERR UNTIL DB2-DONE-SW = 'Y' PERFORM R200000-RETURN WHEN -913 IF WS-RETRY-CNT = 0 MOVE ITEM-NBR OF PUBLISH-PENDING-DATA TO ITEM-NBR OF PUBLISH-PENDG-ERR-DATA ELSE MOVE 0 TO ITEM-NBR OF PUBLISH-PENDG-ERR-DATA END-IF MOVE TABLE-NAME OF PUBLISH-PENDING-DATA TO TABLE-NAME OF PUBLISH-PENDG-ERR-DATA MOVE TRIGGER-TS OF PUBLISH-PENDING-DATA TO LOG-TS OF PUBLISH-PENDG-ERR-DATA MOVE PP-NULL-DC-NBR TO PE-NULL-DC-NBR IF PP-NULL-DC-NBR >= 0 MOVE DC-NBR OF PUBLISH-PENDING-DATA TO DC-NBR OF PUBLISH-PENDG-ERR-DATA END-IF. MOVE -1 TO PE-NULL-CROSS-REF-NBR MOVE -1 TO PE-NULL-ASSORTMENT-NBR MOVE 'Y' TO PUBPEND-SW IF TABLE-NAME OF PUBLISH-PENDING-DATA = 'UPC_ITEM' MOVE TRIGGER-TS OF PUBLISH-PENDING-DATA TO WS-DLET-PUBPEND-TS MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM X000050-SLCT-PUBPEND UNTIL DB2-DONE-SW = 'Y' END-IF. IF PUBPEND-SW = 'Y' IF TRIGGER-TS OF PUBLISH-PENDING-DATA >= WS-MIN-TS PERFORM A005001-PROCESS-ROW ELSE MOVE WS-OLD-MSG TO ERROR-DESC-TEXT MOVE LENGTH OF WS-OLD-MSG TO ERROR-DESC-LEN MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM X000100-ISRT-PUB-PENDG-ERR UNTIL DB2-DONE-SW = 'Y' END-IF END-IF. MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM X000200-ISRT-PUBCOMP UNTIL DB2-DONE-SW = 'Y'. IF TABLE-NAME OF PUBLISH-PENDING-DATA = 'UPC_ITEM' IF PUBPEND-SW = 'Y' MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM X000350-DLET-PUBPEND-UPCITEM UNTIL DB2-DONE-SW = 'Y' END-IF ELSE MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM X000300-DLET-PUBPEND UNTIL DB2-DONE-SW = 'Y' END-IF. ADD 1 TO WS-ROW-CNT. IF WS-ROW-CNT >= WS-COMMIT-LIMIT PERFORM R400000-COMMIT-DATA PERFORM D200000-TERM-PSB PERFORM A001000-PARM-PROCESS PERFORM D000000-SCHED-PSB END-IF. MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM X000400-FETCH-PUB-PEND UNTIL DB2-DONE-SW = 'Y'. ****************************************************************** ** PROCESS THE ROW FETCHED FROM PUBPEND CURSOR ****************************************************************** A005001-PROCESS-ROW. MOVE 'A005001-PROCESS-ROW' TO WS-ABND-PARA. IF LEGACY-ITEM-NBR OF ITEM-LEGACY-XREF-DATA > 0 EVALUATE TABLE-NAME OF PUBLISH-PENDING-DATA WHEN 'ITEM' IF PP-NULL-ITEM-NBR >= 0 PERFORM A100000-PROCESS-ITEM END-IF WHEN 'ITEM_DC' IF PP-NULL-ITEM-NBR >= 0 AND PP-NULL-DC-NBR >= 0 PERFORM A200000-PROCESS-DC END-IF WHEN 'CLUB_ITEM' IF PP-NULL-ITEM-NBR >= 0 AND PP-NULL-DC-NBR >= 0 PERFORM A300000-PROCESS-CLUB END-IF WHEN 'CLUB_ITEM_INVT' IF PP-NULL-ITEM-NBR >= 0 AND PP-NULL-DC-NBR >= 0 PERFORM A400000-PROCESS-CLUB-INVT END-IF WHEN 'UPC_ITEM' IF PP-NULL-ITEM-NBR >= 0 PERFORM A500000-PROCESS-UPC END-IF 01- WHEN 'ITEM_LEASE_SUPP' 01- IF PP-NULL-ITEM-NBR >= 0 01- PERFORM A600000-PROCESS-ITEM-LEASE 01- END-IF WHEN OTHER MOVE TABLE-NAME OF PUBLISH-PENDING-DATA TO WS-KNOWN-TABLES IF KNOWN-TBL CONTINUE ELSE MOVE 'INVALID TABLE NAME ' TO ERROR-DESC-TEXT MOVE 19 TO ERROR-DESC-LEN MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM X000100-ISRT-PUB-PENDG-ERR UNTIL DB2-DONE-SW = 'Y' END-IF END-EVALUATE ELSE MOVE 'LEGACY ITEM # NOT FOUND ' TO ERROR-DESC-TEXT MOVE 24 TO ERROR-DESC-LEN PERFORM E000000-LOG-ERROR END-IF. ****************************************************************** ** THIS PARAGRAPH EXECUTES THE CODE TO UPDATE/INSERT/DELETE ** ** LEGACY HOST ITEM INFO DEPENDING ON THE CHANGE TYPE CODE ** ****************************************************************** A100000-PROCESS-ITEM. MOVE 'A100000-PROCESS-ITEM' TO WS-ABND-PARA. MOVE ITEM-NBR OF PUBLISH-PENDING-DATA TO ITEM-NBR OF ITEM-LOG-DATA MOVE TRIGGER-TS OF PUBLISH-PENDING-DATA TO LOG-TS OF ITEM-LOG-DATA. MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM A100500-SLCT-ITEM-LOG UNTIL DB2-DONE-SW = 'Y' MOVE LEGACY-ITEM-NBR OF ITEM-LEGACY-XREF-DATA TO I2A-KEY-SAMS PERFORM D300000-GU-I2A IF FOUND-SW = 'N' IF CHANGE-TYPE-CODE OF PUBLISH-PENDING-DATA = 'U' MOVE 'I' TO CHANGE-TYPE-CODE OF PUBLISH-PENDING-DATA END-IF ELSE IF CHANGE-TYPE-CODE OF PUBLISH-PENDING-DATA = 'I' MOVE 'U' TO CHANGE-TYPE-CODE OF PUBLISH-PENDING-DATA END-IF END-IF. EVALUATE CHANGE-TYPE-CODE OF PUBLISH-PENDING-DATA WHEN 'I' PERFORM A101000-INSERT-ITEM WHEN 'U' PERFORM A102000-UPDATE-ITEM WHEN OTHER MOVE 'INVALID CHANGE TYPE FOR ITEM ' TO ERROR-DESC-TEXT MOVE LENGTH OF WS-OLD-MSG TO ERROR-DESC-LEN MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM X000100-ISRT-PUB-PENDG-ERR UNTIL DB2-DONE-SW = 'Y' END-EVALUATE. IF TSENV-COUNTRY-CODE = 'US' IF CA-MCLANE-WAREHOUSE PERFORM A104000-APPLY-MCLANES TEST * IF TSENV-PROD PERFORM A105000-CREATE-MCLANES-FEED TEST * END-IF END-IF END-IF. ****************************************************************** ** APPLY MCLANE INFORMATION ** ****************************************************************** A104000-APPLY-MCLANES. MOVE 'A104000-APPLY-MCLANES' TO WS-ABND-PARA. MOVE I2A-SEGMENT TO I2A-SEGMENT-AREA. MOVE ALL ZEROES TO WHSE-NUM-TAB. MOVE '6071' TO WHSE-NUM (1). MOVE 'T' TO CA-ACTION. MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM A104050-GET-TIMESTAMP UNTIL DB2-DONE-SW = 'Y'. ****************************************************************** ** GET CURRENT TIMESTAMP FOR MCLANE FEED ** ****************************************************************** A104050-GET-TIMESTAMP. MOVE 'A104050-GET-TIMESTAMP' TO WS-ABND-PARA. EXEC SQL SET :CA-TIMESTAMP = CURRENT TIMESTAMP END-EXEC. EVALUATE SQLCODE WHEN 0 MOVE 'Y' TO DB2-DONE-SW WHEN OTHER MOVE 'FAIL TO SET MCLANE TIMESTAMP ' TO WS-DB2-TXT MOVE SQLCODE TO WS-DB2-CODE MOVE WS-DB2-MSG TO ERROR-DESC-TEXT MOVE LENGTH OF WS-DB2-MSG TO ERROR-DESC-LEN PERFORM E000000-LOG-ERROR END-EVALUATE. ****************************************************************** ** LINK TO WCV504 PASSING PARAMETER LIST ** ****************************************************************** A105000-CREATE-MCLANES-FEED. MOVE 'A105000-CREATE-MCLANES-FEED' TO WS-ABND-PARA. EXEC CICS LINK PROGRAM('WCV504') COMMAREA(WS-MCLANE-ITEM) LENGTH(LENGTH OF WS-MCLANE-ITEM) END-EXEC. IF CA-MQ-FLAG = ' ' CONTINUE ELSE MOVE CA-RETURN-CODE TO BM-CODE WS-MQ-CODE MOVE 'MQS' TO BM-TYPE MOVE WS-BEEP-MESSAGE-RPT TO BM-MESSAGE MOVE WS-MQ-MSG TO ERROR-DESC-TEXT MOVE LENGTH OF WS-MQ-MSG TO ERROR-DESC-LEN PERFORM R600000-SEND-PAGE PERFORM E000000-LOG-ERROR END-IF. ****************************************************************** ** SELECT FROM ITEM TABLE ** ****************************************************************** A100500-SLCT-ITEM-LOG. MOVE 'A100500-SLCT-ITEM-LOG' TO WS-ABND-PARA. EXEC SQL SELECT ITEM_NBR ,MDS_FAM_ID ,VENDOR_STOCK_ID ,DEPT_NBR ,SUBCLASS_NBR ,UPC_NBR ,ITEM_STATUS_CODE ,ITEM_CREATE_DT ,ITEM_ORD_EFF_DATE ,ITEM_EXPIRE_DATE ,ITEM_TYPE_CODE ,REPL_SUBTYPE_CODE ,VARIABLE_WT_IND ,BACKRM_SCALE_IND ,TEMP_SENSITIVE_IND ,DESTINATION_CODE ,BASE_RETAIL_UOM_CD ,CANNED_ORDER_IND ,ITEM_SCANNABLE_IND ,SHELF_LBL_RQMT_IND ,ITEM1_DESC ,ITEM2_DESC ,UPC_DESC ,SHLFLBL1_COLR_DESC ,SHLFLBL2_SIZE_DESC ,MBM_CODE ,ITEM_RPLNSHBL_IND ,INFRM_REORD_TYP_CD ,WHSE_ALIGN_TYPE_CD ,CANCEL_WHN_OUT_IND ,VNPK_CSPK_CODE ,VNPK_QTY ,VNPK_WEIGHT_QTY ,VNPK_CUBE_QTY ,VNDR_MIN_ORD_QTY ,WHPK_SELL_AMT ,WHPK_QTY ,WHPK_CUBE_QTY ,WHPK_WEIGHT_QTY ,WHSE_MAX_ORDER_QTY ,WHPK_CALC_MTHD_CD ,CONVEYABLE_IND ,VENDOR_NBR ,VENDOR_DEPT_NBR ,VENDOR_SEQ_NBR ,GUAR_SALES_IND ,SIGNING_DESC ,VNDR_INCRM_ORD_QTY ,NEVER_OUT_IND ,ACCTG_DEPT_NBR ,RESERVE_MDSE_CODE ,PRESN_UNIT_QTY ,SUPP_DISPLAY_IND ,SELL_QTY ,SELL_UOM_CODE 01- ,PROMPT_PRICE_IND ,LAST_UPDATE_USERID 04- ,PALLET_TI_QTY 04- ,PALLET_HI_QTY INTO :ITEM-LOG-DATA.ITEM-NBR ,:ITEM-LOG-DATA.MDS-FAM-ID ,:ITEM-LOG-DATA.VENDOR-STOCK-ID ,:ITEM-LOG-DATA.DEPT-NBR ,:ITEM-LOG-DATA.SUBCLASS-NBR ,:ITEM-LOG-DATA.UPC-NBR ,:ITEM-LOG-DATA.ITEM-STATUS-CODE ,:ITEM-LOG-DATA.ITEM-CREATE-DT ,:ITEM-LOG-DATA.ITEM-ORD-EFF-DATE :I-NULL-ITEM-ORD-EFF-DATE ,:ITEM-LOG-DATA.ITEM-EXPIRE-DATE :I-NULL-ITEM-EXPIRE-DATE ,:ITEM-LOG-DATA.ITEM-TYPE-CODE ,:ITEM-LOG-DATA.REPL-SUBTYPE-CODE ,:ITEM-LOG-DATA.VARIABLE-WT-IND ,:ITEM-LOG-DATA.BACKRM-SCALE-IND ,:ITEM-LOG-DATA.TEMP-SENSITIVE-IND ,:ITEM-LOG-DATA.DESTINATION-CODE :I-NULL-DESTINATION-CODE ,:ITEM-LOG-DATA.BASE-RETAIL-UOM-CD ,:ITEM-LOG-DATA.CANNED-ORDER-IND ,:ITEM-LOG-DATA.ITEM-SCANNABLE-IND ,:ITEM-LOG-DATA.SHELF-LBL-RQMT-IND ,:ITEM-LOG-DATA.ITEM1-DESC ,:ITEM-LOG-DATA.ITEM2-DESC :I-NULL-ITEM2-DESC ,:ITEM-LOG-DATA.UPC-DESC ,:ITEM-LOG-DATA.SHLFLBL1-COLR-DESC :I-NULL-SHLFLBL1-COLR-DESC ,:ITEM-LOG-DATA.SHLFLBL2-SIZE-DESC :I-NULL-SHLFLBL2-SIZE-DESC ,:ITEM-LOG-DATA.MBM-CODE ,:ITEM-LOG-DATA.ITEM-RPLNSHBL-IND ,:ITEM-LOG-DATA.INFRM-REORD-TYP-CD :I-NULL-INFRM-REORD-TYP-CD ,:ITEM-LOG-DATA.WHSE-ALIGN-TYPE-CD :I-NULL-WHSE-ALIGN-TYPE-CD ,:ITEM-LOG-DATA.CANCEL-WHN-OUT-IND ,:ITEM-LOG-DATA.VNPK-CSPK-CODE ,:ITEM-LOG-DATA.VNPK-QTY ,:ITEM-LOG-DATA.VNPK-WEIGHT-QTY :I-NULL-VNPK-WEIGHT-QTY ,:ITEM-LOG-DATA.VNPK-CUBE-QTY :I-NULL-VNPK-CUBE-QTY ,:ITEM-LOG-DATA.VNDR-MIN-ORD-QTY :I-NULL-VNDR-MIN-ORD-QTY ,:ITEM-LOG-DATA.WHPK-SELL-AMT ,:ITEM-LOG-DATA.WHPK-QTY ,:ITEM-LOG-DATA.WHPK-CUBE-QTY :I-NULL-WHPK-CUBE-QTY ,:ITEM-LOG-DATA.WHPK-WEIGHT-QTY :I-NULL-WHPK-WEIGHT-QTY ,:ITEM-LOG-DATA.WHSE-MAX-ORDER-QTY :I-NULL-WHSE-MAX-ORDER-QTY ,:ITEM-LOG-DATA.WHPK-CALC-MTHD-CD :I-NULL-WHPK-CALC-MTHD-CD ,:ITEM-LOG-DATA.CONVEYABLE-IND ,:ITEM-LOG-DATA.VENDOR-NBR ,:ITEM-LOG-DATA.VENDOR-DEPT-NBR ,:ITEM-LOG-DATA.VENDOR-SEQ-NBR ,:ITEM-LOG-DATA.GUAR-SALES-IND ,:ITEM-LOG-DATA.SIGNING-DESC ,:ITEM-LOG-DATA.VNDR-INCRM-ORD-QTY :I-NULL-VNDR-INCRM-ORD-QTY ,:ITEM-LOG-DATA.NEVER-OUT-IND ,:ITEM-LOG-DATA.ACCTG-DEPT-NBR :I-NULL-ACCTG-DEPT-NBR ,:ITEM-LOG-DATA.RESERVE-MDSE-CODE :I-NULL-RESERVE-MDSE-CODE ,:ITEM-LOG-DATA.PRESN-UNIT-QTY :I-NULL-PRESN-UNIT-QTY ,:ITEM-LOG-DATA.SUPP-DISPLAY-IND ,:ITEM-LOG-DATA.SELL-QTY ,:ITEM-LOG-DATA.SELL-UOM-CODE 01- ,:ITEM-LOG-DATA.PROMPT-PRICE-IND ,:ITEM-LOG-DATA.LAST-UPDATE-USERID 04- ,:ITEM-LOG-DATA.PALLET-TI-QTY 04- :I-NULL-PALLET-TI-QTY-CD 04- ,:ITEM-LOG-DATA.PALLET-HI-QTY 04- :I-NULL-PALLET-HI-QTY-CD FROM ITEM_LOG WHERE ITEM_NBR = :ITEM-LOG-DATA.ITEM-NBR AND LOG_TS = :ITEM-LOG-DATA.LOG-TS END-EXEC. EVALUATE SQLCODE WHEN 0 MOVE 'Y' TO DB2-DONE-SW WHEN +100 MOVE 'ITEM_LOG ROW NOT FOUND' TO WS-DB2-TXT MOVE SQLCODE TO WS-DB2-CODE MOVE WS-DB2-MSG TO ERROR-DESC-TEXT MOVE LENGTH OF WS-DB2-MSG TO ERROR-DESC-LEN PERFORM E000000-LOG-ERROR WHEN -911 IF WS-911-RETRY-CNT SPACES PERFORM D402000-ISRT-I2P 01- END-IF END-IF. 01- PERFORM D303000-GNP-I2B5 01- IF EOF-I2B5 = 'N' 01- PERFORM A102100-VERIFY-PRICE-FLAG 01- END-IF. 01- IF I2A-UPC-CHANGED-SW = 'Y' 01- PERFORM A500000-PROCESS-UPC 01- MOVE I2A-UPC-CODE-NUM TO WS-UPC-CODE-NUM 01- PERFORM A101120-PROCESS-MQUN-SEGMENT 01- END-IF. * ****************************************************************** ** THIS PARAGRAPH MOVES THE ITEM_LOG TABLE COLUMNS TO THE ** ** CORRESPONDING FIELDS ON THE I2A-SEGMENT ** ****************************************************************** A101050-MOVE-DEFAULT-I2A-DATA. MOVE 'A101050-MOVE-DEFAULT-I2A-DATA' TO WS-ABND-PARA. MOVE ZEROS TO I2A-COST-PRICE-EF-DATE I2A-TAX-CODE I2A-UNIT-RETAIL I2A-VNDR-PACK-COST I2A-WHSE-PACK-COST MOVE SPACE TO I2A-STOCK-STATUS I2A-DSD-FLAG MOVE 'N' TO I2A-FOOD-STAMP I2A-SEND-STORE-NET I2A-SEND-UPC-SERIES1 MOVE '0' TO I2A-MULTI-CYCLE-FLAG. ****************************************************************** ** THIS PARAGRAPH MOVES THE ITEM_LOG TABLE COLUMNS TO THE ** ** CORRESPONDING FIELDS ON THE I2A-SEGMENT ** ****************************************************************** A101100-MOVE-I2A-DATA. MOVE 'A101100-MOVE-I2A-DATA' TO WS-ABND-PARA. MOVE LEGACY-ITEM-NBR OF ITEM-LEGACY-XREF-DATA TO I2A-KEY-SAMS. MOVE VENDOR-STOCK-ID OF ITEM-LOG-DATA TO I2A-VNDR-STK-NO. MOVE DEPT-NBR OF ITEM-LOG-DATA TO WS-NUMERIC2. MOVE WS-NUMERIC2 TO I2A-CATEGORY. MOVE SUBCLASS-NBR OF ITEM-LOG-DATA TO WS-NUMERIC2. MOVE WS-NUMERIC2 TO I2A-SUBCATEGORY. IF CHANGE-TYPE-CODE OF PUBLISH-PENDING-DATA = 'U' MOVE 'N' TO I2A-UPC-CHANGED-SW IF I2A-UPC-CODE-NUM NOT = UPC-NBR OF ITEM-LOG-DATA MOVE I2A-UPC-CODE-NUM TO WS-OLD-UPC-CODE-NUM MOVE 'Y' TO I2A-UPC-CHANGED-SW MOVE UPC-NBR OF ITEM-LOG-DATA TO I2A-UPC-CODE-NUM PERFORM A101121-VERIFY-AND-DLET-MQUN END-IF ELSE MOVE UPC-NBR OF ITEM-LOG-DATA TO I2A-UPC-CODE-NUM END-IF. MOVE ITEM-STATUS-CODE OF ITEM-LOG-DATA TO I2A-STATUS. IF ITEM-CREATE-DT OF ITEM-LOG-DATA NOT = '0001-01-01' MOVE ITEM-CREATE-DT OF ITEM-LOG-DATA TO WMD-CAL-DATE MOVE 'A' TO WMD-FUNCT CALL 'WMDATE' USING WMDATE-PARMS IF WMD-STAT = SPACES MOVE WMD-YMD TO I2A-NEW-ITEM-DATE ELSE MOVE SPACES TO I2A-NEW-ITEM-DATE END-IF ELSE MOVE SPACES TO I2A-NEW-ITEM-DATE END-IF. IF I-NULL-ITEM-ORD-EFF-DATE NOT = -1 MOVE ITEM-ORD-EFF-DATE OF ITEM-LOG-DATA TO WMD-CAL-DATE MOVE 'A' TO WMD-FUNCT CALL 'WMDATE' USING WMDATE-PARMS IF WMD-STAT = SPACES MOVE WMD-YMD TO I2A-ITEM-EF-DATE ELSE MOVE SPACES TO I2A-ITEM-EF-DATE END-IF ELSE MOVE SPACES TO I2A-ITEM-EF-DATE END-IF. IF I-NULL-ITEM-EXPIRE-DATE NOT = -1 MOVE ITEM-EXPIRE-DATE OF ITEM-LOG-DATA TO WMD-CAL-DATE MOVE 'A' TO WMD-FUNCT CALL 'WMDATE' USING WMDATE-PARMS IF WMD-STAT = SPACES MOVE WMD-YMD TO I2A-ITEM-EXPIRE-DATE ELSE MOVE '999999' TO I2A-ITEM-EXPIRE-DATE END-IF ELSE MOVE '999999' TO I2A-ITEM-EXPIRE-DATE END-IF. MOVE REPL-SUBTYPE-CODE OF ITEM-LOG-DATA TO I2A-REPLEN-SUB-TYPE. MOVE ITEM-TYPE-CODE OF ITEM-LOG-DATA TO WS-NUMERIC2. MOVE WS-NUMERIC2 TO I2A-ITEM-TYPE. IF I-NULL-RESERVE-MDSE-CODE NOT = -1 IF RESERVE-MDSE-CODE OF ITEM-LOG-DATA = 9 MOVE 'Y' TO I2A-RESERVE-MDSE-CODE ELSE MOVE RESERVE-MDSE-CODE OF ITEM-LOG-DATA TO I2A-RESERVE-MDSE-CODE END-IF ELSE MOVE ZERO TO I2A-RESERVE-MDSE-CODE END-IF. IF BACKRM-SCALE-IND OF ITEM-LOG-DATA = 'Y' MOVE 'B' TO I2A-SCALE-ITM-FLG ELSE IF VARIABLE-WT-IND OF ITEM-LOG-DATA = 'Y' MOVE 'Y' TO I2A-SCALE-ITM-FLG ELSE MOVE 'N' TO I2A-SCALE-ITM-FLG END-IF END-IF. MOVE TEMP-SENSITIVE-IND OF ITEM-LOG-DATA TO I2A-TEMP-ITEM. IF I-NULL-DESTINATION-CODE NOT = -1 MOVE DESTINATION-CODE OF ITEM-LOG-DATA TO I2A-HYPER-FLAG ELSE MOVE '0' TO I2A-HYPER-FLAG END-IF. MOVE BASE-RETAIL-UOM-CD OF ITEM-LOG-DATA TO I2A-UNIT-OF-MEAS. MOVE CANNED-ORDER-IND OF ITEM-LOG-DATA TO I2A-CAN-ORD-FLAG. MOVE ITEM-SCANNABLE-IND OF ITEM-LOG-DATA TO I2A-POINT-OF-SALE. MOVE SHELF-LBL-RQMT-IND OF ITEM-LOG-DATA TO I2A-SHF-LBL-PRNT. MOVE ITEM1-DESC OF ITEM-LOG-DATA TO I2A-DESC1. IF I-NULL-ITEM2-DESC NOT = -1 MOVE ITEM2-DESC OF ITEM-LOG-DATA TO I2A-DESC2 ELSE MOVE SPACES TO I2A-DESC2 END-IF. IF I-NULL-SHLFLBL1-COLR-DESC NOT = -1 MOVE SHLFLBL1-COLR-DESC OF ITEM-LOG-DATA TO I2A-COLOR ELSE MOVE SPACES TO I2A-COLOR END-IF. IF I-NULL-SHLFLBL2-SIZE-DESC NOT = -1 MOVE SHLFLBL2-SIZE-DESC OF ITEM-LOG-DATA TO I2A-SIZE ELSE MOVE SPACES TO I2A-SIZE END-IF. MOVE UPC-DESC OF ITEM-LOG-DATA TO I2A-UPC-DESC. MOVE MBM-CODE OF ITEM-LOG-DATA TO I2A-MBM-CODE. MOVE ITEM-RPLNSHBL-IND OF ITEM-LOG-DATA TO I2A-O-B-CODE IF I-NULL-INFRM-REORD-TYP-CD NOT = -1 MOVE INFRM-REORD-TYP-CD OF ITEM-LOG-DATA TO I2A-INFOREM-REORDER ELSE MOVE SPACES TO I2A-INFOREM-REORDER END-IF. IF I-NULL-WHSE-ALIGN-TYPE-CD NOT = -1 MOVE WHSE-ALIGN-TYPE-CD OF ITEM-LOG-DATA TO I2A-WH-ALIGN ELSE MOVE SPACES TO I2A-WH-ALIGN END-IF. MOVE CANCEL-WHN-OUT-IND OF ITEM-LOG-DATA TO I2A-CANCEL-WHEN-OUT. MOVE VNPK-CSPK-CODE OF ITEM-LOG-DATA TO I2A-MASTER-PACK-CODE. MOVE VNPK-QTY OF ITEM-LOG-DATA TO I2A-VNDR-PACK-QTY. IF I-NULL-VNPK-WEIGHT-QTY NOT = -1 MOVE VNPK-WEIGHT-QTY OF ITEM-LOG-DATA TO I2A-VNDR-PACK-WGT ELSE MOVE 0 TO I2A-VNDR-PACK-WGT END-IF. IF I-NULL-VNPK-CUBE-QTY NOT = -1 IF VNPK-CUBE-QTY OF ITEM-LOG-DATA > 99.9 MOVE 99.9 TO I2A-VNDR-PACK-CUBE ELSE MOVE VNPK-CUBE-QTY OF ITEM-LOG-DATA TO I2A-VNDR-PACK-CUBE END-IF ELSE MOVE 0 TO I2A-VNDR-PACK-CUBE END-IF. IF I-NULL-VNDR-MIN-ORD-QTY NOT = -1 MOVE VNDR-MIN-ORD-QTY OF ITEM-LOG-DATA TO I2A-MIN-ORD-QTY ELSE MOVE 0 TO I2A-MIN-ORD-QTY END-IF. MOVE WHPK-SELL-AMT OF ITEM-LOG-DATA TO I2A-WHSE-PACK-SELL. MOVE WHPK-QTY OF ITEM-LOG-DATA TO I2A-WHSE-PACK-QTY. IF I-NULL-WHPK-WEIGHT-QTY NOT = -1 MOVE WHPK-WEIGHT-QTY OF ITEM-LOG-DATA TO I2A-WHSE-PACK-WGT ELSE MOVE 0 TO I2A-WHSE-PACK-WGT END-IF. IF I-NULL-WHPK-CUBE-QTY NOT = -1 IF WHPK-CUBE-QTY OF ITEM-LOG-DATA > 99.9 MOVE 99.9 TO I2A-WHSE-PACK-CUBE ELSE MOVE WHPK-CUBE-QTY OF ITEM-LOG-DATA TO I2A-WHSE-PACK-CUBE END-IF ELSE MOVE 0 TO I2A-WHSE-PACK-CUBE END-IF. IF I-NULL-WHSE-MAX-ORDER-QTY NOT = -1 MOVE WHSE-MAX-ORDER-QTY OF ITEM-LOG-DATA TO I2A-MAX-ORD-QTY ELSE MOVE 0 TO I2A-MAX-ORD-QTY END-IF. IF I-NULL-WHPK-CALC-MTHD-CD NOT = -1 MOVE WHPK-CALC-MTHD-CD OF ITEM-LOG-DATA TO I2A-AVG-WHSE-CODE ELSE MOVE 'A' TO I2A-AVG-WHSE-CODE END-IF. MOVE CONVEYABLE-IND OF ITEM-LOG-DATA TO I2A-CONVEY-CODE MOVE VENDOR-NBR OF ITEM-LOG-DATA TO VN-NUMB MOVE VN-NUMB TO I2A-REMIT MOVE VENDOR-DEPT-NBR OF ITEM-LOG-DATA TO VN-DP MOVE VN-DP TO I2A-DP I2A-ORDER-DEPT MOVE VENDOR-SEQ-NBR OF ITEM-LOG-DATA TO VN-SUB MOVE VN-SUB TO I2A-SUBSEQ IF I2A-REMIT = ('074455' OR '104021' OR '104031' OR '104043' OR '378633' OR '489174' OR '489164') MOVE 'Y' TO I2A-SAMS-SMDC ELSE MOVE 'N' TO I2A-SAMS-SMDC END-IF. MOVE GUAR-SALES-IND OF ITEM-LOG-DATA TO I2A-GUARANTEED-SALE MOVE NEVER-OUT-IND OF ITEM-LOG-DATA TO I2A-NEVER-OUT IF I-NULL-ACCTG-DEPT-NBR NOT = -1 MOVE ACCTG-DEPT-NBR OF ITEM-LOG-DATA TO WS-NUMERIC2 MOVE WS-NUMERIC2 TO I2A-ACCNTG-DEPT ELSE MOVE '00' TO I2A-ACCNTG-DEPT END-IF. IF I-NULL-PRESN-UNIT-QTY NOT = -1 MOVE PRESN-UNIT-QTY OF ITEM-LOG-DATA TO I2A-PRESENTATION-QTY ELSE MOVE 0 TO I2A-PRESENTATION-QTY END-IF. MOVE SUPP-DISPLAY-IND OF ITEM-LOG-DATA TO I2A-SAMS-CNTL-LABEL IF I-NULL-VNDR-INCRM-ORD-QTY NOT = -1 MOVE VNDR-INCRM-ORD-QTY OF ITEM-LOG-DATA TO I2A-WH-PAL-QTY ELSE MOVE 0 TO I2A-WH-PAL-QTY END-IF. MOVE SELL-QTY OF ITEM-LOG-DATA TO I2A-SERVING-QTY MOVE SELL-UOM-CODE OF ITEM-LOG-DATA TO I2A-SERVING-DESC. 04- MOVE ZEROS TO WS-TEMP-I2A-PALLET-QTY. 04- IF I-NULL-PALLET-TI-QTY-CD NOT = -1 AND 04- I-NULL-PALLET-HI-QTY-CD NOT = -1 04- COMPUTE WS-TEMP-I2A-PALLET-QTY = 04- (VNPK-QTY OF ITEM-LOG-DATA * 04- PALLET-TI-QTY OF ITEM-LOG-DATA * 04- PALLET-HI-QTY OF ITEM-LOG-DATA) 04- MOVE WS-TEMP-I2A-PALLET-QTY TO I2A-PALLET-QTY 04- ELSE 04- MOVE ZEROS TO I2A-PALLET-QTY END-IF. IF (I2A-SERVING-QTY > +0 AND I2A-SERVING-DESC > SPACE) MOVE 'Y' TO I2A-SIGN-FLAG ELSE MOVE 'N' TO I2A-SIGN-FLAG END-IF. MOVE VEND-NUM TO VENDOR-NBR OF INF-VNDR-CNTL-SAMS-DATA MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM A101101-GET-REVW-CYCLE-CODE UNTIL DB2-DONE-SW = 'Y'. IF VENDOR-FND-SW = 'Y' MOVE 1 TO WS-RETRY-CNT MOVE 'N' TO DB2-DONE-SW PERFORM A101102-GET-REVW-ALPHA-CODE UNTIL DB2-DONE-SW = 'Y' IF REVIEW-DAY-SW = 'Y' MOVE REVIEW-ALPHA-CODE OF S-REVW-CYCLE-DATA TO I2A-REBUY-DAY-OF-WEEK MOVE GROUP-MGR-INIT OF INF-VNDR-CNTL-SAMS-DATA TO I2A-VENDOR-GMI END-IF END-IF. PERFORM A101102-GET-VNDR-NAME MOVE WS-VNDR-NAME TO I2A-VNDR-NAME. MOVE LAST-UPDATE-USERID OF ITEM-LOG-DATA TO I2A-MAINT-INITIALS. MOVE 'Y' TO I2A-MAINT-CODE. MOVE CURR-DATE-6 TO I2A-DATE-LAST-MAINT. PERFORM A101110-PROCESS-MQSQ-SEGMENT. ****************************************************************** ** THIS PARAGRAPH EXECUTES THE CODE TO GET REVW CYCLE CODE T** ****************************************************************** A101101-GET-REVW-CYCLE-CODE. MOVE 'A101101-GET-REVW-CYCLE-CODE' TO WS-ABND-PARA. EXEC SQL SELECT S_REVW_CYCLE_CODE ,IFNULL(GROUP_MGR_INIT,' ') INTO :INF-VNDR-CNTL-SAMS-DATA.S-REVW-CYCLE-CODE ,:INF-VNDR-CNTL-SAMS-DATA.GROUP-MGR-INIT FROM INF_VNDR_CNTL_SAMS WHERE VENDOR_NBR = :INF-VNDR-CNTL-SAMS-DATA.VENDOR-NBR AND DC_NBR = 0 END-EXEC. EVALUATE SQLCODE WHEN 0 MOVE 'Y' TO DB2-DONE-SW VENDOR-FND-SW WHEN +100 MOVE 'Y' TO DB2-DONE-SW MOVE 'N' TO VENDOR-FND-SW WHEN -911 IF WS-911-RETRY-CNT