1. What is the major difference between a BAPI and and RFC?
2. How do I find BAPIs in SAP?
3. How do I determine errors made from BAPI/RFC calls?
1. An RFC (Remote Functional Call) is any remotely enabled function module either provided by SAP or created by a developer. The key to an RFC is a flag set in the Function Builder (SE37) under the attributes tab called "Remote-Enabled Module". When this flag is set, the SAP application server allows this function module to be called by an external program or service.
A BAPI (Business Application Programming Interface) is a remote enabled function module that provides access to a specific SAP business object. BAPIs allow an external program or application to act on SAP business objects through a safe, published interface. When integrating with SAP, you should always use BAPIs to interact with specific SAP business applications.
2. The easiest way to find a BAPI in SAP is by using the BAPI browser: Tools -> Business Framework -> BAPI Explorer. You can also navigate directly to the BAPI explorer by using the transaction code BAPI.
You can also search for BAPIs directly in the Function Builder (SE37). The simplest way is to search using "BAPI*". The wildcard will return any function module containing BAPI as a prefix. However, SAP has begun to move away from this naming convention, so you are probably better off using the BAPI Explorer.
3. Most BAPIs with support a RETURN structure that contains all success and error indicators. RFCs are a little trickier in that they are not require to use a BAPI RETURN structure. In an RFC these errors will be part of a specific changing table and will have "ERROR" as part of their name.
Dig Deeper on SAP ABAP
Related Q&A from Austin Sincock
Is there a way to view a list of SAP interfaces such as RFC, BAPI and ALE? Continue Reading
Retrieving a list of parameters for a specific remote function module using JCo connector. Continue Reading
A list of SAP ports for JCo usage. Continue Reading