What the difference between BDC and BAPI?  What the exact situation where we can use BDC and BAPI?
BDC is the good old method of moving legacy data to SAP.
 
BAPI is the new enhanced Application Interface through which data can be uploaded into SAP System.
 
BDC is transaction oriented.  Meaning, the data is uploaded into SAP through standard transactions.  All checks, validations,exits that are applicable to the transaction are active while loading data into SAP.  
Simply saying, BDC is continuous running of transaction repeatedly without human intervention, data being picked from text file for each run.  It is just a bundling of multiple executions of the same transaction and execute at once like a macro.
 
Whereas BAPI is an interfacing method, through which SAP data can be processed from within SAP or from other non-SAP applications.  BAPI can be termed as SAP transaction without dialog.  All the screens of particular transaction is converted in the form of a Code Module.
 
We can establish on-line interface with SAP data from non-SAP applications through BAPI's if they are enabled for Remote Access.
 
Generally BDC is preferred if the data from the legacy system is moved to SAP single time.  For example, at the time of Go-Live the data required for SAP is either downloaded from other software or manually prepared in excel sheets and uploaded into SAP at once.  After that data or SAP has nothing to do with other software.
 
BAPI's are preferred, if data exchange is online or continuous between SAP transactions or SAP and non-SAP applications.  BAPI's are preferred in view of performance also.  Data loading through BAPI's are more robust and faster comparatively, if they are called correctly.


Serkan AKKAVAK
Computer Engineer
ABAP Developer & SAP MM SD Consultant
Contact : serkurumsal@yandex.com