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

bapi

Former Member
0 Likes
866

what is the difference between bapi and rfc

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
837

hi,

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. Part of 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. W

RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types.

regards,

sreelakshmi

8 REPLIES 8
Read only

Former Member
0 Likes
837

As I understand BAPI is a generic term used for any method which is exposed via Business Application Programming interface. Goto transaction BAPI where a list of BORs are listed out and each of the logical fucntionality is exposed via a method(also called BAPI). One way of implementing the fucntionlaity is to link the method call with a RFC(Remote Function Call) so that this is available even for external systems. Hope this is clear.

Read only

p291102
Active Contributor
0 Likes
837

Hi,

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.

Thanks,

Sankar M

Read only

Former Member
0 Likes
838

hi,

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. Part of 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. W

RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types.

regards,

sreelakshmi

Read only

Former Member
0 Likes
837

HI,

TO ADD T OMY ABOVE POST.

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

The following standardized BAPIs are provided:

Reading instances of SAP business objects

GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers.

The BAPI GetList() is a class method.

GetDetail() With the BAPI GetDetail() the details of an instance of a business object type are retrieved and returned to the calling program. The instance is identified via its key. The BAPI GetDetail() is an instance method. BAPIs that can create, change or delete instances of a business object type

The following BAPIs of the same object type have to be programmed so that they can be called several times within one transaction. For example, if, after sales order 1 has been created, a second sales order 2 is created in the same transaction, the second BAPI call must not affect the consistency of the sales order 2. After completing the transaction with a COMMIT WORK, both the orders are saved consistently in the database.

Create( ) and CreateFromData! ( )

The BAPIs Create() and CreateFromData() create an instance of an SAP business object type, for example, a purchase order. These BAPIs are class methods.

Change( )

The BAPI Change() changes an existing instance of an SAP business object type, for example, a purchase order. The BAPI Change () is an instance method.

Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag.

The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods.

Cancel ( ) Unlike the BAPI Delete(), the BAPI Cancel() cancels an instance of a business object type. The instance to be cancelled remains in the database and an additional instance is created and this is the one that is actually canceled. The Cancel() BAPI is an instance method.

Add<subobject> ( ) and Remove<subobject> ( ) The BAPI Add<subobject> adds a subobject to an existing object inst! ance and the BAPI and Remove<subobject> removes a subobject from an object instance. These BAPIs are instance methods.

2) No it is not possible to connect SAP to Non-SAP systems to retrieve data using RFC alone. RFC can acces the SAP from outside only through BAPI and same is for vice versa access.

3) Each Bapi Object has Interface, Key Fields, Attributes,Methods and Events.

Bapi Function Modules can be attached to these Bapi objects .Function module has a single bound functionality while a BAPI object can contain many functionalities

REGARDS,

SREELAKSHMI

Read only

Former Member
0 Likes
837

Hi,

BAPI methods 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.BAPI is having all Key fields, methods, interfaces etc.

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.

Please check the links,

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.

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.

RFC (Remote Function Call) is similar to the general SAP fun module: except that in the attributes you click the radio button: RFC enabled;

and you will be passing an Import parameter DESTINATION to it.

Other code and usage will be similar to any fun module;

Have a look at any fun module in SE37 to understand better about the different components of Fun modules;

Refer this link:

http://help.sap.com/saphelp_nw04/helpdata/en/22/042518488911d189490000e829fbbd/frameset.htm

check out the following link it might help you

http://help.sap.com/printdocu/core/Print46c/de/data/pdf/BCFESDE2/BCFESDE2.pdf

Regards.

vasavi.

kindly reward if helpful.

Read only

Former Member
0 Likes
837

Hi,

DIFF b/w BAPI & RFC:

BAPI:

Business Application Program Interfaces (BAPIs), which can be used as a mechanism

to communicate R/3 with external applications using Internet. BAPIs are object&#8722;oriented definitions

of business entities. The concept behind BAPIs is the key in the Business Framework architecture as

well as in the overall SAP R/3 Internet and electronic commerce strategy, as the object&#8722;oriented

interface to integrate external applications.

RFC:

RFC is a standard programming interface for making remote calls between programs located on different

systems. Functions which are developed or exist in a system can be remotely called by another local program.

This is particularly useful for data manipulation and processing load balancing between systems. Even when

the same functions exist on both systemscalled and callerit is a way of making another system send or receive

data, and the remote CPU assigns the needed resources.

The RFC interfaces come basically with two services:

1).A calling interface for the ABAP programs. Any ABAP program can call a remote function using

standard programming sentences, providing the remote system has allowed the module to be called

remotely.

2).An RFC API (application program interface) for programs other than ABAP (non&#8722;SAP). SAP even

provides an RFC program generator to help implement RFC partner programs in external systems.

With these API calls, external programs can call ABAP function modules in SAP R/3 systems (also in

R/2). At the same time, with the RFC API, ABAP programs can use functions provided by external

programs.

SAP online help and the documentation print files include extensive information about remote programming

with RFC and the RFC API.

Please reward point, if you find it useful.

Read only

Former Member
0 Likes
837

Hi,

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.

Regards,

Priya.

Read only

Former Member
0 Likes
837

Hi

the difference between bapi and rfc can be clear from the following link:

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

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

Sample example for BAPI:

http://www.sapmaterial.com/bapi_example.html

VijayalakshmiY