SAP Function Modules

RSDRI_INFOPROV_READ_RFC SAP Function module - BW Data Manager: General RFC Read Interface







RSDRI_INFOPROV_READ_RFC is a standard SAP function module available within R/3 SAP systems depending on your version and release level. Below is the pattern details for this FM showing its interface including any import and export parameters, exceptions etc as well as any documentation contributions (Comments) specific to the object.

See here to view full function module documentation and code listing, simply by entering the name RSDRI_INFOPROV_READ_RFC into the relevant SAP transaction such as SE37 or SE80.

Associated Function Group: RSDRI
Released Date: 17.03.2008
Processing type: Remote-Enabled
remote enabled module settings


Pattern for FM RSDRI_INFOPROV_READ_RFC - RSDRI INFOPROV READ RFC





CALL FUNCTION 'RSDRI_INFOPROV_READ_RFC' "BW Data Manager: General RFC Read Interface
  EXPORTING
    i_infoprov =                " rsinfoprov    Technical Name of InfoProvider
*   i_reference_date = SY-DATUM  " rsdri_refdate  Key Date
*   i_save_in_table = SPACE     " rsdri_save_in_table  Save Result in DB Table?
*   i_tablename =               " rsdri_tablename  Name of the Results Table
*   i_save_in_file = SPACE      " rsdri_save_in_file  Save Result in File?
*   i_filename =                " rsdri_filename  Name of results file
*   i_authority_check = RSDRC_C_AUTHCHK-READ  " rsdri_authchk  Perform Access Check - read/write/none?
*   i_currency_conversion = 'X'  " rsdr0_curr_conv  Convert Currency Key Figures
*   i_s_rfcmode =               " rsdp0_s_rfcmode  DM API: RFC Mode
*   i_maxrows = 0               " i             Stops After This Number of Records
*   i_use_db_aggregation = RS_C_TRUE  " rs_bool  Aggregate Run on DB
*   i_use_aggregates = RS_C_TRUE  " rs_bool     (Only InfoCubes): Should aggregates be used? yes/no
*   i_rollup_only = RS_C_TRUE   " rs_bool       Cubes: Only read to roll-up? Ignored if i_t_requid is set
*   i_read_ods_delta = RS_C_FALSE  " rs_bool    (Only ODS Objects): Should Data Be Read from the ODS Change Log?
*   i_resulttype = SPACE        " rsdri_resulttype  Return to E_T_RFCDATA, E_T_RFCDATAV (V), E_RFCDATA_UC (U)
*   i_debug = RS_C_FALSE        " rs_bool       Debugging mode on/off?
*   i_t_range_string =          " rsdri_t_range  Boolean
  IMPORTING
    e_end_of_data =             " rs_bool       Last Data Package Yes/No
    e_aggregate =               " rsinfocube    Last Aggregate Used
    e_rfcdata_uc =              " xstring       Unicode-compatible coding for the result
    e_split_occurred =          " rsdr0_split_occurred  Result may not be completely aggregated
    e_stepuid =                 " sysuuid_25    UUID of the step in the query statistics
  TABLES
    i_t_sfc =                   " rsdri_t_sfc   Characteristics That Are to Be Returned
    i_t_sfk =                   " rsdri_t_sfk   Key Figures That Are to Be Returned
*   i_t_range =                 " rsdri_t_range_rfc  Selection Conditions Connected with AND
*   i_t_tablesel =              " rsdri_t_selt  List of Table Selections
*   i_t_rtime =                 " rsdri_t_rtime_rfc  (Only InfoCubes): Table of ranges for non-cumulative InfoCubes
*   i_t_requid =                " rsdr0_t_requid  (Only InfoCubes): Table for ranges for REQUID
*   e_t_rfcdata =               " rsdri_t_rfcdata  Internal Table with Query Result
*   e_t_rfcdatav =              " rsdri_t_rfcdatav
*   e_t_field =                 " rsdp0_t_field  DM API: RFC Return Table Description
  EXCEPTIONS
    ILLEGAL_INPUT = 1           "               Incorrect Input Parameter
    ILLEGAL_INPUT_SFC = 2       "               Error in SFC Parameter
    ILLEGAL_INPUT_SFK = 3       "               Error in SFK Parameter
    ILLEGAL_INPUT_RANGE = 4     "               Error in RANGE or RANGETAB Parameter
    ILLEGAL_INPUT_TABLESEL = 5  "               Error in TABLESEL Parameter
    NO_AUTHORIZATION = 6        "               No Authorization for Data Access
    GENERATION_ERROR = 7        "               Error in the code generation
    ILLEGAL_DOWNLOAD = 8        "               Download into the Specified Form Not Possible
    ILLEGAL_TABLENAME = 9       "               Table Name Already In Use (by DDIC or on DB)
    ILLEGAL_RESULTTYPE = 10     "               Incorrect value for I_RESULTTYPE
    X_MESSAGE = 11              "               Other Error from Deeper Modules
    DATA_OVERFLOW = 12          "               Too much data selected
    .  "  RSDRI_INFOPROV_READ_RFC

