0% found this document useful (0 votes)
113 views

LIS Code

LIS code

Uploaded by

DeveshBabu
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
113 views

LIS Code

LIS code

Uploaded by

DeveshBabu
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

*&---------------------------------------------------------------------*

*& Report ZBW2LIS_11_VASCL *


*& *
*&---------------------------------------------------------------------*
*& *
*& Please DO NOT CHANGE the name of the program or the form.The *
*& dynamic call in the user exit is dependent on the name of this *
*& program. *
*& Standard naming convention for the called program is *
*& "ZBW" + Datasource Name *
*&---------------------------------------------------------------------*


*#######################################################################
* Confidential and Proprietary Copyright 2006 Grainger, Inc.
* All Rights Reserved
************************************************************************
* Name : ZBW2LIS_11_VASCL
* Created By : YUXY001
* Created On : 03/10/2007
*
* Purpose : CMOD User Exit Code for Transaction Datasource : 2LIS_11_VAS
CL
*
* Overview : Populate zzdate (Schedule line date)
*
* Called from : Transaction CMOD, EXIT_SAPLRSAP_001.
*
* Files : None.
*
* Assumptions : None.
*
* Code Review : <USERID> <DATE mm/dd/yyyy>
*
*-----------------------------------------------------------------------
* Revisions History:
*-----------------------------------------------------------------------
* Number Date Author Transport Description
* ______ __________ _______ __________ ___________________________
* 1 03/10/2007 YUXY001 DRAK935927 Code copied from user exit
*
* 2 09/03/2009 PGJEG DRAK9 Added logic to read COUNTRY
* and REGION from table ADRC.
*
************************************************************************
*#######################################################################

REPORT ZBW2LIS_11_VASCL .


FORM ZBW2LIS_11_VASCL
tables I_T_SELECT structure RSSELECT
I_T_FIELDS structure RSFIELDSEL
C_T_DATA structure MC11VA0SCL
C_T_MESSAGES structure BALMI
USING
I_ISOURCE LIKE RSAAPI_IF-ISOURCE
I_UPDMODE LIKE RSAAPI_IF-UPDMODE
RSAP_CUSTOMER_ERROR.

*************************************************************
* FOR 2LIS_11_VASCL EXTRACTOR ENHANCEMENT. PGJWM.04/19/2005.
* FOR GETTING VBEP-EDATU(Schedule Line Date).
*************************************************************
TABLES: vbep. "Sales Order Sched LIne
DATA : l_s_icctvbep LIKE mc11va0scl,
i_tabix LIKE sy-tabix.

DATA: c_ZEROES(6) TYPE C VALUE '000000'.

DATA: itab_MC11VA0SCL TYPE STANDARD TABLE OF MC11VA0SCL,
s_MC11VA0SCL TYPE MC11VA0SCL.

TYPES: BEGIN OF typ_VBPA,
VBELN TYPE VBPA-VBELN,
POSNR TYPE VBPA-POSNR,
PARVW TYPE VBPA-PARVW,
ADRNR TYPE VBPA-ADRNR,
END OF typ_VBPA.

TYPES: BEGIN OF typ_ADRC,
ADDRNUMBER TYPE ADRC-ADDRNUMBER,
POST_CODE1 TYPE ADRC-POST_CODE1,
COUNTRY TYPE ADRC-COUNTRY,
REGION TYPE ADRC-REGION,
END OF typ_ADRC.

DATA: itab_VBPA TYPE STANDARD TABLE OF typ_VBPA,
wa_VBPA TYPE typ_VBPA,
itab_ADRC TYPE STANDARD TABLE OF typ_ADRC,
wa_ADRC TYPE typ_ADRC.


IF NOT C_T_DATA[] IS INITIAL.

* COLLECT THE ENTRIES INTO INTERNAL TABLE itab_MC11VA0SCL

itab_MC11VA0SCL[] = C_T_DATA[].

* SORT THE ENTRIES BY VBELN POSNR AND DELETE DUPLICATES

SORT itab_MC11VA0SCL BY VBELN POSNR.
DELETE ADJACENT DUPLICATES FROM itab_MC11VA0SCL
COMPARING VBELN POSNR.

