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

Parameter Reference Type Length Default Optional Text
I_AUTHORITY_CHECK RSDRI_AUTHCHK C 1 RSDRC_C_AUTHCHK-READ X Perform Access Check - read/write/none?
I_CURRENCY_CONVERSION RSDR0_CURR_CONV C 1 'X' X Convert Currency Key Figures
I_DEBUG RS_BOOL C 1 RS_C_FALSE X Debugging mode on/off?
I_FILENAME RSDRI_FILENAME C 60 X Name of results file
I_INFOPROV RSINFOPROV C 30 Technical Name of InfoProvider
I_MAXROWS I I 4 0 X Stops After This Number of Records
I_READ_ODS_DELTA RS_BOOL C 1 RS_C_FALSE X (Only ODS Objects): Should Data Be Read from the ODS Change Log?
I_REFERENCE_DATE RSDRI_REFDATE D 8 SY-DATUM X Key Date
I_RESULTTYPE RSDRI_RESULTTYPE C 1 SPACE X Return to E_T_RFCDATA, E_T_RFCDATAV (V), E_RFCDATA_UC (U)
I_ROLLUP_ONLY RS_BOOL C 1 RS_C_TRUE X Cubes: Only read to roll-up? Ignored if i_t_requid is set
I_SAVE_IN_FILE RSDRI_SAVE_IN_FILE C 1 SPACE X Save Result in File?
I_SAVE_IN_TABLE RSDRI_SAVE_IN_TABLE C 1 SPACE X Save Result in DB Table?
I_S_RFCMODE RSDP0_S_RFCMODE u 44 X DM API: RFC Mode
I_TABLENAME RSDRI_TABLENAME C 30 X Name of the Results Table
I_USE_AGGREGATES RS_BOOL C 1 RS_C_TRUE X (Only InfoCubes): Should aggregates be used? yes/no
I_USE_DB_AGGREGATION RS_BOOL C 1 RS_C_TRUE X Aggregate Run on DB

Parameter Reference Type Length Text
E_AGGREGATE RSINFOCUBE C 30 Last Aggregate Used
E_END_OF_DATA RS_BOOL C 1 Last Data Package Yes/No
E_RFCDATA_UC XSTRING y 0 Unicode-compatible coding for the result
E_SPLIT_OCCURRED RSDR0_SPLIT_OCCURRED C 1 Result may not be completely aggregated
E_STEPUID SYSUUID_25 C 25 UUID of the step in the query statistics

Parameter Reference Length Optional Text
E_T_FIELD RSDP0_T_FIELD 40 X DM API: RFC Return Table Description
E_T_RFCDATA RSDRI_T_RFCDATA 256 X Internal Table with Query Result
E_T_RFCDATAV RSDRI_T_RFCDATAV 100 X
I_T_RANGE RSDRI_T_RANGE 153 X Selection Conditions Connected with AND
I_T_REQUID RSDR0_T_REQUID 12 X (Only InfoCubes): Table for ranges for REQUID
I_T_RTIME RSDRI_T_RTIME 121 X (Only InfoCubes): Table of ranges for non-cumulative InfoCubes
I_T_SFC RSDRI_T_SFC 52 Characteristics That Are to Be Returned
I_T_SFK RSDRI_T_SFK 51 Key Figures That Are to Be Returned
I_T_TABLESEL RSDRI_T_SELT 90 X List of Table Selections

Exception Text
DATA_OVERFLOW Too much data selected
GENERATION_ERROR Error in the code generation
ILLEGAL_DOWNLOAD Download into the Specified Form Not Possible
ILLEGAL_INPUT Incorrect Input Parameter
ILLEGAL_INPUT_RANGE Error in RANGE or RANGETAB Parameter
ILLEGAL_INPUT_SFC Error in SFC Parameter
ILLEGAL_INPUT_SFK Error in SFK Parameter
ILLEGAL_INPUT_TABLESEL Error in TABLESEL Parameter
ILLEGAL_RESULTTYPE Incorrect value for I_RESULTTYPE
ILLEGAL_TABLENAME Table Name Already In Use (by DDIC or on DB)
NO_AUTHORIZATION No Authorization for Data Access
X_MESSAGE Other Error from Deeper Modules

