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