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 and bapi ?

Former Member
0 Kudos

can rfcs can be used in place of bapi?

1 ACCEPTED SOLUTION

Former Member
0 Kudos

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.

Technically, not much difference 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.

An RFC, or Remote Function Call, describes an external interface to a system function module available in SAP. For example, getting the system parameters is a system function available via RFC.

An BAPI, or Business Application Programming Interface, is an RFC-enabled function module that provides external access to an SAP business application such as creating a sales order.

In effect, all BAPIs are RFCs but there are a superset of RFCs that are not considered BAPIs. Really, two sides of the same coin.

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.

Technically speaking, both are remote enabled functions that can be accessed from outside of SAP. But functionally speaking, BAPIs are a little bit more specific than RFCs

RFC: is just a FM that can be called from remote system too(destination defined in transaction SM59).

BAPI: Business Application Programming Interface

A BAPI is a method of a business object defined in the Business Object Repository (BOR). For example, in the BOR, you can find a business object called SalesOrder, which conceptually represents a sales order in the system. A business object typically has several methods that can be used to read, create, modify a particular instance of the business object, or list instances of the business object matching certain selection criteria. These methods are BAPIs.

Technically, a BAPI is implemented using a RFM. But, unlike the non-BAPI RFMs, a BAPI is usually well documented, has nicer parameter names, and is supported by SAP for several SAP software releases. You can browse Business objects and BAPIs in the SAP system using transaction BAPI.

CHECK THIS URL :

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

Check the links -

Reward ponts please

7 REPLIES 7

Former Member
0 Kudos

Hi,

Yes you can RFC..BAPIs are nothing but function modules which are remote enabled..

Thanks

Naren

0 Kudos

where u can use rfc and where bapi

Former Member
0 Kudos

Hi

YES you can use

Regards

Naresh

Former Member
0 Kudos

Depending upon your requirement you must choose bapi or rfc

mostly you will not get a senario of developing the BAPI

you will create a bapi when other systems want to use the function

bapi's will have odject oriented acess where other systems other than sap can call directly.

Where as rfc can not be directly from other systems other than sap.

so mostly you will choose RFC for XI and EP ........

Former Member
0 Kudos

Hi ,

Yes, you can use but it depends on what is the purpose that you are using. The Total functionality based on the source code and the Return parameter.

bye.

Former Member
0 Kudos

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.

Technically, not much difference 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.

An RFC, or Remote Function Call, describes an external interface to a system function module available in SAP. For example, getting the system parameters is a system function available via RFC.

An BAPI, or Business Application Programming Interface, is an RFC-enabled function module that provides external access to an SAP business application such as creating a sales order.

In effect, all BAPIs are RFCs but there are a superset of RFCs that are not considered BAPIs. Really, two sides of the same coin.

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.

Technically speaking, both are remote enabled functions that can be accessed from outside of SAP. But functionally speaking, BAPIs are a little bit more specific than RFCs

RFC: is just a FM that can be called from remote system too(destination defined in transaction SM59).

BAPI: Business Application Programming Interface

A BAPI is a method of a business object defined in the Business Object Repository (BOR). For example, in the BOR, you can find a business object called SalesOrder, which conceptually represents a sales order in the system. A business object typically has several methods that can be used to read, create, modify a particular instance of the business object, or list instances of the business object matching certain selection criteria. These methods are BAPIs.

Technically, a BAPI is implemented using a RFM. But, unlike the non-BAPI RFMs, a BAPI is usually well documented, has nicer parameter names, and is supported by SAP for several SAP software releases. You can browse Business objects and BAPIs in the SAP system using transaction BAPI.

CHECK THIS URL :

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

Check the links -

Reward ponts please

santhosh_shanig
Explorer
0 Kudos

You cannot use RFC in place of BAPI.

BAPI internally uses RFC enabled function modules, RFC cannot replace BAPIs.

RFC just calls another function modules from other computers.

BAPIs enables external applicaiton to access SAP Data.