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: 

ABAP BDC & BAPI

Former Member
0 Kudos

hi,

why BAPI is required instead of BDC and what secenario we will use BAPI and BDC?

Thanks in advance.

2 REPLIES 2

Former Member
0 Kudos

Hi Baskar,

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

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,

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.

<b>Reward points if this helps.

Manish</b>

Former Member
0 Kudos

Hi

BDC- Batch data Communication is used to data transafer from legacy system to SAP

BAPI - is also used as an interface for transfering data from SAP to SAP and Non-SAP to SAP system

this is mostly used for Enjoy transactions as you can't write BDC for them.

Regards

Anji