cancel
Showing results for 
Search instead for 
Did you mean: 

Using RSDRI_INFOPROV_READ in Start Routine

Former Member
0 Kudos

Please provide sample code along with characteristic, KF, Internal table declarations if any, on how to use RSDRI_INFOPROV_READ in start routine.

Thanks

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

there s an example report how to use it. Goto FM in SE37 and look in which reports it is used. I think the report is called something like infoprovread.

Regards,

Juergen

Former Member
0 Kudos

I couldn't interpret the report very well, hence the post.

Thanks

Former Member
0 Kudos

Hello,

There is a standard demo program which uses this FM.

Goto SE 38 and see this program code RSDRI_INFOPROV_READ_DEMO

Former Member
0 Kudos

I know there is a program, but just wanted to see the sample code on how to use it in start routine.

Thanks

Former Member
0 Kudos

If you want to get start with writing a start routine, you can find some examples/documentation in BW itself.

Open your UR/TR > Click on start routine > in the editor screen hit 'Routines info' button. There you can see some sample code.

If you are specifically looking at using the above FM, you can use a piece of code form the above mentioned program.

Former Member
0 Kudos

Found this one. This could help you

/people/dinesh.lalchand/blog/2006/06/07/reading-infocube-data-in-updatetransfer-rules

Former Member
0 Kudos

Please take a look at this code and let me know if this is the way to use the function module RSDRI_INFOPROV_READ. I am trying to read 4 characteristics from the cube and then using those values to populate a different field in start routine based on document number.

TYPES: BEGIN OF st_data,

DOC_NUMBER TYPE /BI0/OIDOC_NUMBER,

ZAREACHG TYPE /BIC/OIZAREACHG,

ZVALUEOLD TYPE /BIC/OIZVALUEOLD,

ZITEMCHG TYPE /BIC/OIZITEMCHG,

END OF st_data.

DATA: gt_characteristics TYPE rsdri_th_sfc,

gs_characteristic LIKE LINE OF gt_characteristics,

gt_keyfigures TYPE rsdri_th_sfk,

gs_keyfigure LIKE LINE OF gt_keyfigures,

gs_range TYPE rsdri_s_range,

gt_range TYPE rsdri_t_range,

gt_data TYPE st_data OCCURS 0,

gs_data LIKE LINE OF gt_data,

gv_flg_firstcall TYPE rs_bool value 'X'.

*INITIALIZATION.

MOVE: 'DOC_NUMBER' to gs_characteristic-chanm,

'DOC_NUMBER' to gs_characteristic-chaalias,

0 to gs_characteristic-orderby.

INSERT gs_characteristic INTO TABLE gt_characteristics.

CLEAR gs_characteristic.

MOVE: 'ZAREACHG' to gs_characteristic-chanm,

'ZAREACHG' to gs_characteristic-chaalias,

0 to gs_characteristic-orderby.

INSERT gs_characteristic INTO TABLE gt_characteristics.

CLEAR gs_characteristic.

MOVE: 'ZVALUEOLD' to gs_characteristic-chanm,

'ZVALUEOLD' to gs_characteristic-chaalias,

0 to gs_characteristic-orderby.

INSERT gs_characteristic INTO TABLE gt_characteristics.

CLEAR gs_characteristic.

MOVE: 'ZITEMCHG' to gs_characteristic-chanm,

'ZITEMCHG' to gs_characteristic-chaalias,

0 to gs_characteristic-orderby.

INSERT gs_characteristic INTO TABLE gt_characteristics.

CLEAR gs_characteristic.

  • ZAREACHG = SCHEDULE LINES

CLEAR gs_range.

gs_range-chanm = 'ZAREACHG'.

gs_range-sign = rs_c_range_sign-including.

gs_range-compop = rs_c_range_opt-equal.

gs_range-low = 'SCHEDULE LINES'.

  • --- include into list of restrictions

APPEND gs_range TO gt_range.

  • ZITEMCHG = LOAD DATE

CLEAR gs_range.

gs_range-chanm = 'ZITEMCHG'.

gs_range-sign = rs_c_range_sign-including.

gs_range-compop = rs_c_range_opt-equal.

gs_range-low = 'LOAD.DATE'.

  • --- include into list of restrictions

APPEND gs_range TO gt_range.

MOVE 'X' TO gv_flg_firstcall.

CALL FUNCTION 'RSDRI_INFOPROV_READ'

EXPORTING

I_INFOPROV = 'Z_OC'

I_TH_SFC = gt_characteristics

I_TH_SFK = gt_keyfigures

I_T_RANGE = gt_range

i_reference_date = sy-datum

i_save_in_table = rs_c_false

i_save_in_file = rs_c_false

i_packagesize = 1000

i_authority_check = rsdrc_c_authchk-read

IMPORTING

E_T_DATA = gt_data

CHANGING

C_FIRST_CALL = gv_flg_firstcall

EXCEPTIONS

ILLEGAL_INPUT = 1

ILLEGAL_INPUT_SFC = 2

ILLEGAL_INPUT_SFK = 3

ILLEGAL_INPUT_RANGE = 4

ILLEGAL_INPUT_TABLESEL = 5

NO_AUTHORIZATION = 6

NCUM_NOT_SUPPORTED = 7

ILLEGAL_DOWNLOAD = 8

ILLEGAL_TABLENAME = 9

TRANS_NO_WRITE_MODE = 10

INHERITED_ERROR = 11

X_MESSAGE = 12

OTHERS = 13

.

DATA: BEGIN OF FINAL_TAB OCCURS 0,

DOC_NUM TYPE /BI0/OIDOC_NUMBER,

AREACHG TYPE /BIC/OIZAREACHG,

VALUEOLD TYPE /BIC/OIZVALUEOLD,

ITEMCHG TYPE /BIC/OIZITEMCHG,

END OF FINAL_TAB.

DATA: BEGIN OF zgt_data OCCURS 0,

DOC_NUM TYPE /BI0/OIDOC_NUMBER,

AREACHG TYPE /BIC/OIZAREACHG,

VALUEOLD TYPE /BIC/OIZVALUEOLD,

ITEMCHG TYPE /BIC/OIZITEMCHG,

END OF zgt_data.

DATA:BEGIN OF TEMP_DATA OCCURS 0,

DOC_NUM TYPE /BI0/OIDOC_NUMBER,

AREACHG TYPE /BIC/OIZAREACHG,

VALUEOLD TYPE /BIC/OIZVALUEOLD,

ITEMCHG TYPE /BIC/OIZITEMCHG,

END OF TEMP_DATA.

zgt_data[] = gt_data[]. .

Sort zgt_data by DOC_NUM ascending

ITEMCHG ascending.

LOOP AT zgt_data.

TEMP_DATA = zgt_data.

AT NEW DOC_NUM.

MOVE-CORRESPONDING TEMP_DATA TO FINAL_TAB.

APPEND FINAL_TAB.

CLEAR FINAL_TAB.

ENDAT.

ENDLOOP.

Sort FINAL_TAB by DOC_NUM ascending.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

LOOP AT DATA_PACKAGE.

READ TABLE FINAL_TAB WITH KEY DOC_NUM = DATA_PACKAGE-DOC_NUMBER

binary search.

IF sy-subrc eq 0.

MOVE FINAL_TAB-VALUEOLD TO DATA_PACKAGE-LOAD_DATE.

MODIFY DATA_PACKAGE.

ENDIF.

ENDLOOP.

CLEAR: zgt_data, FINAL_TAB.

REFRESH: zgt_data, FINAL_TAB.

Thanks in advance!