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. Whereas in Batch Input Sessions, the ABAP
program creates a session with all the transactional data, and this session can
be viewed, scheduled and processed (using
Transaction SM35) at a later time. The latter technique has a built-in error
processing mechanism too.
Batch Input (BI) programs still use the classical BDC approach but doesnt
require an ABAP program to be written to format the
BDCDATA. The user has to format the data using predefined structures and store
it in a flat file. The BI program then reads this and
invokes the transaction mentioned in the header record of the file.
Direct Input (DI) programs work exactly similar to BI programs. But the
only difference is, instead of processing screens they validate
fields and directly load the data into tables using standard function modules.
For this reason, DI programs are much faster (RMDATIND – Material Master DI
program works at least 5 times faster) than the BDC counterpart and so ideally
suited for loading large volume data. DI programs are
not available for all application areas.
LSMW is an encapsulated data transfer tool. It can provide the same
functionality as BDC infact much more but when coming to techinical perspective
most the parameters are encapulated. To listout some of the differences :
- LSMW is basicaly designed for a fuctional consultant who do not do much
coding but need to explore the fuctionality while BDC is designed for a
- LSMW offers different techinque for migrating data: Direct input ,BAPI,Idoc,Batch
input recording. While bdc basically uses recording.
- LSMW mapping is done by SAP while in BDC we have to do it explicitly .
- LSMW is basically for standard SAP application while bdc basically for
- Coding can be done flexibly in BDC when compared to LSMW