Application Development and Automation 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: 
Read only

What is the difference between user defined BAPI and RFC.

senthil_kumar29
Participant
0 Likes
1,300

Hi All,

What is the basic difference between user defined BAPI and RFC. Since both serve same purpose and also RFC is easy to create compare to Custom BAPI.

Thanx for your time.

Cheers,

Sam

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,037

Hi

Remote Function Call:

RFC is an SAP interface protocol. 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.

http://help.sap.com/saphelp_47x200/helpdata/en/22/042860488911d189490000e829fbbd/frameset.htm.

BAPI

BAPI stands for Business API(Application Program Interface).

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).

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.

Check below links which will give u better idea...

/message/2272598#2272598 [original link is broken]

-charitha

Hi All,

What is the basic difference between user defined BAPI and RFC. Since both serve same purpose and also RFC is easy to create compare to Custom BAPI.

Thanx for your time.

Cheers,

Sam

6 REPLIES 6
Read only

raja_thangamani
Active Contributor
0 Likes
1,037

Hi,

<b>Difference between RFC and BAPI</b>

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.

check these links

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

Raja T

Message was edited by:

Raja T

Read only

0 Likes
1,037

Hi,

Does it mean that user defined RFC Function modules can not be called form Non-SAP applications.

Cheers,

Sam

Read only

0 Likes
1,037

Hello Sam

All RFC-enabled function modules can be accessed from the outside, irrespective of whether it is a standard BAPI, a user-defined BAPI or a "normal" RFC function module.

I have not understood yet why people bother to create their own BAPIs (including registration in the BOR, etc.) instead of building a "normal" RFC function module. I neither see a technical nor a business advantage having a user-defined BAPI instead of a normal RFC function module.

Of course, if the same functionality is provided by either a standard BAPI or a standard RFC function module (both from SAP) I will always choose the BAPI because it is more scrupulous in validating the input data and the interface should be more stable than that of the normal RFC function module.

Regards

Uwe

Read only

0 Likes
1,037

Hi,

Thanx for your answer. you are right, I too looking for significant of custom BAPI over user defined RFC.

Cheers,

Sam

Read only

Former Member
0 Likes
1,038

Hi

Remote Function Call:

RFC is an SAP interface protocol. 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.

http://help.sap.com/saphelp_47x200/helpdata/en/22/042860488911d189490000e829fbbd/frameset.htm.

BAPI

BAPI stands for Business API(Application Program Interface).

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).

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.

Check below links which will give u better idea...

/message/2272598#2272598 [original link is broken]

-charitha

Read only

Former Member
0 Likes
1,037

Hi,

All RFCs can be called from remote systems..

Thanks,

Naren