‎2007 Aug 30 12:15 PM
Hi friends,
can any one give me the brief idea abt BAPI.. what is the use for this... when we will go for BAPI.. what are the adavatages of this.... and procedure for this..
just give me an brief idea...
Thanks
Babu
‎2007 Aug 30 12:17 PM
<b>Definition:</b>
<b>Technical:</b>
A BAPI is an Interface which provides access to data and processes in Business application systems. These BAPIs are defined as API Methods in Business Objects and are stored in Business Object Repository (BOR).
<b>General:</b>
BAPIs are standardized methods of SAP Business Objects that enables customers and third parties to integrate their software components with the R/3 system.
<b>Implementation:</b>
A BAPI is implemented as a Remote Enabled Function Module and we maintain this in SE37 (Form Builder).
<b>Usage:</b>
BAPI will have precisely defined Interface. So for an Application program to use a BAPI it should know the Interface definition of the BAPI. Application Program has to supply the appropriate interface information.
BAPI will have the Interface definition same as that of a normal function module. Like Import Parameters, Export Parameters, Tables parameters. But the main difference is you can pass only by Value, we cannot use Reference parameters in RFC enabled Function modules. RFC does not support transfer By Reference. We should not raise any exceptions in this Function module. If it raises any exception the connection between the two systems is automatically disconnected.
The definitions and descriptions used by the BAPI interface are stored in Dictionary. While creating our own BAPIs also we have to define the Import and Export structures in Dictionary only.
<b>Defining and Implementing a BAPI:</b>
Before creating the BAPI first you need to define the Individual objects, which the BAPI uses, in Dictionary.
Identify and prepare the Structures for the Interface parameters.
You can use Individual fields, structures, tables as interface parameters and these parameters must refer to a Dictionary Object.
We have to create our own data structures for BAPI interface that are independent of the data structures generally used in R/3 applications. This enables changes to be made in R/3 applications without affecting BAPIs. We can use existing data elements and domains for the BAPI structure component s.
The Transactions that we use in Creating a BAPI are:
 SE11 ABAP Dictionary
 SE37 Function Builder
 SWO1 To create the business object type.
Regards,
Pavan
‎2007 Aug 30 12:17 PM
<b>Definition:</b>
<b>Technical:</b>
A BAPI is an Interface which provides access to data and processes in Business application systems. These BAPIs are defined as API Methods in Business Objects and are stored in Business Object Repository (BOR).
<b>General:</b>
BAPIs are standardized methods of SAP Business Objects that enables customers and third parties to integrate their software components with the R/3 system.
<b>Implementation:</b>
A BAPI is implemented as a Remote Enabled Function Module and we maintain this in SE37 (Form Builder).
<b>Usage:</b>
BAPI will have precisely defined Interface. So for an Application program to use a BAPI it should know the Interface definition of the BAPI. Application Program has to supply the appropriate interface information.
BAPI will have the Interface definition same as that of a normal function module. Like Import Parameters, Export Parameters, Tables parameters. But the main difference is you can pass only by Value, we cannot use Reference parameters in RFC enabled Function modules. RFC does not support transfer By Reference. We should not raise any exceptions in this Function module. If it raises any exception the connection between the two systems is automatically disconnected.
The definitions and descriptions used by the BAPI interface are stored in Dictionary. While creating our own BAPIs also we have to define the Import and Export structures in Dictionary only.
<b>Defining and Implementing a BAPI:</b>
Before creating the BAPI first you need to define the Individual objects, which the BAPI uses, in Dictionary.
Identify and prepare the Structures for the Interface parameters.
You can use Individual fields, structures, tables as interface parameters and these parameters must refer to a Dictionary Object.
We have to create our own data structures for BAPI interface that are independent of the data structures generally used in R/3 applications. This enables changes to be made in R/3 applications without affecting BAPIs. We can use existing data elements and domains for the BAPI structure component s.
The Transactions that we use in Creating a BAPI are:
 SE11 ABAP Dictionary
 SE37 Function Builder
 SWO1 To create the business object type.