ABAP code example for Function Module RSDRI_INFOPROV_READ_RFC





The ABAP code below is a full code listing to execute function module RSDRI_INFOPROV_READ_RFC including all data declarations. The code uses the latest in-line data DECLARATION SYNTAX but I have included an ABAP code snippet at the end to show how declarations would look using the original method of declaring data variables up front. This will allow you to compare and fully understand the new inline method. Please note some of the newer syntax such as the @DATA is not available until a later 4.70 service pack (SP8).

DATA:
ld_e_end_of_data  TYPE RS_BOOL ,
ld_e_aggregate  TYPE RSINFOCUBE ,
ld_e_rfcdata_uc  TYPE XSTRING ,
ld_e_split_occurred  TYPE RSDR0_SPLIT_OCCURRED ,
ld_e_stepuid  TYPE SYSUUID_25 ,
it_i_t_sfc  TYPE STANDARD TABLE OF RSDRI_T_SFC,"TABLES PARAM
wa_i_t_sfc  LIKE LINE OF it_i_t_sfc ,
it_i_t_sfk  TYPE STANDARD TABLE OF RSDRI_T_SFK,"TABLES PARAM
wa_i_t_sfk  LIKE LINE OF it_i_t_sfk ,
it_i_t_range  TYPE STANDARD TABLE OF RSDRI_T_RANGE_RFC,"TABLES PARAM
wa_i_t_range  LIKE LINE OF it_i_t_range ,
it_i_t_tablesel  TYPE STANDARD TABLE OF RSDRI_T_SELT,"TABLES PARAM
wa_i_t_tablesel  LIKE LINE OF it_i_t_tablesel ,
it_i_t_rtime  TYPE STANDARD TABLE OF RSDRI_T_RTIME_RFC,"TABLES PARAM
wa_i_t_rtime  LIKE LINE OF it_i_t_rtime ,
it_i_t_requid  TYPE STANDARD TABLE OF RSDR0_T_REQUID,"TABLES PARAM
wa_i_t_requid  LIKE LINE OF it_i_t_requid ,
it_e_t_rfcdata  TYPE STANDARD TABLE OF RSDRI_T_RFCDATA,"TABLES PARAM
wa_e_t_rfcdata  LIKE LINE OF it_e_t_rfcdata ,
it_e_t_rfcdatav  TYPE STANDARD TABLE OF RSDRI_T_RFCDATAV,"TABLES PARAM
wa_e_t_rfcdatav  LIKE LINE OF it_e_t_rfcdatav ,
it_e_t_field  TYPE STANDARD TABLE OF RSDP0_T_FIELD,"TABLES PARAM
wa_e_t_field  LIKE LINE OF it_e_t_field .

DATA(ld_i_infoprov) = 'Check type of data required'.
DATA(ld_i_reference_date) = 'Check type of data required'.
DATA(ld_i_save_in_table) = 'Check type of data required'.
DATA(ld_i_tablename) = 'Check type of data required'.
DATA(ld_i_save_in_file) = 'Check type of data required'.
DATA(ld_i_filename) = 'Check type of data required'.
DATA(ld_i_authority_check) = 'Check type of data required'.
DATA(ld_i_currency_conversion) = 'Check type of data required'.
DATA(ld_i_s_rfcmode) = 'Check type of data required'.
DATA(ld_i_maxrows) = 'Check type of data required'.
DATA(ld_i_use_db_aggregation) = 'Check type of data required'.
DATA(ld_i_use_aggregates) = 'Check type of data required'.
DATA(ld_i_rollup_only) = 'Check type of data required'.
DATA(ld_i_read_ods_delta) = 'Check type of data required'.
DATA(ld_i_resulttype) = 'Check type of data required'.
DATA(ld_i_debug) = 'Check type of data required'.
DATA(ld_i_t_range_string) = 'Check type of data required'.

