|
<< Click to Display Table of Contents >> Navigation: All About ABAP Technique > English > ABAP Tutorial > ABAP Workbench Tools > Enhancement > Customer Exits > Customer Exits Examples > Project ZSDWS001 > Funtions Exits > EXIT_SAPLMCS5_002 > ZXMCVU04 |
*&---------------------------------------------------------------------*
*& Include ZXMCVU04 *
*&---------------------------------------------------------------------*
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(I_XMCLIKP) LIKE MCLIKPB STRUCTURE MCLIKPB
*" VALUE(I_XMCVBUK) LIKE MCVBUKB STRUCTURE MCVBUKB
*" VALUE(I_XMCLIPS) LIKE MCLIPSB STRUCTURE MCLIPSB
*" VALUE(I_XMCVBUP) LIKE MCVBUPB STRUCTURE MCVBUPB
*" VALUE(I_CONTROL) LIKE MCCONTROL STRUCTURE MCCONTROL
*" VALUE(I_XMCVBAK) LIKE VBAK STRUCTURE VBAK OPTIONAL
*" VALUE(I_XMCVBAP) LIKE VBAPVB STRUCTURE VBAPVB OPTIONAL
*" EXPORTING
*" VALUE(E_XMCLIPSUSR) LIKE MCLIPSUSR STRUCTURE MCLIPSUSR
*" TABLES
*" T_XTVPOD STRUCTURE TVPODVB OPTIONAL
*" T_YTVPOD STRUCTURE TVPODVB OPTIONAL
*"----------------------------------------------------------------------
** Purpose: to fill the following fields based on CO derivation rules:
***** ZZRKEG_WW002 ASM
***** ZZRKEG_WW001 RSM
** CO derivation rule tables:
**** K9RWDV1000006 : derivation rule SalesGroup to ASM
**** K9RWDV1000005 : derivation rule ASM to RSM
**>> Determine ASM
select single * from K9RWDV1000006
where SOUR1_FROM le I_XMCLIPS-VKGRP
and SOUR1_TO ge I_XMCLIPS-VKGRP
and SOUR2_FROM le I_XMCLIPS-VKBUR
and SOUR2_TO ge I_XMCLIPS-VKBUR
and SOUR3_FROM le I_XMCLIPS-SPART
and SOUR3_TO ge I_XMCLIPS-SPART
and DELETE_FLG = space.
if sy-subrc = 0.
E_XMCLIPSUSR-ZZWW001 = K9RWDV1000006-TARGET1.
endif.
**>> Determine RSM
select single * from K9RWDV1000005
where SOUR1_FROM le E_XMCLIPSUSR-ZZWW001
and SOUR1_TO ge E_XMCLIPSUSR-ZZWW001
and DELETE_FLG = space.
if sy-subrc = 0.
E_XMCLIPSUSR-ZZWW002 = K9RWDV1000005-TARGET1.
endif.
**>> Determine Sales Order Date
tables: vbap, vbak.
select single * from vbak where vbeln = I_XMCLIPS-VGBEL.
if sy-subrc = 0.
E_XMCLIPSUSR-ZZAUDAT = VBAK-AUDAT.
else.
E_XMCLIPSUSR-ZZAUDAT = I_XMCLIKP-WADAT_IST.
endif.
**>> Determine Customer Hierarchy
select single * from knvp where kunnr = I_XMCLIKP-KUNAG
and parvw = '1A'.
if sy-subrc = 0.
E_XMCLIPSUSR-ZZHIENR01 = knvp-kunn2.
endif.
**>> Determine Delivery Value & SKR Value
select single * from vbap where vbeln = I_XMCLIPS-VGBEL
and posnr = I_XMCLIPS-VGPOS.
IF sy-subrc = 0.
IF VBAP-KLMENG ne 0.
E_XMCLIPSUSR-ZZDLITX = I_XMCLIPS-LGMNG / VBAP-KLMENG * VBAP-KZWI2.
ENDIF.
IF I_XMCVBUP-PDSTA = 'C' and I_XMCVBUK-PDSTK = 'C'.
IF I_XMCLIPS-LGMNG ne 0 and I_XMCLIPS-UMVKN ne 0.
E_XMCLIPSUSR-ZZPODTX = ( I_XMCLIPS-DLFIMG * ( I_XMCLIPS-UMVKZ / I_XMCLIPS-UMVKN ) / I_XMCLIPS-LGMNG )
* E_XMCLIPSUSR-ZZDLITX .
ENDIF.
ELSE.
E_XMCLIPSUSR-ZZPODTX = 0.
ENDIF.
ENDIF.
**>> Determine Customer Class and Industry Code
select single * from kna1 where kunnr = I_XMCLIKP-KUNAG.
if sy-subrc = 0.
E_XMCLIPSUSR-ZZKUKLA = KNA1-KUKLA.
E_XMCLIPSUSR-ZZBRAN1 = KNA1-BRAN1.
endif.
**>> determine cash/credit group
tables: vbkd.
select single * from vbkd where vbeln = I_XMCLIPS-VGBEL.
if sy-subrc = 0.
IF VBKD-ZTERM = 'Z00'.
E_XMCLIPSUSR-ZZKVGR1 = 'CAS'.
ELSE.
E_XMCLIPSUSR-ZZKVGR1 = 'CRE'.
ENDIF.
endif.
**>> determine POD reason
E_XMCLIPSUSR-ZZGRUND = T_XTVPOD-GRUND.