SAP Function RSDRI_ODSO_UPDATE_RFC - Modifies Data Records in a Transactional ODS Object (RFC Version)

Parameter Reference Type Length Default Optional Text
I_ODSOBJECT BAPI6116-ODSOBJECT C 30 ODS Object
I_RFCDATA_UC XSTRING y 0 X Parameter for Transfer of the Data Records to Be Modified

Parameter Reference Type Length Text
E_NUMROWS BAPI6116XX-NUMROWS I 4 Number of Modified Records

Parameter Reference Length Optional Text
I_T_DATA BAPI6116DA 251 Table with Data to Be Modified

Exception Text
ACTIVE_TABLE_NAME_NOT_FOUND Name of Active Table Not Found
ARRAY_UPDATE_FAILED Update of Array Failed
DATA_TARGET_NOT_ODS Data Target Is Not an ODS Object
INTERNAL_ERROR Unexpected Error
ODS_TYPE_NOT_TRANSACTIONAL ODS Object Type Is Not "Transactional"
RECORD_KEY_DOES_NOT_EXIST At Least One of the Records Has a Key That Does Not Yet Exist

Functionality
This function module receives the technical name of the DataStore objectas a return parameter. Data is transferred in the generic table with thenew/changed records.
A check is carried out to see whether the DataStore object is aDataStore object for direct writing. Then the data is converted from the250-byte format to the structure of the DataStore object and inserted inthe object. The number of data records inserted is returned (e_numrows).In the event of errors during this process, the relevant exception isreturned.

Notes
You must use the parameter I_RFCDATA_UC for data transfer, especiallywhen packed data formats are used in the DataStore object (INT4, Float,...), because of the fact that conversion errors may occur during theinternal table transfer.
You must load the data into a table with the same structure of theDataStore object first. Then the data must be exported in the followingway:
EXPORT rsdri = TO DATA BUFFER
rsdri is a constant that MUST be used. The objects in parenthesis are,on the one hand, the table that is filled with the data, and on theother hand, the XString variable to which the data is transferred.
When you want to change data in a DataStore object, you must transferthe values of all InfoObjects in the DataStore object structure, notonly the data that has changed. Thus, each record in the DataStoreobject, uniquely identifiable by a primary key, is replaced by a newdata record.
Table I_T_DATA has a flat, 250-byte long structure. Data is stored inthe DATA field. If the structure of the DataStore object table is longerthan 250 bytes, additional rows are required. The first row of theCONTINUATION field should be blank and all additional rows should bemarked with an X.
Data is either accepted in full or rejected in full. For this reason,you must ensure that the data is correct and in particular ensure thatthe structure of the data matches the structure of the DataStore objecttable exactly. Incorrect data or structures may result in SQL errors,exceptions, or in data being transferred in the wrong format.

  • Since a DataStore object for direct writing is often supplied with new
  • data, lock management must be implemented in the calling object. Forexample, you might implement no lock (except at database level) forquick changes to a small number of records but implement a lock forlengthy changes involving a large number of records.

    Further technical notes:
    The RFC-enabled function module RSDRI_ODSO_UPDATE_RFC uses the localfunction module RSDRD_SEL_UPDATE.
    For remote calls, you should use the function moduleRSDRI_ODSO_UPDATE_RFC. For local calls, you should use the functionmodule RSDRD_SEL_UPDATE, so that data conversions are saved before andafter the call and also to improve performance.

    Description
    Technical name of the DataStore object.