1. Introduction:
We can call SAP ERP or R/3 Remote Function Call (RFC) enabled functions, including Business Application Programming Interface (BAPI) functions, from queries inside data flows. A Remote Function Call is really what the word suggests: You call a function but it is remote rather than part of your code. This is the standard way how 3rd party’s tools access SAP, both for read and write. All RFCs meant to be used for business reasons, their function name starts with the text BAPI_XXXX like BAPI_ABSENCE_CREATE or BAPI_ABSENCE_GETDETAIL, both meant to create or display employee’s absence records in HR.
If you design data flows with BAPI calls against one version of SAP ERP or R/3, then change data stores to a later version of SAP ERP or R/3. Data Services allows this without the need to re-import the BAPI. Any new parameters added to the function call, including additional columns in table parameters, are added automatically to the call and filled with NULL values. Thus Data Services allows you to design jobs that are portable between SAP ERP or R/3 systems. After you import the metadata for an SAP ERP or R/3 function, the function is listed in the Functions category of the ERP or R/3 data store. You will also see the function in the function wizard, listed under the data store name.
Data Services supports tables as input and output parameters for SAP ERP or R/3 RFC and BAPI functions. The function import process automatically includes the metadata for tables included as function parameters.
2. BAPI Call:
After you import the metadata for an SAP ERP or R/3 function, the function is listed in the Functions category of the ERP or R/3 datastore. You will also see the function in the function wizard, listed under the datastore name. To call a BAPI depends on the requirement; here in this document we have considered an example of creating a CONTRACT using ‘BAPI_CONTRACT_CREATEFROMDATA’. For this BAPI, we need to send mandatory input and Tables parameters to create a CONTRACT.