Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

RFC Vs BAPI

Former Member
0 Kudos

How does an RFC differs from a BAPI?

If I have an RFC , now How should i convert this into a BAPI?

Thanks

6 REPLIES 6

Former Member
0 Kudos

BAPI's are nothing but RFC's from a technical perspective(implemenation perspective).

In case of BAPI's, you have something called as a BOR (Business Object Repository), where in you have a business object and then you have methods to deal with that business object. For example, MATERIAL is a business object and then you have methods to CREATE / CHANGE etc etc.

Each of the implementations of the methods is nothing but a RFC. You can see the same in BAPI transaction, drill down into the methods and see the implementation underneath.

Regards,

Ravi

Message was edited by: Ravikumar Allampallam

Former Member
0 Kudos

Former Member
0 Kudos

HI ROHINI,

Technically, not much at all. They are both remote enabled functions that can be accessed from outside of SAP (to be more technically correct, from outside of the ABAP stack).

From a usage/functional perspective however, BAPIs are a little bit more special from RFCs.

Bapis:

- are designed as the methods of business objects in the business object repository (accessable using transaction BAPI or SWO1)

- have non-technical parameter names (the technical field names in SAP are mapped)

- have a fixed interface and functionality across all SAP releases (this is probably the key point as it means you can develop integrations with them which do not need to be changed when you upgrade)

Generally, if you are trying to find a function for a particular requirement you should look for a BAPI first, then for a RFC function which has a released status (check the function attributes in SE37), and then just a normal RFC last.

The benefit of an RFC function with released status means that it also has a fixed interface which will not change with new SAP releases.

check all these links also

Hope that helps.

Regards,

Naveen

0 Kudos

Hi,

What is the difference between a BAPI and an RFC?

> EXPERT RESPONSE

BAPI stands for Business Application Programming Interface. It is a library of functions that are released to the public as an interface into an existing SAP system from an external system.

RFC is the protocol used to call functions in an R/3 system by a caller external to R/3 or to call programs external to R/3 from an R/3 system.

Functions can only be called via RFC, if they are tagged as RFC functions in the SAP development workbench. They are then called RFC function modules. BAPIs are complete sets of (BAPI) function modules that model a business application.

When you are familiar with web developments: RFC can be compared to HTTP and BAPIs are CGI applications.

In other words: A BAPI function is a function module that can be called remotely using the RFC technology.

Cheers

VJ

0 Kudos

Hi,

Agreed with Vijayendra, RFC is a protocol (communicating protocol). It is a method for you to communicate (passing of data) when called upon by a program.

In se37, if you create a function module, beneath the bottom there is a tick box whether you want the FM to be able to called remotely.

However, just a little something to add, BAPI not only can use RFC to be called externally but using OO Objects too.

RFC are encapsulated in BAPI so external non SAP applications can call it.

Regards,

William Wilstroth

William Wilstroth

Former Member
0 Kudos

This message was moderated.