ZXMCVU04

<< 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.