0% found this document useful (0 votes)
32 views3 pages

BADI Implementation for BW Data Sources

The document describes an ABAP code block for a BADI implementation class. It includes method definitions for extracting and transforming data from different SAP tables into internal tables using SELECT statements. The code provides templates for custom datasource methods that can be implemented according to requirements.

Uploaded by

Tejashree N
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views3 pages

BADI Implementation for BW Data Sources

The document describes an ABAP code block for a BADI implementation class. It includes method definitions for extracting and transforming data from different SAP tables into internal tables using SELECT statements. The code provides templates for custom datasource methods that can be implemented according to requirements.

Uploaded by

Tejashree N
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Code Blocks

BADI Implementation class ZCL_IM_ZRSU5_BW_EXTRACTION definition


public
Complete Code final
create public .

public section.

interfaces IF_EX_RSU5_SAPI_BADI .

class-methods _DATASOURCE_TEMPLATE
importing
value(I_DATASOURCE) type RSAOT_OLTPSOURCE
value(I_UPDMODE) type SBIWA_S_INTERFACE-UPDMODE
value(I_T_SELECT) type SBIWA_T_SELECT
value(I_T_FIELDS) type SBIWA_T_FIELDS
changing
!C_T_DATA type ANY TABLE
!C_T_MESSAGES type RSU5_T_MESSAGES optional
exceptions
RSAP_BADI_EXIT_ERROR .
**********************************************************************
*Definition for 2LIS_11_VAHDR
**********************************************************************
class-methods LIS_11_VAHDR
importing
value(I_DATASOURCE) type RSAOT_OLTPSOURCE
value(I_UPDMODE) type SBIWA_S_INTERFACE-UPDMODE
value(I_T_SELECT) type SBIWA_T_SELECT
value(I_T_FIELDS) type SBIWA_T_FIELDS
changing
!C_T_DATA type ANY TABLE
!C_T_MESSAGES type RSU5_T_MESSAGES optional
exceptions
RSAP_BADI_EXIT_ERROR .
**********************************************************************
*Definition for 2LIS_11_VAITM
**********************************************************************
class-methods LIS_11_VAITM
importing
value(I_DATASOURCE) type RSAOT_OLTPSOURCE
value(I_UPDMODE) type SBIWA_S_INTERFACE-UPDMODE
value(I_T_SELECT) type SBIWA_T_SELECT
value(I_T_FIELDS) type SBIWA_T_FIELDS
changing
!C_T_DATA type ANY TABLE
!C_T_MESSAGES type RSU5_T_MESSAGES optional
exceptions
RSAP_BADI_EXIT_ERROR .
**********************************************************************
*Definition for 2LIS_11_VAKON
**********************************************************************
class-methods LIS_11_VAKON
importing
value(I_DATASOURCE) type RSAOT_OLTPSOURCE
value(I_UPDMODE) type SBIWA_S_INTERFACE-UPDMODE
value(I_T_SELECT) type SBIWA_T_SELECT
value(I_T_FIELDS) type SBIWA_T_FIELDS
changing
!C_T_DATA type ANY TABLE
!C_T_MESSAGES type RSU5_T_MESSAGES optional
exceptions
RSAP_BADI_EXIT_ERROR .
class-methods LIS_02_HDR
importing
value(I_DATASOURCE) type RSAOT_OLTPSOURCE
value(I_UPDMODE) type SBIWA_S_INTERFACE-UPDMODE
value(I_T_SELECT) type SBIWA_T_SELECT
value(I_T_FIELDS) type SBIWA_T_FIELDS
changing
!C_T_DATA type ANY TABLE
!C_T_MESSAGES type RSU5_T_MESSAGES optional
exceptions
RSAP_BADI_EXIT_ERROR .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.

CLASS ZCL_IM_ZRSU5_BW_EXTRACTION IMPLEMENTATION.

METHOD if_ex_rsu5_sapi_badi~data_transform.

DATA: ls_OLTPSOURCE TYPE rsaot_s_osource,


lo_data TYPE REF TO data,
lv_method TYPE seocmpname.

FIELD-SYMBOLS: <lt_data> TYPE STANDARD TABLE.

CHECK c_t_data IS NOT INITIAL.

CALL FUNCTION 'RSA1_SINGLE_OLTPSOURCE_GET'


