Application Development and Automation 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: 
Read only

BDC,BAPI

Former Member
0 Likes
791

what are the advantages of BAPI over BDC?

6 REPLIES 6
Read only

Former Member
0 Likes
762

During an upgrade a Batch Data Conversion (BDC) program or an interface has higher probability of failure than a regular report due to standard screen changes. Depending on the number of BDC programs that need to be converted, this activity can form a major part of upgrade. Often, the transaction screen field names, screen sequence or even the transaction codes undergo changes into higher versions. As a part of preventive maintenance methodology,its better use BAPI instead of BDC for appropriate development requests.

When a BDC program is used, the program is actually trying to simulate the screens input by the user. After taking the input from the user for the particular transaction (for which the BDC program is written), the program consolidates the data and calls some standard SAP routines (CALL TRANSACTION, BDC_GROUP) for update. Hence for example when you are trying to create the sales order through one of your program by using the BDC method it is going to simulate the VA01. This adversely affects the performance because you need to perform all the screen sequences and then reach to the standard function module that actually performs the job.

A Business Application Programming Interface (BAPI) is precisely defined interface providing access to METHODs associated with the SAP Business Objects.

Once a BAPI is implemented and released by SAP, its interface definition and parameters remain stable in the long term, thus ensuring that your application program remains unaffected by any changes due to enhancements. SAP can make any necessary extensions to the BAPIs, for example, additional optional parameters, without destabilizing the operation of existing applications and, at the same time, can offer the enhanced functionality to new applications.

Edited by: kartik tarla on Jul 17, 2008 9:03 AM

Read only

Former Member
0 Likes
762

Hi Divya,

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.

Hope this helps you.

Regards,

Chandra Sekhar

Read only

Former Member
0 Likes
762

The major difference between these two are:

BAPI

1. The flow of logic is independent of screens.

2. BAPI always flows through structure.

3. This follows a business object within which we can hav any number of methods under a single class.

BDC

1. The flow of logic is dependent on screens. It always follows through screens which are dependent on each other.

2. It is a normal approach where it doesn't hav any business logic.

For any data uploads one always has to check with BDC whether it wud be facilitated with the requirement or not.. otherwise the best way to go is BAPI

Read only

Former Member
0 Likes
762

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.

BDC (Batch Data Communication) is a technology used for data transfer. it is meant for transferring data thru SAP transactions itself. when u use BDC for data transfer, the sequence of steps is the same as when u use standard sap transaction screens for data upload. the only difference is that u can use different options for foreground/background processing.

BDC:

Batch Data Communication (BDC) is the process of transferring data from one SAP System to another SAP system or from a non-SAP system to SAP System.

Features :

BDC is an automatic procedure.

This method is used to transfer large amount of data that is available in electronic medium.

BDC can be used primarily when installing the SAP system and when transferring data from a legacy system (external system).

BDC uses normal transaction codes to transfer data.

Types of BDC :

CLASSICAL BATCH INPUT (Session Method)

CALL TRANSACTION

BATCH INPUT METHOD:

This method is also called as ‘CLASSICAL METHOD’.

Features:

Asynchronous processing.

Synchronous Processing in database update.

Transfer data for more than one transaction.

Batch input processing log will be generated.

During processing, no transaction is started until the previous transaction has been written to the database.

CALL TRANSACTION METHOD :

This is another method to transfer data from the legacy system.

Features:

Synchronous processing. The system performs a database commit immediately before and after the CALL TRANSACTION USING statement.

Updating the database can be either synchronous or asynchronous. The program specifies the update type.

Transfer data for a single transaction.

Transfers data for a sequence of dialog screens.

No batch input processing log is generated.

For BDC:

http://myweb.dal.ca/hchinni/sap/bdc_home.htm

https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/bdc&;

http://www.sap-img.com/abap/learning-bdc-programming.htm

http://www.sapdevelopment.co.uk/bdc/bdchome.htm

http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm

http://help.sap.com/saphelp_47x200/helpdata/en/69/c250684ba111d189750000e8322d00/frameset.htm

http://www.sapbrain.com/TUTORIALS/TECHNICAL/BDC_tutorial.html

BAPI

BAPI stands for Business API(Application Program Interface).

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.

check these 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

reward if helpful

regards

palak

Read only

0 Likes
762

If you post 1 more link-farm or ask for points, then your user ID will be deleted!!!

[Read the rules!|https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/rulesofEngagement]

Read only

Former Member
0 Likes
762

Divya,

i would suggest you to use SDN search option this topic already discuss hell lot of time before.

Amit.