"populate fields of struture and append to itab
append wa_i_t_sfc to it_i_t_sfc.

"populate fields of struture and append to itab
append wa_i_t_sfk to it_i_t_sfk.

"populate fields of struture and append to itab
append wa_i_t_range to it_i_t_range.

"populate fields of struture and append to itab
append wa_i_t_tablesel to it_i_t_tablesel.

"populate fields of struture and append to itab
append wa_i_t_rtime to it_i_t_rtime.

"populate fields of struture and append to itab
append wa_i_t_requid to it_i_t_requid.

"populate fields of struture and append to itab
append wa_e_t_rfcdata to it_e_t_rfcdata.

"populate fields of struture and append to itab
append wa_e_t_rfcdatav to it_e_t_rfcdatav.

"populate fields of struture and append to itab
append wa_e_t_field to it_e_t_field. . CALL FUNCTION 'RSDRI_INFOPROV_READ_RFC' EXPORTING i_infoprov = ld_i_infoprov * i_reference_date = ld_i_reference_date * i_save_in_table = ld_i_save_in_table * i_tablename = ld_i_tablename * i_save_in_file = ld_i_save_in_file * i_filename = ld_i_filename * i_authority_check = ld_i_authority_check * i_currency_conversion = ld_i_currency_conversion * i_s_rfcmode = ld_i_s_rfcmode * i_maxrows = ld_i_maxrows * i_use_db_aggregation = ld_i_use_db_aggregation * i_use_aggregates = ld_i_use_aggregates * i_rollup_only = ld_i_rollup_only * i_read_ods_delta = ld_i_read_ods_delta * i_resulttype = ld_i_resulttype * i_debug = ld_i_debug * i_t_range_string = ld_i_t_range_string IMPORTING e_end_of_data = ld_e_end_of_data e_aggregate = ld_e_aggregate e_rfcdata_uc = ld_e_rfcdata_uc e_split_occurred = ld_e_split_occurred e_stepuid = ld_e_stepuid TABLES i_t_sfc = it_i_t_sfc i_t_sfk = it_i_t_sfk * i_t_range = it_i_t_range * i_t_tablesel = it_i_t_tablesel * i_t_rtime = it_i_t_rtime * i_t_requid = it_i_t_requid * e_t_rfcdata = it_e_t_rfcdata * e_t_rfcdatav = it_e_t_rfcdatav * e_t_field = it_e_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 . " RSDRI_INFOPROV_READ_RFC
IF SY-SUBRC EQ 0. "All OK ELSEIF SY-SUBRC EQ 1. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 2. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 3. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 4. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 5. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 6. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 7. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 8. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 9. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 10. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 11. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 12. "Exception "Add code for exception here ENDIF.







ABAP code to compare 7.40 inline data declaration with original syntax

The below ABAP code uses the older none in-line data declarations. This allows you to see the coding differences/benefits of the later inline syntax. It may also be useful if you are using an older version of SAP as some of the newer syntax above, such as the @DATA is not available until 4.70 EHP 8.

DATA:
ld_e_end_of_data  TYPE RS_BOOL ,
it_i_t_sfc  TYPE STANDARD TABLE OF RSDRI_T_SFC ,
wa_i_t_sfc  LIKE LINE OF it_i_t_sfc,
ld_i_infoprov  TYPE RSINFOPROV ,
it_i_t_sfk  TYPE STANDARD TABLE OF RSDRI_T_SFK ,
wa_i_t_sfk  LIKE LINE OF it_i_t_sfk,
ld_i_reference_date  TYPE RSDRI_REFDATE ,
ld_e_aggregate  TYPE RSINFOCUBE ,
ld_i_save_in_table  TYPE RSDRI_SAVE_IN_TABLE ,
it_i_t_range  TYPE STANDARD TABLE OF RSDRI_T_RANGE_RFC ,
wa_i_t_range  LIKE LINE OF it_i_t_range,
ld_e_rfcdata_uc  TYPE XSTRING ,
ld_i_tablename  TYPE RSDRI_TABLENAME ,
ld_e_split_occurred  TYPE RSDR0_SPLIT_OCCURRED ,
it_i_t_tablesel  TYPE STANDARD TABLE OF RSDRI_T_SELT ,
wa_i_t_tablesel  LIKE LINE OF it_i_t_tablesel,
ld_i_save_in_file  TYPE RSDRI_SAVE_IN_FILE ,
ld_e_stepuid  TYPE SYSUUID_25 ,
it_i_t_rtime  TYPE STANDARD TABLE OF RSDRI_T_RTIME_RFC ,
wa_i_t_rtime  LIKE LINE OF it_i_t_rtime,
ld_i_filename  TYPE RSDRI_FILENAME ,
it_i_t_requid  TYPE STANDARD TABLE OF RSDR0_T_REQUID ,
wa_i_t_requid  LIKE LINE OF it_i_t_requid,
it_e_t_rfcdata  TYPE STANDARD TABLE OF RSDRI_T_RFCDATA ,
wa_e_t_rfcdata  LIKE LINE OF it_e_t_rfcdata,
ld_i_authority_check  TYPE RSDRI_AUTHCHK ,
ld_i_currency_conversion  TYPE RSDR0_CURR_CONV ,
it_e_t_rfcdatav  TYPE STANDARD TABLE OF RSDRI_T_RFCDATAV ,
wa_e_t_rfcdatav  LIKE LINE OF it_e_t_rfcdatav,
it_e_t_field  TYPE STANDARD TABLE OF RSDP0_T_FIELD ,
wa_e_t_field  LIKE LINE OF it_e_t_field,
ld_i_s_rfcmode  TYPE RSDP0_S_RFCMODE ,
ld_i_maxrows  TYPE I ,
ld_i_use_db_aggregation  TYPE RS_BOOL ,
ld_i_use_aggregates  TYPE RS_BOOL ,
ld_i_rollup_only  TYPE RS_BOOL ,
ld_i_read_ods_delta  TYPE RS_BOOL ,
ld_i_resulttype  TYPE RSDRI_RESULTTYPE ,
ld_i_debug  TYPE RS_BOOL ,
ld_i_t_range_string  TYPE RSDRI_T_RANGE .


"populate fields of struture and append to itab
append wa_i_t_sfc to it_i_t_sfc.
ld_i_infoprov = 'Check type of data required'.

"populate fields of struture and append to itab
append wa_i_t_sfk to it_i_t_sfk.
ld_i_reference_date = 'Check type of data required'.
ld_i_save_in_table = 'Check type of data required'.

"populate fields of struture and append to itab
append wa_i_t_range to it_i_t_range.
ld_i_tablename = 'Check type of data required'.

"populate fields of struture and append to itab
append wa_i_t_tablesel to it_i_t_tablesel.
ld_i_save_in_file = 'Check type of data required'.

"populate fields of struture and append to itab
append wa_i_t_rtime to it_i_t_rtime.
ld_i_filename = 'Check type of data required'.

"populate fields of struture and append to itab
append wa_i_t_requid to it_i_t_requid.

"populate fields of struture and append to itab
append wa_e_t_rfcdata to it_e_t_rfcdata.
ld_i_authority_check = 'Check type of data required'.
ld_i_currency_conversion = 'Check type of data required'.

"populate fields of struture and append to itab
append wa_e_t_rfcdatav to it_e_t_rfcdatav.

"populate fields of struture and append to itab
append wa_e_t_field to it_e_t_field.
ld_i_s_rfcmode = 'Check type of data required'.
ld_i_maxrows = 'Check type of data required'.
ld_i_use_db_aggregation = 'Check type of data required'.
ld_i_use_aggregates = 'Check type of data required'.
ld_i_rollup_only = 'Check type of data required'.
ld_i_read_ods_delta = 'Check type of data required'.
ld_i_resulttype = 'Check type of data required'.
ld_i_debug = 'Check type of data required'.
ld_i_t_range_string = 'Check type of data required'.

SAP Documentation for FM RSDRI_INFOPROV_READ_RFC


This module is an RFC version of the module RSDRI_INFOPROV_READ, but with restricted functions. ...See here for full SAP fm documentation







Contribute (Add Comments)

Please help keep this info upto date and use the comments section below to add useful hints, tips and information specific to this SAP function. This will then be available for you and other users to easily find by simply searching on the object name RSDRI_INFOPROV_READ_RFC or its description.