on 02-06-2008 6:48 PM
Gurus,
How can i read data from an virtual infocube thru an ABAP code..Is there any FM that i can use..
Kindly Help me in this...
Really URGENT..
Thanks
Sam
Hi Sam,
You can use the FM RSDRI_INFOPROV_READ for this purpose and see this demo report RSDRI_INFOPROV_READ_DEMO for its usage.
Thanks and Regards
Subray Hegde
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Subray,
Thanks for the reply..I have created a wrapper for this FM in the same way te DEMO program shows but still doesn't wrk.
No data is returned in the Table.
I also tried using the FM RSDRI_INFOPROV_READ_RFC and it does some processing but does nt return the results..
I am attaching my code...Can u please help me with that...
TYPES:
BEGIN OF gt_s_data,
cs_version(3) TYPE c,
cs_chart(2) TYPE c,
bcs_llob(4) TYPE c,
bcs_lcus(3) TYPE c,
bcs_ldch(2) TYPE c,
bcs_lprg(5) TYPE c,
curkey_lc TYPE /BI0/OICURKEY_LC,
curkey_tc TYPE /BI0/OICURKEY_TC,
bcs_lmay TYPE /BIC/OIBCS_LMAY,
figlxref3 TYPE /BIC/OIFIGLXREF3,
unit TYPE /BI0/OIUNIT,
CS_TRN_LC TYPE /BI0/OICURKEY_GC,
CS_TRN_TC TYPE /BI0/OICURKEY_GC,
CS_TRN_QTY TYPE /BI0/OIUNIT,
END OF gt_s_data.
DATA:
l_msg_text TYPE string,
g_s_sfc TYPE rsdri_s_sfc,
g_th_sfc TYPE rsdri_th_sfc,
g_s_sfk TYPE rsdri_s_sfk,
g_th_sfk TYPE rsdri_th_sfk,
g_s_range TYPE rsdri_s_range,
g_t_range TYPE rsdri_t_range.
DATA:
g_s_data TYPE gt_s_data,
g_t_data TYPE STANDARD TABLE OF gt_s_data,
g_t_rfcdata TYPE rsdri_t_rfcdata,
g_t_sfc TYPE rsdri_t_sfc,
g_t_sfk TYPE rsdri_t_sfk,
g_t_field TYPE rsdp0_t_field.
DATA:
g_first_call TYPE rs_bool.
g_first_call = rs_c_true.
CLEAR g_s_sfc.
g_s_sfc-chanm = '0CS_VERSION'.
g_s_sfc-chaalias = 'cs_version'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = '0CS_CHART'.
g_s_sfc-chaalias = 'CS_CHART'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = 'BCS_LLOB'.
g_s_sfc-chaalias = 'BCS_LLOB'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = 'BCS_LCUS'.
g_s_sfc-chaalias = 'BCS_LCUS'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = 'BCS_LDCH'.
g_s_sfc-chaalias = 'BCS_LDCH'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = 'BCS_LPRG'.
g_s_sfc-chaalias = 'BCS_LPRG'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = '0CURKEY_GC'.
g_s_sfc-chaalias = 'CURKEY_LC'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = '0CURKEY_GC'.
g_s_sfc-chaalias = 'CURKEY_TC'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = 'BCS_LMAY'.
g_s_sfc-chaalias = 'BCS_LMAY'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = 'FIGLXREF3'.
g_s_sfc-chaalias = 'FIGLXREF3'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = '0UNIT'.
g_s_sfc-chaalias = 'UNIT'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
***Fill up the key figures data.
CLEAR g_s_sfk.
g_s_sfk-kyfnm = '0CS_TRN_GC'.
g_s_sfk-kyfalias = 'CS_TRN_LC'.
g_s_sfk-aggr = 'SUM'.
INSERT g_s_sfk INTO TABLE g_th_sfk.
CLEAR g_s_sfk.
g_s_sfk-kyfnm = '0CS_TRN_GC'.
g_s_sfk-kyfalias = 'CS_TRN_TC'.
g_s_sfk-aggr = 'SUM'.
INSERT g_s_sfk INTO TABLE g_th_sfk.
CLEAR g_s_sfk.
g_s_sfk-kyfnm = '0CS_TRN_QTY'.
g_s_sfk-kyfalias = 'CS_TRN_QTY'.
g_s_sfk-aggr = 'SUM'.
INSERT g_s_sfk INTO TABLE g_th_sfk.
Fill up selection criteria.
CLEAR g_s_range.
g_s_range-chanm = '0CS_VERSION'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = '100'.
APPEND g_s_range TO g_t_range.
CLEAR g_s_range.
g_s_range-chanm = 'BCS_VERS'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = 'ACT'.
APPEND g_s_range TO g_t_range.
CLEAR g_s_range.
g_s_range-chanm = '0CS_CHART'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = 'ZG'.
APPEND g_s_range TO g_t_range.
CLEAR g_s_range.
g_s_range-chanm = '0CO_AREA'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = 'AZ01'.
APPEND g_s_range TO g_t_range.
CLEAR g_s_range.
g_s_range-chanm = '0FISCVARNT'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = 'K2'.
APPEND g_s_range TO g_t_range.
CLEAR g_s_range.
g_s_range-chanm = '0FISCYEAR'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = '2007'.
APPEND g_s_range TO g_t_range.
CLEAR g_s_range.
g_s_range-chanm = '0FISCPER3'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = '003'.
APPEND g_s_range TO g_t_range.
CLEAR g_s_range.
g_s_range-chanm = '0SEM_CGCOMP'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = 'US0075'.
APPEND g_s_range TO g_t_range.
g_t_sfc = g_th_sfc.
g_t_sfk = g_th_sfk.
CALL FUNCTION 'RSDRI_INFOPROV_READ_RFC'
EXPORTING
I_INFOPROV = 'BCS_C1V11'
I_REFERENCE_DATE = SY-DATUM
I_SAVE_IN_TABLE = ' '
I_TABLENAME =
I_SAVE_IN_FILE = ' '
I_FILENAME =
I_AUTHORITY_CHECK = RSDRC_C_AUTHCHK-READ
I_CURRENCY_CONVERSION = 'X'
I_S_RFCMODE =
I_MAXROWS = 0
I_USE_DB_AGGREGATION = RS_C_TRUE
I_USE_AGGREGATES = RS_C_TRUE
I_ROLLUP_ONLY = RS_C_TRUE
I_READ_ODS_DELTA = RS_C_FALSE
I_RESULTTYPE = ' '
I_DEBUG = RS_C_FALSE
IMPORTING
E_END_OF_DATA =
E_AGGREGATE =
E_RFCDATA_UC =
E_SPLIT_OCCURRED =
TABLES
I_T_SFC = g_t_sfc
I_T_SFK = g_t_sfk
I_T_RANGE = g_t_range
I_T_TABLESEL =
I_T_RTIME =
I_T_REQUID =
E_T_RFCDATA = g_t_rfcdata
E_T_RFCDATAV =
E_T_FIELD = g_t_field
EXCEPTIONS
ILLEGAL_INPUT = 1
ILLEGAL_INPUT_SFC = 2
ILLEGAL_INPUT_SFK = 3
ILLEGAL_INPUT_RANGE = 4
ILLEGAL_INPUT_TABLESEL = 5
NO_AUTHORIZATION = 6
GENERATION_ERROR = 7
ILLEGAL_DOWNLOAD = 8
ILLEGAL_TABLENAME = 9
ILLEGAL_RESULTTYPE = 10
X_MESSAGE = 11
DATA_OVERFLOW = 12
OTHERS = 13
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'RSDRI_DATA_UNWRAP'
EXPORTING
i_t_rfcdata = g_t_rfcdata
CHANGING
c_t_data = g_t_data.
Subray,
Email address: tomayanksharma@gmail.com....
I tried using the FM that u told me too...Given is the code....
TYPE-POOLS: rs, rsdrc.
TYPES:
BEGIN OF gt_s_data,
0cs_version TYPE /BI0/OICS_VERSION,
0cs_chart TYPE /BI0/OICS_CHART,
bcs_llob TYPE /BIC/OIBCS_LLOB,
bcs_lcus TYPE /BIC/OIBCS_LCUS,
bcs_ldch TYPE /BIC/OIBCS_LDCH,
bcs_lprg TYPE /BIC/OIBCS_LPRG,
0curkey_gc TYPE /BI0/OICURKEY_LC,
bcs_lmay TYPE /BIC/OIBCS_LMAY,
figlxref3 TYPE /BIC/OIFIGLXREF3,
0unit TYPE /BI0/OIUNIT,
0CS_TRN_GC TYPE /BI0/OICURKEY_GC,
0CS_TRN_QTY TYPE /BI0/OIUNIT,
END OF gt_s_data.
DATA:
l_msg_text TYPE string,
g_s_sfc TYPE rsdri_s_sfc,
g_th_sfc TYPE rsdri_th_sfc,
g_s_sfk TYPE rsdri_s_sfk,
g_th_sfk TYPE rsdri_th_sfk,
g_s_range TYPE rsdri_s_range,
g_t_range TYPE rsdri_t_range.
DATA:
g_s_data TYPE gt_s_data,
g_t_data TYPE STANDARD TABLE OF gt_s_data,
g_t_rfcdata TYPE RSDRI_T_RFCDATA,
g_t_sfc TYPE rsdri_t_sfc,
g_t_sfk TYPE rsdri_t_sfk.
g_t_field TYPE rsdp0_t_field.
DATA:
g_first_call TYPE rs_bool,
g_end_of_data TYPE rs_bool.
g_first_call = rs_c_true.
g_end_of_data = rs_c_false.
CLEAR g_s_sfc.
g_s_sfc-chanm = '0CS_VERSION'.
g_s_sfc-chaalias = '0cs_version'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = '0CS_CHART'.
g_s_sfc-chaalias = '0CS_CHART'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = 'BCS_LLOB'.
g_s_sfc-chaalias = 'BCS_LLOB'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = 'BCS_LCUS'.
g_s_sfc-chaalias = 'BCS_LCUS'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = 'BCS_LDCH'.
g_s_sfc-chaalias = 'BCS_LDCH'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = 'BCS_LPRG'.
g_s_sfc-chaalias = 'BCS_LPRG'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = '0CURKEY_GC'.
g_s_sfc-chaalias = '0CURKEY_GC'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
*CLEAR g_s_sfc.
*g_s_sfc-chanm = '0CURKEY_GC'.
*g_s_sfc-chaalias = 'CURKEY_TC'.
*g_s_sfc-orderby = 0.
*INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = 'BCS_LMAY'.
g_s_sfc-chaalias = 'BCS_LMAY'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = 'FIGLXREF3'.
g_s_sfc-chaalias = 'FIGLXREF3'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = '0UNIT'.
g_s_sfc-chaalias = '0UNIT'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
***Fill up the key figures data.
CLEAR g_s_sfk.
g_s_sfk-kyfnm = '0CS_TRN_GC'.
g_s_sfk-kyfalias = '0CS_TRN_GC'.
g_s_sfk-aggr = 'SUM'.
INSERT g_s_sfk INTO TABLE g_th_sfk.
*CLEAR g_s_sfk.
*g_s_sfk-kyfnm = '0CS_TRN_GC'.
*g_s_sfk-kyfalias = 'CS_TRN_TC'.
*g_s_sfk-aggr = 'SUM'.
*INSERT g_s_sfk INTO TABLE g_th_sfk.
CLEAR g_s_sfk.
g_s_sfk-kyfnm = '0CS_TRN_QTY'.
g_s_sfk-kyfalias = '0CS_TRN_QTY'.
g_s_sfk-aggr = 'SUM'.
INSERT g_s_sfk INTO TABLE g_th_sfk.
Fill up selection criteria.
CLEAR g_s_range.
g_s_range-chanm = '0CS_VERSION'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = '100'.
APPEND g_s_range TO g_t_range.
CLEAR g_s_range.
g_s_range-chanm = 'BCS_VERS'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = 'ACT'.
APPEND g_s_range TO g_t_range.
CLEAR g_s_range.
g_s_range-chanm = '0CS_CHART'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = 'ZG'.
APPEND g_s_range TO g_t_range.
CLEAR g_s_range.
g_s_range-chanm = '0CO_AREA'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = 'AZ01'.
APPEND g_s_range TO g_t_range.
CLEAR g_s_range.
g_s_range-chanm = '0FISCVARNT'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = 'K2'.
APPEND g_s_range TO g_t_range.
CLEAR g_s_range.
g_s_range-chanm = '0FISCYEAR'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = '2007'.
APPEND g_s_range TO g_t_range.
CLEAR g_s_range.
g_s_range-chanm = '0FISCPER3'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = '003'.
APPEND g_s_range TO g_t_range.
CLEAR g_s_range.
g_s_range-chanm = '0SEM_CGCOMP'.
g_s_range-sign = rs_c_range_sign-including.
g_s_range-compop = rs_c_range_opt-equal.
g_s_range-low = 'US0075'.
APPEND g_s_range TO g_t_range.
g_t_sfc = g_th_sfc.
g_t_sfk = g_th_sfk.
WHILE g_end_of_data = rs_c_false.
CALL FUNCTION 'RSDRI_INFOPROV_READ'
EXPORTING
I_INFOPROV = '0BCS_C1V11'
I_TH_SFC = g_th_sfc
I_TH_SFK = g_th_sfk
I_T_RANGE = g_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_PACKAGESIZE = 1000
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
IMPORTING
E_T_DATA = g_t_data
E_END_OF_DATA = g_end_of_data
E_AGGREGATE =
E_SPLIT_OCCURRED =
E_T_MSG =
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 = 7
ILLEGAL_TABLENAME = 8
TRANS_NO_WRITE_MODE = 9
INHERITED_ERROR = 10
X_MESSAGE = 11
OTHERS = 12
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDWHILE.
Thanks
User | Count |
---|---|
90 | |
10 | |
10 | |
10 | |
7 | |
7 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.