cancel
Showing results for 
Search instead for 
Did you mean: 

RSDRI_INFOPROV_READ doesn't return anything

RicardoRomero_1
Active Contributor
0 Kudos

Hello,

I'm using FM RSDRI_INFOPROV_READ for the first time.
I've copied report RSDRI_INFOPROV_READ_DEMO and change some litle things to read our info cube.

The FM doesn't trigger any exception, but doesn't return anything.
In transaction LISTCUBE with same selection is returning data.

Do you know what i'm doing wrong?

This is the code:


*&---------------------------------------------------------------------*
*& Report RSDRI_INFOPROV_READ_DEMO *
*& *
*&---------------------------------------------------------------------*
REPORT zrsdri_infoprov_read_demo.
TYPE-POOLS: rs, rsdrc.
TYPES:
BEGIN OF tys_importes,
0fiscyear TYPE /bic/vzcbwippt2-0fiscyear,
0fiscper3 TYPE /bic/vzcbwippt2-0fiscper3,
0costelmnt TYPE /bic/vzcbwippt2-0costelmnt,
0costcenter TYPE /bic/vzcbwippt2-0costcenter,
0amount TYPE /bic/vzcbwippt2-0amount,
END OF tys_importes,
tyt_importes TYPE STANDARD TABLE OF tys_importes.
DATA:
lv_amount TYPE /bi0/oiamount,
lv_first_call TYPE rs_bool,
lv_end_of_data TYPE rs_bool,
ls_th_sfc TYPE rsdri_s_sfc,
lt_th_sfc TYPE rsdri_th_sfc,
ls_th_sfk TYPE rsdri_s_sfk,
lt_th_sfk TYPE rsdri_th_sfk,
ls_range TYPE rsdri_s_range,
lt_range TYPE rsdri_t_range,
lt_importes TYPE tyt_importes,
lt_importes_aux TYPE tyt_importes.
DEFINE fill_range.
if &2 is not initial.
ls_range-chanm = &1.
ls_range-sign = 'I'.
ls_range-compop = 'EQ'.
ls_range-low = &2.
append ls_range to lt_range. clear ls_range.
endif.
END-OF-DEFINITION.
* For the following characteristics / navigational attributes values
* should be returned:
ls_th_sfc-chanm = '0FISCYEAR'.
INSERT ls_th_sfc INTO TABLE lt_th_sfc.
ls_th_sfc-chanm = '0FISCPER3'.
INSERT ls_th_sfc INTO TABLE lt_th_sfc.
ls_th_sfc-chanm = '0COSTELMNT'.
INSERT ls_th_sfc INTO TABLE lt_th_sfc.
ls_th_sfc-chanm = '0COSTCENTER'.
INSERT ls_th_sfc INTO TABLE lt_th_sfc.
* For the following key figures should be returned:
ls_th_sfk-kyfnm = '0AMOUNT'.
ls_th_sfk-aggr = 'SUM'.
INSERT ls_th_sfk INTO TABLE lt_th_sfk.
* These are the restrictions:
fill_range '0VERSION' '0'.
fill_range '0COSTCENTER' '1130025010'.
fill_range '0COSTELMNT' '0061103001'.
fill_range '0FISCYEAR' '2019'.
* The reading module is called:
* for demonstration purposes, the result is retrived in packages
* of size 10.
DATA: g_end_of_data TYPE rs_bool,
g_first_call TYPE rs_bool.
* --- this variable will be set to TRUE when the last data
* package is read
g_end_of_data = rs_c_false.
* --- this variable indicates whether this is an initial
* call to the reading module or a follow-up call (which
* simply retrieves already selected data)
g_first_call = rs_c_true.

WHILE g_end_of_data = rs_c_false.
CALL FUNCTION 'RSDRI_INFOPROV_READ'
EXPORTING
i_infoprov = 'ZCBWIPPT'
i_th_sfc = lt_th_sfc
i_th_sfk = lt_th_sfk
i_t_range = lt_range
i_reference_date = sy-datum
i_save_in_table = rs_c_false
i_save_in_file = rs_c_false
i_packagesize = 10
i_authority_check = rsdrc_c_authchk-read
IMPORTING
e_t_data = lt_importes_aux "g_t_data
e_end_of_data = g_end_of_data
CHANGING
c_first_call = g_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 = 8
illegal_tablename = 9
OTHERS = 11.
IF sy-subrc <> 0.
BREAK-POINT. "#EC NOBREAK
EXIT.
ENDIF.
INSERT LINES OF lt_importes_aux INTO TABLE lt_importes.
ENDWHILE.

Thanks in advance.

Accepted Solutions (1)

Accepted Solutions (1)

FCI
Active Contributor
0 Kudos

Can you check the type and length of 0VERSION (can't check it on my side)? Beware of the conversion routine. You have to use the internal format. If it's a CHAR 3, you may try:

fill_range '0VERSION''000'.
RicardoRomero_1
Active Contributor
0 Kudos

Can't believe that was the problem !

Thanks !!!

Answers (3)

Answers (3)

FCI
Active Contributor
0 Kudos

Is your request in a yellow status ? If yes, try to switch it to green and see what happen.

RicardoRomero_1
Active Contributor
0 Kudos

Last request is in green status.

FCI
Active Contributor
0 Kudos

If you want the current request (in yellow status) to be read, you have to ask for it.

Parameter I_ROLLUP_ONLY should be set to false (blank).

RicardoRomero_1
Active Contributor
0 Kudos

I've already tried with i_rollup_only = false but nothing... 😞
Thanks for answer.

FCI
Active Contributor
0 Kudos

Is your infocube real time ?

RicardoRomero_1
Active Contributor
0 Kudos

Yes, it is