Regards,
Pavan
‎2007 Aug 30 12:18 PM
hi,
The Business Framework - the open, component-based architecture, which allows software
components from SAP and third parties to interact and integrate with each other, is becoming
more and more important.
SAP business objects are at the heart of the Business Framework, enabling the interoperability of
software components. They cover a wide spectrum of R/3 business data and processes.
SAP business objects are accessed through BAPIs (Business Application Programming
Interfaces), which are stable, standardized methods. SAP business objects and their BAPIs
provide an object-oriented view of R/3 business functions.
SAP provided the first BAPIs for customers and external providers in Release 3.1, enabling them
to integrate their software components in the R/3 System and the Business Framework. The
number of BAPIs is increasing with each R/3 Release and with this the extent of object-oriented
access to the R/3 System.
<b>Diff bet bapi and RFC will helps u to understand much better</b>
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.
chk some useful 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
<b>Reward Useful points</b>
Regards
Siva<b></b>
Message was edited by:
SivaKumar
Message was edited by:
SivaKumar
‎2007 Aug 30 12:24 PM
BDC is traditional way of coding the transactions for uploading the legacy data, Sap is changing all transactions to Object oriented programming. Since BAPI is Object based and supports all the new transactions it is preffered over BDC. More over BAPI's process data faster than BDC.
BAPI is a SAP-supplied function module with a defined interface, which allows you to interact with various business objects. SAP guarantees the integrity of your database for anything updated using a BAPI. BDC is a method of driving screens programatically, for updating SAP data. BAPIs are generally faster than BDCs.
A BAPI is faster because it is updating the DB "directly". Whereas BDC with call
transaction goes through the whole screen sequence like any user would do, simply put, fills screens.
However - there is not always a BAPI for a particular transaction and not all functions that are performed by a transaction can be done by a BAPI. BDCs produce error sessions which can be processed by the user, while BAPIs don't.
First choose the BAPI ,if there is no BAPI go for BDC.
why BAPI first not BDC.
SAP comes up with Change in Version, so each and every time they will change the screens/number etc.
so you have to change your BDC programs accordingly.
and also Most of the Latest versions transactions are Enjoy Transaction. they will not support BDC's in Background.
But Using BAPI's No such disadvantages.
A BAPI is faster because it is updating the DB "directly" through ABAP code.
A BDC with call transaction goes through the whole screen sequence like any user would do, simply put, it is filling screens.
Actually it depends on your requirement but BAPI is more effective as it is standard function module to update SAP databases rather than BDC.
using bdc over bapi has advantages and also disadvantages
advantages:
1. using bdc we can upload data into database tables using 2 ways
1. foreground -
means that user interaction is there for each and every record.
2. back ground -
no user interaction and tasks are done automatically.
using these two options is one of the greatest advantage over bapi.
2. in bdc call transaction method we can control the display of screen resolution which is not possible with bapi's
3. bdc is generally used for transferring of large amount of data than bapi's
4.session method of bdc allows us to place data directly in application server and then finally transfered into sap database tables
disadvantages:
1.bdc is only used for sap to sap system data transferring
2. bapis's generally works more faster than bdc's
3. using bapis we can connect to remote systems and also to non sap systems.
if useful reward some points.
A BAPI is a method of a SAP Business Object. BAPI enables SAP and third party applications to interact and integrate
with each other at the Business Object / Process level.
Check this link to know more about BAPI.
http://www.sapgenie.com/abap/bapi/example.htm
Batch Data Communication (BDC) is the oldest batch interfacing technique that SAP provided since the early versions of R/3. BDC is not a
typical integration tool, in the sense that, it can be only be used for uploading data into R/3 and so it is not bi-directional.
BDC works on the principle of simulating user input for transactional screen, via an ABAP program. Typically the input comes in the form
of a flat file. The ABAP program reads this file and formats the input data screen by screen into an internal table (BDCDATA). The
transaction is then started using this internal table as the input and executed in the background.
In Call Transaction, the transactions are triggered at the time of processing itself and so the ABAP program must do the error handling.
It can also be used for real-time interfaces and custom error handling & logging features. .
To know more about BDC,
check the link.
Main differences are...
In case of bdc data transfer takes place from flat file into sap system ie the file existing in sap system to sap sytem
where is bapi's r remotly enabled function modules which are assigned to some business objects n used to transfer the data between different business partners who are using different systems other than sap.
not only that...
when you plan to upgrade your system version then bdc willnot support those upgradations where as bapi's will support.