Functionality
This module is an RFC version of the module RSDRI_INFOPROV_READ, butwith restricted functions.

Further information
See RSDRI_INFOPROV_READ.

Description
The result stored in E_RFCDATA_UC can be converted back to the internaltable using the command IMPORT RSDRI = FROM DATA BUFFER e_rfcdata_uc. The E_RFCDATA_UCformat is also suitable for communicating between systems with andwithout Unicode or between systems with different code pages.

Value range
This field can have two values:

  • 'X' : This means that the result of the read is not aggregated
  • completely. This is caused by multiple DB reads from, for example, amulti-provider or by reads in E and F fact tables.
    • ' ' : This means that the result has been aggregated completely.
    • Description
      I_RESULTTYPE specifies the form in which a result is returned:

      • space = in an internal table E_T_RFCDATA vom Typ RSDRI_T_RFCDATA

      • 'V' = in an internal table E_T_RFCDATAV with type RSDRI_T_RFCDATAV

      • 'U' = in a variable E_RFCDATA_UC with type XSTRING

      • Note that the standard return value (space) causes problems in systemswith differing code pages and in RFC communications between Unicode andnon-Unicode systems.
        A vertical return ('V') is a problem if the result is large. As ageneral rule, the table E_T_RFCDATAV must not contain more than 100000entries. This size is calculated as follows: ((no. of characteristics +no. of key figues) * result rows).
        A Unicode-compatible return value ('U') is suitable for communicationsbetween systems on at least Basis 6.10. Differing code pages are alsoallowed.

        Description
        Do you only want to include data that has already been rolled up toaggregates, or do you also want to read the most current data that mightonly exist in the fact table of the InfoCube?
        This parameter is ignored if a table of requests (i_t_requid) wasspecified.

        Description
        You can use the parameter I_S_RFCMODE to pass results data package bypackage. This is necessary in particular when you use RFC to query massdata; there may not be enough system resources available to pass theresult in an internal table.
        You specify the package-by-package passing of the data in I_S_RFCMODE.The basic idea is to pass a data package in E_T_RFCDATA format (intowhich a certain number of data records has been passed) to anRFC-enabled ABAP function module in the calling system:

        • I_S_RFCMODE-ID: This is a random ID used to permit the receiver function
        • module to differentiate between packages in parallel requests. This IDis passed to the receiving function module as an input parameter.
          • I_S_RFCMODE-RFC_RECEIVER: This is the name of the RFC-enabled receiver
          • function module in the calling system.
            • I_S_RFCMODE-PACKAGESIZE: This is the number of results records that a
            • package should contain.
              The receiving function module (I_S_RFCMODE-RFC_RECEIVER) should bestructured in the same way as the module RSDPL_RECEIVER_PROTOTYPE.

              Value range
              Make sure that the function specified by I_S_RFCMODE-RFC_RECEIVERprocesses the data speedily. If the data remains in this function toolong, the calling process can be stored in BW, so losing the databasecursor and potentially causing an error. One solution to this would betoo use smaller processing packages (see I_S_RFCMODE-PACKAGESIZE).

              Default
              Initial (results are not passed to a receiving module in packages)

302937Debugging APO/SEM/CRM read/write interface in BW 3.x, 7.x
1643424RSDRI_INFOPROV_READ_RFC: Termination w/ CX_RS_PROGRAM_ERROR
1392762RSDRI_INFOPROV_READ_RFC does not aggregate usg.InfoProviders
1325900Turning RSDRI_INFOPROV_READ into RSDRI_INFOPROV_READ_RFC