cancel
Showing results for 
Search instead for 
Did you mean: 

BDC/BAPi

Former Member
0 Kudos

Dear all,

What is the Difference between....BDC and BAPI..

Regards

Luckky

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Lucky,

These are hard core ABAP terms , I will simply explain you in a very simple lnguage..

You can do a recording to create a BDC program for you business object using transaction SHDB.

Almost for all business objects SAP has already provided BAPIs but there are few which dont have a BAPI. At this time you need to go for BDC.

If there is a BAPI for the object then we can go for BAPI since it is more better than BDC when compared with performance and difficulty wise.

Few transaction have BAPIs associated which can be used instead of doing a BDC.

For example, the BAPI, BAPI_ACC_DOCUMENT_POST can be used instead of doing a BDC on complex transactions like FB01 and FB01L. The parameters have to be filled properly and the result of the posting (messages) will be returned to you in the table RETURN.

Differences in a bit clear way...

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.

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

A. foreground--means that user interaction is there for each and every record.

B. 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 you have any more doubts on this ,pls let me know. Happy to help you.

Regards,

Viveks

Answers (3)

Answers (3)

pratik_mahendra
Contributor
0 Kudos

BDC uploads data at feild level and bapi changes at table level.

former_member396676
Contributor
0 Kudos
Former Member
0 Kudos

Thanks a lot fnds....

Regards

Luckky

Lakshmipathi
Active Contributor
0 Kudos

Dear Luckky

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". 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.

thanks

G. Lakshmipathi