01-08-2015 6:31 AM
Hi,
Good Day
I need to extract the two fields from the infocube. When i pass the values in importing parameter
From there it is showing the run time error
The reason for the exception is:
You attempted to pass the field "LT_S_DATA" to the formal parameter "E_T_DATA"
but the formal parameter "E_T_DATA" can accept only fields of
type "h". The field "E_T_DATA" has the type "u".
This is the error
Can you please help me out of this issue
TYPE-POOLS:rs,rsdrc.
DATA: lt_s_sfc TYPE rsdri_s_sfc,
ls_th_sfc TYPE rsdri_th_sfc.
DATA: lt_s_sfk TYPE rsdri_s_sfk,
ls_th_sfk TYPE rsdri_th_sfk.
TYPES : BEGIN OF gt_s_data,
wbs_elemt TYPE /bi0/oiwbs_elemt,
0ifibeur TYPE /bic/oiifibeur,
END OF gt_s_data.
DATA: lt_s_data TYPE STANDARD TABLE OF gt_s_data WITH HEADER LINE,
ls_s_data TYPE gt_s_data.
DATA:lt_end_of_data TYPE rs_bool.
DATA: lt_first_call TYPE rs_bool.
CLEAR lt_s_sfc.
lt_s_sfc-chanm = 'WBS_ELEMT'.
lt_s_sfc-chaalias = 'WBS_ELEMT'.
INSERT lt_s_sfc INTO TABLE ls_th_sfc.
CLEAR lt_s_sfk.
lt_s_sfk-kyfnm = 'IFIBEUR'.
lt_s_sfk-kyfalias = '0IFIBEUR'.
lt_s_sfk-aggr = 'SUM'.
INSERT lt_s_sfk INTO TABLE ls_th_sfk.
lt_end_of_data = rs_c_false.
lt_first_call = rs_c_true.
WHILE lt_end_of_data = rs_c_false.
IF sy-subrc = 0.
CALL FUNCTION 'RSDRI_INFOPROV_READ'
EXPORTING
i_infoprov = 'IFIBIVFC'
i_th_sfc = ls_th_sfc
i_th_sfk = ls_th_sfk
* I_T_RANGE =
* I_TH_TABLESEL =
* I_T_RTIME =
i_reference_date = sy-datum
* I_ROLLUP_ONLY = RS_C_TRUE
* I_T_REQUID =
* I_SAVE_IN_TABLE = ' '
* I_TABLENAME =
* I_SAVE_IN_FILE = ' '
* I_FILENAME =
* I_SAVE_IN_INDEX = ' '
* I_INDEX_ID =
i_packagesize = 10000
* I_MAXROWS = 0
* I_AUTHORITY_CHECK = RSDRC_C_AUTHCHK-READ
* I_CURRENCY_CONVERSION = 'X'
* I_USE_DB_AGGREGATION = RS_C_TRUE
* I_USE_AGGREGATES = RS_C_TRUE
* I_READ_ODS_DELTA = RS_C_FALSE
* I_CALLER = RSDRS_C_CALLER-RSDRI
* I_DEBUG = RS_C_FALSE
* I_CLEAR = RS_C_FALSE
* I_COMMIT_ALLOWED = RS_C_TRUE
* I_WITH_NLS = RS_C_FALSE
* I_CHECK_RESULTS = RS_C_FALSE
* I_PROCESS_MPRO_IN_TREX =
IMPORTING
e_t_data = lt_s_data
e_end_of_data = lt_end_of_data
* E_AGGREGATE =
* E_SPLIT_OCCURRED =
* E_T_MSG =
* E_STEPUID =
CHANGING
c_first_call = lt_first_call
* EXCEPTIONS
* ILLEGAL_INPUT = 1
* ILLEGAL_INPUT_SFC = 2
* ILLEGAL_INPUT_SFK = 3
* ILLEGAL_INPUT_RANGE = 4
* ILLEGAL_INPUT_TABLESEL = 5
* NO_AUTHORIZATION = 6
* ILLEGAL_DOWNLOAD = 7
* ILLEGAL_TABLENAME = 8
* TRANS_NO_WRITE_MODE = 9
* INHERITED_ERROR = 10
* X_MESSAGE = 11
* NO_COMMIT_FREE_READ = 12
* OTHERS = 13
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
ENDWHILE.
Thanks in Advance
Regards,
Amirineni Sravan.
01-08-2015 7:03 AM
Hi Amirineni,
Can you please check the following report, hope you can find the FM RSDRI_INFOPROV_READ in line 208.
RSDRI_INFOPROV_READ_DEMO
Hope you can trace the issue.
Regards
Rajkumar Narasimman
01-08-2015 7:52 AM
Hi Kumar,
Here in the code the data is passing the exporting parameters, While in the importing parameters the E_T_DATA it is not taking the values from there it is going to run time error.
Please do some needful help.
Thanks in Advance
Best Regards,
Amirineni Sravan.
01-08-2015 8:16 AM
Hi Amirineni,
Maintain the exceptions in FM, that helps to find the exact problem why the value is not imported. Also kindly share the dump screenshot in ST22.
Regards
Rajkumar Narasimman
01-13-2015 4:46 AM
Hi Kumar,
Issue Resolved it's my mistake. I didn't declare the structure properly that is why it is gettind errors.
Thanks for spending valuble time for me.
Best Regards,
Amirineni Sravan.