HI,
I'm trying to enhance datasource with BADI
method IF_EX_RSU5_SAPI_BADI~DATA_TRANSFORM.
DATA: ls_oltpsource TYPE rsaot_s_osource,
lv_data TYPE REF TO data,
lv_method TYPE seocmpname.
FIELD-SYMBOLS: <lt_data> TYPE STANDARD TABLE.
check BW system
*check checkbw_system( ) = 'X'.
Case i_datasource.
When '0FI_GL_14'.
check if any data is extracted*
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.
create data for Extract Structure
CREATE DATA lv_data TYPE TABLE OF (ls_oltpsource-exstruct).
ASSIGN lv_data->* TO <lt_data>.
ASSIGN c_t_data TO <lt_data>.
get method name for datasource
lv_method = i_datasource.
IF lv_method(1) = '0' or
lv_method(1) = '2'.
shift by one character as methods can't start with a number
SHIFT lv_method.
ENDIF.
check method is implemented
check_method_exists( lv_method ) = 'X'.
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_root.
endtry.
endcase.
endmethod.
When i'm trying to debug its throwing exception cx_sy_dyn_call_illegal_type.
Any idea?