Thursday, October 18, 2007

Sample ABAP Program of BW User Exit

CMOD Enhancement - RSAP0001

Add new fields to Extract structure.

Run RSA6 to 'unhide' new fields.

FUNCTION EXIT_SAPLRSAP_001.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(I_DATASOURCE) TYPE RSAOT_OLTPSOURCE
*" VALUE(I_ISOURCE) TYPE SBIWA_S_INTERFACE-ISOURCE
*" VALUE(I_UPDMODE) TYPE SBIWA_S_INTERFACE-UPDMODE
*" TABLES
*" I_T_SELECT TYPE SBIWA_T_SELECT
*" I_T_FIELDS TYPE SBIWA_T_FIELDS
*" C_T_DATA
*" C_T_MESSAGES STRUCTURE BALMI OPTIONAL
*" EXCEPTIONS
*" RSAP_CUSTOMER_EXIT_ERROR
*"----------------------------------------------------------------------


INCLUDE ZXRSAU01.


ENDFUNCTION.
*&---------------------------------------------------------------------*
*& Include ZXRSAU01 *
*&---------------------------------------------------------------------*
* Written by Sheila Titchener - www.iconet-ltd.co.uk - Oct 2005
*&---------------------------------------------------------------------*

DATA: l_s_mc13vd0itm LIKE mc13vd0itm, " extract structure
l_tabix LIKE sy-tabix,
l_knumv TYPE knumv.

data: t_konv type table of konv.
data: w_konv type konv.

CASE i_datasource.
*/ in bw 1.2b case i_isource.

WHEN '2LIS_13_VDITM'.
LOOP AT c_t_data INTO l_s_mc13vd0itm.
l_tabix = sy-tabix.
SELECT SINGLE knumv FROM vbrk
INTO l_knumv
WHERE vbeln = l_s_mc13vd0itm-vbeln.
IF sy-subrc = 0.
SELECT * FROM konv INTO TABLE t_konv
WHERE knumv = L_knumv
AND kposn = l_s_mc13vd0itm-posnr.

LOOP AT t_konv INTO w_konv.

CASE w_konv-kschl.
WHEN 'PR00'.
l_s_mc13vd0itm-kschl1 = w_konv-kschl.
l_s_mc13vd0itm-kwert1 = w_konv-kwert.
WHEN 'ZELE'.
l_s_mc13vd0itm-kschl2 = w_konv-kschl.
l_s_mc13vd0itm-kwert2 = w_konv-kwert.
WHEN 'SKTV'.
l_s_mc13vd0itm-kschl3 = w_konv-kschl.
l_s_mc13vd0itm-kwert3 = w_konv-kwert.
WHEN 'VPRS'.
l_s_mc13vd0itm-kschl4 = w_konv-kschl.
l_s_mc13vd0itm-kwert4 = w_konv-kwert.
WHEN 'ZCST'.
l_s_mc13vd0itm-kschl5 = w_konv-kschl.
l_s_mc13vd0itm-kwert5 = w_konv-kwert.
WHEN 'ZSUR'.
l_s_mc13vd0itm-kschl6 = w_konv-kschl.
l_s_mc13vd0itm-kwert6 = w_konv-kwert.
WHEN 'ZSTD'.
l_s_mc13vd0itm-kschl7 = w_konv-kschl.
l_s_mc13vd0itm-kwert7 = w_konv-kwert.
ENDCASE.

ENDLOOP.
ENDIF.
Modify c_t_data from l_s_mc13vd0itm index l_tabix.
ENDLOOP.
WHEN OTHERS.
EXIT.

ENDCASE.

No comments: