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: 

what is the main difference between the BAPI and RFC

Former Member
0 Kudos

Hi,

What is the main differences between the BAPI and RFC.

Please give the clear inforamtion.

Regards

Raghava

5 REPLIES 5

Former Member
0 Kudos

Hi,

RFC is Remote Function Call - a function module, which can be called remotely from outside

BAPI is also a Remote enabled function module but the difference between BAPI and RFC is in BAPI there is a bussiness object attached to it which calls SAP application internally.

**********************************************

can you explain RFC and BAPI???

The difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. in this case u only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.

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.

RFC is the protocol used by SAP for remote communication, that is, for communications between remote independent systems.RFC is used for communications between two independent SAP systems, or for communications between an SAP system and a non-SAP system, such as an external application. It can also be used for communications between modules on the same system.Using the RFC interfaces you can extend the functionality of R/3 applications from an external program.

An R/3 system also contains Business Application Programming Interfaces (also called Business APIs, or BAPIs), which provide a programming interface to business objects. BAPIs are a set of methods for working with and manipulating SAP business objects.Internally, BAPIs are implemented as function modules stored in the R/3 Function Builder. Each BAPI has an equivalent internally-named function module. However, you should use the BAPI and not the function module behind it, because the BAPI provides a stable, object-oriented view of R/3 applications and data. The internal function modules or even the fact that the BAPIs are implemented as function modules are not guaranteed to remain the same in future releases of R/3.

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.

*****************************************************************************

RFC and BAPIs are remote enabled function modules. They are practicly the same. A BAPI is one step further as it usually is a self contained business function, such as "Create Purchase Order", or "Change Sales Document". BAPIs interface is very well defined and documented. BAPIs can be found in the BAPI browser via transaction BAPI. RFCs are just remote enabled function modules.

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.

*******************************************************************************

BAPIs are RFCs, the only difference is that BAPIs usually encapulate some complete business object. For example, creating a sales order, the BAPI would do all of the steps required to create a sales order.

**************************************************************************************

Regards,

Shiva.

Former Member
0 Kudos

Hi,

The following Info may help u.

RFC stands for REMOTE FUNCTION CALL RFCs are used to

establish a connection between two different application

servers rfc used for accessing functions of a function

module in a function group present on different application

servers with in a landscape i.e., for transfer of data

directly between source and target client on remote systems

in sap system landscape.

in sap basis rfc is used for remote client copies.

Tcode RFC- sm59 display/maintain

FUNCTION MODULE contains functions in particular to a module

like finance , HR , MM....... .Function module is always

created under function group. one group can contain one or

more function modules a function module can be accessed from

remote system where u can call it as RFC call.

u create function module in following way

1.tcode- sm37

2.create a function group

3.activate the function group

4.create the function module

5. activate the function module

6. access the function module

What is RFC doing and not the

fn module?

The die ifference is in the way parameters are passed the

import export n the table parameters.

In fn module its by reference(passing memory address) if a

parameter's address is passed will the remote system

identify it ? wouldn't hence the concept RFC evolved to

solve it the mode of passing data is by value.

Thanks,

Anon

Former Member
0 Kudos

1)RFC is a direct system call means whenever you declare RFC FM within your program you must add destination 'dest name' ...so here you directly call the remote system.

But in BAPI you never call system directly..instead you just created one FM and add that one as API method in business object builder..so SAP.COMPONENT.1 will take care of this one.

2)In RFC you can handle errors using exceptions..but in BAPI you cannot handle exceptions instead you should declare one return parameter as BAPIRET2 for to get the errors.

3)Naming conventions are very important in BAPI like FM should alwalys start with 'BAPI_'.but there is no naming conventions in RFC.

4)COMMITWORK may work in RFC.butin BAPI it cannot work...instead use BAPI_TRANSACTION_COMMIT for the same.

regards.

Dara.

Former Member