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.
Showing results for 
Search instead for 
Did you mean: 

Differences between BDC , LSMW, BAPI,CATT

Former Member
0 Kudos

Hi ABAP Gurus,

Just I have completed my ABAP course. Could you please explain the differences between BDC(Session and Call Transaction),LSMW,CATT and BAPI. Their advantages & limitions.

Thanks in advance.

Chandra Mohan


Former Member
0 Kudos

BDC techniques used in programs:

1) Building a BDC table and calling a transaction,

2) Building a session and a set of BDC scenarios and keeping the session available in SM35,

3) Building a session and lauching the transaction right after closing the session.


BDC using Call Transaction


The Data Transfer Workbench (or DX Workbench, transaction SXDA) is an integrated SAP tool that supports data transfer and analysis. It does not have the built-in features for mapping for source structures to target structures, but it will allow you to integrate Legacy System Migration Workbench (LSMW) objects as processing tasks within a run definition. The DX workbench has many features for creating test data and performing data migrations - for example, logging of data migration runs. However, if you need to map or convert data, you should use the LSMW. Or, you can integrate your LSMW objects as task within a more user-friendly data migration run, in which the LSMW project steps "Read data", "Convert data," and "Start IDoc processing" are automated and use the features of both tools. If you donot need logging and automated data migration runs, you can perform your data migration without the DX Workbench.


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.

BDC using Call transaction involves calling an SAP transaction in back ground from within the ABAP

program. The process involves building an Internal BDC table containing the screen information needed to

execute the required transaction and then passing this to the Call transaction command (See code example).

The full procedure for creating a BDC program is as follows:


What is the difference between batch input and call transaction in BDC?

Session method.

1) synchronous processing.

2) can tranfer large amount of data.

3) processing is slower.

4) error log is created

5) data is not updated until session is processed.

Call transaction.

1) asynchronous processing

2) can transfer small amount of data

3) processing is faster.

4) errors need to be handled explicitly

5) data is updated automatically




A: Batch-inputs can not be used to fill the "delivery due list" screen because it is not a dynpro. This is a standard SAP report. A SAP report (check with "System -> Status") may be called using SUBMIT sentence with the appropriate options . It is preferred to call a report than create a Batch-input program.


BAPI - Some times the transaction screens changes, in those cases the BDC's fail as they purely refer to the screen elements. BAPI's provide a more consistent way to make entries in SAP systems without referencing the screen elements but still adhering to the underlying business logic, so the data entry is syntactically and semantically correct.

You can check the below links also

Former Member
0 Kudos

Hi chandra,

1. lsmw - no programming requried,

whereas in call transaction & bdc session,

programming required.

2. in call transaction,

no session concept

(data is updated AS SOON AS we run the prgoram)

where as in lsmw, and session,

SESSION is generated (in both cases)

Only after when we run this session,

does the data get updated.

3. In call transactin program,

we have to handle error list and take action.

whereas in lsmw, & session,

(since session is run)

flexibility is there to check and control errors.


amit m.