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: 

Diff bet RFC & BAPI's.

Former Member
0 Kudos

Hi,

I want to know the diff between RFC and BAPI,One diff i know is RFC are direct system calls and BAPI's are indirect system calls,but can any one explain me wht is direct system call and wht is indirect system call.

1 ACCEPTED SOLUTION

former_member189629
Active Contributor
0 Kudos

Prince,

BAPI is used only when it is available for the particular transaction like Delivery Sales order. but BDC can be used for any

transaction which have screen and fields.

BAPI is directly updated the database instead BDC run through the screen flow.

So BAPI can't handle all the flow logic checking and enhancement put by programmer to faciliate the user requirement.

Difference between BAPI and BDC:

BAPI is a higher end usage for tranfering the data from SAP to non-SAP and vice-versa. for ex: if we are using VB application,where in that we want to connect to SAP and retireve the data,and then change and update the data in SAP for that purpose we can use that.

Apart from that, we can also use it for Uploading/Downloading the data from SAP to Non-SAP like BDC, provided we have an existing BAPI for that.

BAPI function modules will also do all the checks required for data integrity like Transactions for BDC.

There is one more advantage using BAPI instead of BDC. When we go for upgradation, there might be pozzibility to change the screen elements for transactions depending on the requirement. In that case,our BDC pgm may or may not work (depending on the screen changes they have made). Unless and until we prepare new BDC we cant use the old BDC pgm. But in BAPI, SAP promises that they are going to keep the old BAPI and for new functionality they will provide an upgraded BAPI. Until we write a new BAPI pgm, we can use the exisitng BAPI pgm.

Reward if helpful,

Karthik

5 REPLIES 5

former_member189629
Active Contributor
0 Kudos

Prince,

BAPI is used only when it is available for the particular transaction like Delivery Sales order. but BDC can be used for any

transaction which have screen and fields.

BAPI is directly updated the database instead BDC run through the screen flow.

So BAPI can't handle all the flow logic checking and enhancement put by programmer to faciliate the user requirement.

Difference between BAPI and BDC:

BAPI is a higher end usage for tranfering the data from SAP to non-SAP and vice-versa. for ex: if we are using VB application,where in that we want to connect to SAP and retireve the data,and then change and update the data in SAP for that purpose we can use that.

Apart from that, we can also use it for Uploading/Downloading the data from SAP to Non-SAP like BDC, provided we have an existing BAPI for that.

BAPI function modules will also do all the checks required for data integrity like Transactions for BDC.

There is one more advantage using BAPI instead of BDC. When we go for upgradation, there might be pozzibility to change the screen elements for transactions depending on the requirement. In that case,our BDC pgm may or may not work (depending on the screen changes they have made). Unless and until we prepare new BDC we cant use the old BDC pgm. But in BAPI, SAP promises that they are going to keep the old BAPI and for new functionality they will provide an upgraded BAPI. Until we write a new BAPI pgm, we can use the exisitng BAPI pgm.

Reward if helpful,

Karthik

Former Member
0 Kudos

hi

Check these out

http://searchsap.techtarget.com/ateQuestionNResponse/0,289625,sid21_cid558752_tax293481,00.html

BAPI are RFC enabled function modules. 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.

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.

Check out these threads.

Other good links are..

http://www.sap-img.com/abap/interview-question-on-bapi-rfc-abap-objects-tables.htm

http://searchsap.techtarget.com/ateQuestionNResponse/0,289625,sid21_cid558752_tax293481,00.html

http://www.sap-img.com/fu033.htm

http://www.sap-img.com/abap/ale-bapi.htm

Reward if usefull

Former Member
0 Kudos

Difference between RFC and BAPI

BAPI are RFC enabled function modules. 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.

Difference Between BAPI and RFC

What is the main difference between BAPI and RFC and difference between BAPI and BDC?

BAPI is used only when it is available for the particular transaction like Delivery Sales order. but BDC can be used for any

transaction which have screen and fields.

BAPI is directly updated the database instead BDC run through the screen flow.

So BAPI can't handle all the flow logic checking and enhancement put by programmer to faciliate the user requirement.

Difference between BAPI and BDC:

BAPI is a higher end usage for tranfering the data from SAP to non-SAP and vice-versa. for ex: if we are using VB application,where in that we want to connect to SAP and retireve the data,and then change and update the data in SAP for that purpose we can use that.

Apart from that, we can also use it for Uploading/Downloading the data from SAP to Non-SAP like BDC, provided we have an existing BAPI for that.

BAPI function modules will also do all the checks required for data integrity like Transactions for BDC.

There is one more advantage using BAPI instead of BDC. When we go for upgradation, there might be pozzibility to change the screen elements for transactions depending on the requirement. In that case,our BDC pgm may or may not work (depending on the screen changes they have made). Unless and until we prepare new BDC we cant use the old BDC pgm. But in BAPI, SAP promises that they are going to keep the old BAPI and for new functionality they will provide an upgraded BAPI. Until we write a new BAPI pgm, we can use the exisitng BAPI pgm.

http://searchsap.techtarget.com/ateQuestionNResponse/0,289625,sid21_cid558752_tax293481,00.html

http://www.sap-img.com/abap/interview-question-on-bapi-rfc-abap-objects-tables.htm

http://www.sap-img.com/fu033.htm

http://www.sap-img.com/abap/ale-bapi.htm

http://www.ask.com/web?q=WhatisthedifferencebetweenRFCandBAPIin+ABAP&qsrc=119&o=333&l=dir

http://www.sap-img.com/fu026.htm

Please give me reward points if it is useful.

Thanks

Murali Poli

Former Member
0 Kudos

Hi As such RFC & BAPI ,not much difference .

BAPI stands for Business Application Program Interface &

RFC stands for Remote Function Call

Major difference betwen Bapi and RFC is that BAPIS are use for communication between SAP and Non SAP system whereas RFCs are used for communicating within sap system only..

A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..

You can make your function module remotely enabled in attributes of Function module but BAPI are standard SAP function modules provided by SAP for remote access.

BAPI are RFC enabled function modules. 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) .

Function module : simple function module you can call in program itself. by using SE 37 .

BAPI : BAPI is also a function module but it's having RFC's enabled. in SE37 --> Attributes Tab --> you have to enable REMOTE . and you can call import , export parameter as like as in simple function module . this BAPI function module you can call in different systems . you can call these RFC enabled function modules in to BOR as a methods. using of this BAPI you can communicate with legacy system as request and response method.

this is some what basic concept of bapi and function module.

Please reward if useful.

Former Member
0 Kudos

Hi Prince,

BAPIs are RFC(Remote)-enabled function modules meaning that they provide users from external systems the ability to access to SAP systems and their functionality.

To be clear, BAPIs are more than traditional RFC-enabled func modules. They actuallly work through SAP business objects (customers, sales orders).

Remote Function Call:

RFC is an SAP interface protocol.

RFC is a fun module similar to other fun modulkes with special Parameter as DESTINATIOn and in the attributes you have to make it as RFC ebnables

where as BAPI is the API of the BUSINESS OBJECT which you see in SWo1 Tcode

Based on CPI-C, it considerably simplifies the programming of communication processes between systems.

RFCs enable you to call and execute predefined functions in a remote system - or even in the same system.

RFCs manage the communication process, parameter transfer and error handling.

A BAPI is remotely enabled function module

ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..

You can make your function module remotely enabled in attributes of Function module but

A BAPI are standard SAP function modules provided by SAP for remote access.

Also they are part of Businees Objest Repository(BOR).

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.

Reward for helpful.

Regards,

Harini.S