You are on page 1of 3

Getting Started Newsletters Store

Products Services & Support About SCN Downloads


Industries Training & Education Partnership Developer Center
Lines of Business University Alliances Events & Webinars Innovation
Login Regi ster Welcome, Guest Search the Community
Activity Communications Actions
Browse
0 Tweet 0
3 Replies Latest reply: Mar 8, 2008 8:06 AM by Guest
Share 0 Like
2545 Views Tags: abap
Average User Rating
(0 ratings)
BAPI vs BDCs
This question is Assumed Answered.
What is the difference between BAPIs and BDCs...why BAPIs are preferred...? i know you might have
gone through this question a zillion times....but the thing that bugs me the most is the fact that...if
BAPIs are a better choise to transfer data as compared to BDCs...then where on earth are the field
validations done in BAPIs.? ...how is data integrity maintained if data is transferred through BAPIs? (
since data is not passed through screens...no validations are done)
abap debugger Mar 7, 2008 10:48 PM
Re: BAPI vs BDCs
You're right - a zillion times.

The validations are done as part of the BAPI logic.

Please do not duplicate or cross post.

Rob
Like (0)
Rob Burbank Mar 7, 2008 10:53 PM (in response to abap debugger)
Re: BAPI vs BDCs
Hi,

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
chandra sekhar kantimahanti Mar 8, 2008 7:17 AM (in response to abap debugger)
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
http://sappoint.com/abap/

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,
0 Tweet 0 Share 0 Like
check the link.
http://sappoint.com/abap/

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.


Reward Points if found helpfull..


Cheers,
Chandra Sekhar.
Like (2)
Re: BAPI vs BDCs
Hai,

what is dff between bdc and bapi?

For one, Batch Data Communication (BDC) is older. Business Application Programming Interface
(BAPI) came later, about 10 years ago (you can see this already from the name, which contains
marketese like "business" ).

More important though, they are different technologies. 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.


If Found helpfull.

Reward.

Regards.

Eshwar.
Like (0)
Guest Mar 8, 2008 8:06 AM (in response to abap debugger)

You might also like