EXPORTING
i_oltpsource = i_datasource
i_objvers = 'A'
IMPORTING
e_s_oltpsource = ls_oltpsource
EXCEPTIONS
no_authority = 1
not_exist = 2
inconsistent = 3
OTHERS = 4.
IF sy-subrc <> 0.
EXIT.
ENDIF.

Weekend_Batch Page 1
ENDIF.

CREATE DATA lo_data TYPE TABLE OF (ls_oltpsource-exstruct).


ASSIGN lo_data->* TO <lt_data>.
ASSIGN c_t_data TO <lt_data>.

* Get method name


lv_method = i_datasource.

CASE lv_method(1).
WHEN '0' OR '2'.
SHIFT lv_method.
WHEN OTHERS.
* Do Nothing
ENDCASE.

* Call the datasource specific method


try.
CALL METHOD (lv_method)
EXPORTING
i_datasource = i_datasource
i_updmode = i_updmode
i_t_select = i_t_select
i_t_fields = i_t_fields
CHANGING
c_t_data = <lt_data>
c_t_messages = c_t_messages.
CATCH cx_sy_dyn_call_illegal_method.
ENDTRY.

ENDMETHOD.

METHOD if_ex_rsu5_sapi_badi~hier_transform.
ENDMETHOD.

METHOD LIS_02_HDR.

**********************************************************************
* Copy this template 2LIS_02_HDR method and
* implement the code according to the requirement
* Don't change the code here.
**********************************************************************

FIELD-SYMBOLS: <ls_data> TYPE mc02m_0hdr.

LOOP AT c_t_data ASSIGNING <ls_data>.

SELECT FROM ekko AS a


FIELDS a~zterm, a~inco1, a~procstat
WHERE a~ebeln = @<ls_data>-ebeln
INTO ( @<ls_data>-zzterm, @<ls_data>-zzico1, @<ls_data>-zzprocstat ).

ENDSELECT.

SELECT FROM ekpa AS b


FIELDS b~lifn2
WHERE b~ebeln = @<ls_data>-ebeln
INTO ( @<ls_data>-zzlifn2 ).
ENDSELECT.

ENDLOOP.
ENDMETHOD.

METHOD lis_11_vahdr.

**********************************************************************
*Logic for 2LIS_11_VAHDR
**********************************************************************

FIELD-SYMBOLS: <ls_data> TYPE mc11va0hdr.

LOOP AT c_t_data ASSIGNING <ls_data>.

SELECT FROM kna1 AS a


FIELDS a~name1, a~land1
WHERE a~kunnr = @<ls_data>-kunnr
INTO ( @<ls_data>-name1, @<ls_data>-land1 ).
ENDSELECT.

ENDLOOP.
ENDMETHOD.

METHOD lis_11_vaitm.

**********************************************************************
*Logic for 2LIS_11_VAITM
**********************************************************************

FIELD-SYMBOLS: <ls_data> TYPE mc11va0ITM.

LOOP AT c_t_data ASSIGNING <ls_data>.

SELECT FROM mara AS a


FIELDS a~mtart
WHERE a~matnr = @<ls_data>-matnr
INTO ( @<ls_data>-mtart ).
ENDSELECT.

ENDLOOP.
ENDMETHOD.

METHOD lis_11_vakon.

Weekend_Batch Page 2
FIELD-SYMBOLS: <ls_data> TYPE mc11va0kon.

LOOP AT c_t_data ASSIGNING <ls_data>.

SELECT FROM mara AS a


FIELDS a~magrv
WHERE a~matnr = @<ls_data>-matnr
INTO ( @<ls_data>-magrv ).
ENDSELECT.

ENDLOOP.
ENDMETHOD.

METHOD _datasource_template.

**********************************************************************
* Copy this template datasource method and
* implement the code according to the requirement
* Don't change the code here.
**********************************************************************

* FIELD-SYMBOLS: <ls_data> TYPE mc11va0hdr.


*
* LOOP AT c_t_data ASSIGNING <ls_data>.
*
* SELECT FROM kna1 AS a
* FIELDS a~name1, a~land1
* WHERE a~kunnr = @<ls_data>-kunnr
* INTO ( @<ls_data>-name1, @<ls_data>-land1 ).
* ENDSELECT.
*
* ENDLOOP.
ENDMETHOD.
ENDCLASS.

Weekend_Batch Page 3

You might also like