‎2007 Dec 27 7:39 AM
Hi Developers,
can any body tell what is the diffrence bt BDC & BAPI.
Thanks&Regards,
phnai
‎2007 Dec 27 7:43 AM
hi phaneendra,
BDC
Batch Data Communication or BDC is a batch interfacing
technique that SAP developed. It is mainly used for
uploading data into the SAP R/3 system. BDC works by
simulating the user input from transactional screen via an
ABAP program.
The data input data file will come in the form of a flat
file which the user save as file type txt file or prn file
from the Microsoft Excel program. An Abaper will create a
program to read the text file and upload into the SAP system.
Normally, the tcode SHDB will be used to record the
transaction code the user used. After, the simulation, the
Abaper can generate a sample program and modify from there.
It makes the programming easier and faster.
BAPI
BAPI's are programming interface to access SAP Database from within SAP or other development platforms external to R/3 that support the Remote Function Call (RFC) protocol. The main objective of BAPI is to achieve integration between the R/3 System and external applications, legacy systems etc. This gives you the option to have non-SAP front-end for occasional users.
BAPIs are defined in the Business Object Repository (BOR) as methods of SAP Business Objects or SAP Interface Types and enable object-oriented access to Business Components (application components) in the R/3 System.
BAPIs can be accessed from various programming environments, for example, Java, C++, Visual Basic.
This also allows Web based access to SAP database.
BAPI is like a Function module. BAPIs used for outbound processing.
Transaction code to list all BAPI's: BAPI
Reward if helpful
Thank you,
Regards.
‎2007 Dec 27 7:46 AM
Difference between BDC and BAPI
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.
‎2007 Dec 27 7:50 AM
‎2007 Dec 27 7:59 AM
hi
good
Batch Data Communication: Batch Input
Batch input is typically used to transfer data from non-R/3 systems to R/3 systems or to transfer data between R/3 systems.
It is a data transfer technique that allows you to transfer datasets automatically to screens belonging to transactions, and thus to an SAP system. Batch input is controlled by a batch input session.
Batch input session
Groups a series of transaction calls together with input data and user actions . A batch input session can be used to execute a dialog transaction in batch input, where some or all the screens are processed by the session. Batch input sessions are stored in the database as database tables and can be used within a program as internal tables when accessing transactions.
BAPI
BAPIs are standardized programming interfaces (methods) enabling external applications to access business processes and data in the R/3 System.
BAPIs provide stable and standardized methods to achieve seamless integration between the R/3 System and external applications, legacy systems and add-ons.
BAPIs are defined in the BOR(Business object repository) as methods of SAP business object types that carry out specific business functions.
BAPIs are implemented as RFC-enabled function modules and are created in the Function Builder of the ABAP Workbench.
thanks
mrutyun^
‎2007 Dec 27 8:18 AM
Hi,
BDCs and BAPIs are both used for data upload.
BDC- Batch Data Communication.
BDC is used to transfer data from a SAP system to the SAP system or from a non SAP system to the SAP system.
It is used to transfer large amounts of data that is available in electronic form.
BAPI - Business Application Programming Interface.
External applications can access SAP Business Objects through standardized, platform-independent interfaces - BAPIs. SAP Business Objects and their BAPIs provide an object-oriented view of R/3 business functionality.
BAPIs are implemented as RFC-enabled function modules and are created in the Function Builder of the ABAP Workbench.
But for BDCs u need to write the code mentioning which fields you want to change.
Whereas BAPi provides you the list of fields it can change in standard transaction.
If you want to upload data for only those fields then you can use BAPI.It provides the solution ver fast.
With BDC you build the "batch input transaction" yourself, with an ABAP program which creates the "batch input session" ("Batch-Input-Mappe" in german). You then take that session, like an object, and "run" it on a system (most of the time, this is done on a local system by the administrators, after it has been tested for correctness).
With BAPI, a system (local or remote) exposes its interface to you through some kind of Remote Function Call (RFC). Practically, it tells you: "What do you want to do? Insert that data into Materials Management? Here is the function and the the parameters you have to use for each record". You only work with the Interface - the exposed function. How this function works does not have to interest you. You don't have sessions to "run", you fire your function calls filled with data, one after another and you're done.
BAPI can be run remotely. With BDC, you probably have to call the administrators of the remote system and send them the session you created for them to run. With BDC you go through the whole transaction in one BDC session, with BAPI you may need more than one "BAPI calls" to do this.
With BAPI you don't fill obcure field names with values, you just fill the parameters. You can use a BAPI from inside your ABAP program to let a "business object" do some clearly defined work for you, then you can continue with your code doing other things. You don't do this with BDC. With BDC you write a dedicated program that creates the "session", which is then executed separately.
REWARD POINTS IF HELPFUL
Regards
Sivaparvathi