* SELECT ADDRESS NUMBERS FROM VBPA TABLE FOR THE RELAVENT DOCUMENT
* NUMBERS FOR WHICH POSNR NE '000000'.

SELECT VBELN POSNR PARVW ADRNR
FROM VBPA
INTO TABLE itab_VBPA
FOR ALL ENTRIES IN itab_MC11VA0SCL
WHERE VBELN = itab_MC11VA0SCL-VBELN AND
POSNR = itab_MC11VA0SCL-POSNR AND
PARVW IN ('WE', 'SH').

* ELSE GET THE ADDRESS NUMBER OF HEADER RECORD

SELECT VBELN POSNR PARVW ADRNR
FROM VBPA APPENDING TABLE itab_VBPA
FOR ALL ENTRIES IN itab_MC11VA0SCL
WHERE VBELN = itab_MC11VA0SCL-VBELN AND
POSNR = '000000' AND
PARVW IN ('WE', 'SH').

* SORT ITAB_VBPA BY ADDRESS

SORT itab_VBPA BY ADRNR.


* SELECT THE REQUIRED FIELDS FROM ADRC TABLE

IF NOT itab_VBPA[] IS INITIAL.

SELECT ADDRNUMBER POST_CODE1 COUNTRY REGION
FROM ADRC
INTO TABLE itab_ADRC
FOR ALL ENTRIES IN itab_VBPA
WHERE ADDRNUMBER = itab_VBPA-ADRNR.

ENDIF.

SORT itab_ADRC BY ADDRNUMBER.

DELETE ADJACENT DUPLICATES FROM itab_ADRC COMPARING ADDRNUMBER.

SORT itab_VBPA BY VBELN POSNR.

ENDIF.


LOOP AT c_t_data INTO l_s_icctvbep.
i_tabix = sy-tabix.

* GET Delivery Number FROM VBRP. PGJWM. 04/19/2005.
SELECT SINGLE * FROM vbep
WHERE vbeln = l_s_icctvbep-vbeln
AND posnr = l_s_icctvbep-posnr
AND etenr = l_s_icctvbep-etenr.

IF sy-subrc = 0.
l_s_icctvbep-zzdate = vbep-edatu.
ENDIF.

* READ ITAB_VBPA FOR RECORDS WHERE POSNR NE '000000'.

READ TABLE itab_VBPA
INTO wa_VBPA
WITH KEY VBELN = l_s_icctvbep-VBELN
POSNR = l_s_icctvbep-POSNR
BINARY SEARCH.

IF SY-SUBRC EQ 0.

READ TABLE itab_ADRC
INTO wa_ADRC
WITH KEY ADDRNUMBER = wa_VBPA-ADRNR
BINARY SEARCH.

IF SY-SUBRC EQ 0.

L_S_ICCTVBEP-ZZACTZIP = wa_ADRC-POST_CODE1.
L_S_ICCTVBEP-LAND1 = wa_ADRC-COUNTRY.
L_S_ICCTVBEP-REGIO = wa_ADRC-REGION.

ENDIF.

ELSE. "RECORDS FOR WHICH NO ITEM NUMBER EXISTS (POSNR = '000000').

READ TABLE itab_VBPA
INTO wa_VBPA
WITH KEY VBELN = l_s_icctvbep-VBELN
POSNR = c_ZEROES
BINARY SEARCH.

IF SY-SUBRC EQ 0.

READ TABLE itab_ADRC
INTO wa_ADRC
WITH KEY ADDRNUMBER = wa_VBPA-ADRNR
BINARY SEARCH.

IF SY-SUBRC EQ 0.

L_S_ICCTVBEP-ZZACTZIP = wa_ADRC-POST_CODE1.
L_S_ICCTVBEP-LAND1 = wa_ADRC-COUNTRY.
L_S_ICCTVBEP-REGIO = wa_ADRC-REGION.

ENDIF.
ENDIF.
ENDIF.

MODIFY c_t_data FROM l_s_icctvbep INDEX i_tabix.

ENDLOOP.


ENDFORM. "ZBW2LIS_11_VASCL

You might also like