2008 Apr 23 7:03 AM
Hi,
What is the main differences between the BAPI and RFC.
Please give the clear inforamtion.
Regards
Raghava
2008 Apr 23 7:05 AM
2008 Apr 23 7:06 AM
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.
2008 Apr 23 7:11 AM
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
2008 Apr 23 7:13 AM
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.
2008 Apr 23 7:18 AM
Hi,
Both are FM (which are rfc enabled)
the only main difference is
BAPI have a corresponding business object
in BOR.
rEFER
https://forums.sdn.sap.com/click.jspa?searchID=11051794&messageID=4592026
http://www.sap-img.com/abap/interview-question-on-bapi-rfc-abap-objects-tables.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/c7/eff2280d0511d3a6300060087832f8/frameset.htm
Regards
Kiran