Batch Input vs CALL TRANSACTION

SAP ABAP Interview QuestionsQuestion 9: What is the difference between Batch Input and CALL TRANSACTION?

Batch Input and CALL TRANSACTION are both data transfer methods. Batch Input usually are used to transfer large amount of data. For example you are implementing a new SAP project, and of course you will need some data transfer from legacy system to SAP system. If there is no standard batch input program, direct input program, you would need to write your own data transfer program and it is going to be batch input program. CALL TRANSACTION methods is real-time method, whenever you run the program CALL TRANSACTION can be triggered. CALL TRANSACTION is used especially for integration actions between two SAP systems or between different modules. Users sometimes wish to do something like that click a button or an item then SAP would inserts or changes data automatically. Here CALL TRANSACTION should be considered. You use CALL TRANSACTION and you do everything automatically, collect necessary data, call transaction and so do database update. If any error occurs, show the user them.

Batch Input vs CALL TRANSACTION

Batch Input

With the Batch Input method, an ABAP program reads the external data that is to be entered in the R/3 System and stores the data in a “batch input session”. The session records the actions that are required to transfer data into the system using normal SAP transactions.

When the program has generated the session, you can run the session to execute the SAP transactions in it. You can explicitly start and monitor a session with the batch input management function (by choosing System - Services - Batch Input), or have the session run in the background processing session.

It offers management of sessions, support for playing back and correcting sessions that contain errors, and detailed logging. Your program prepares the data and stores it in a batch input session. A session is a collection of transaction data for one or more transactions. Batch input sessions are maintained by the system in the batch input queue. You can process batch input sessions in the background processing system.

Your program must open a session in the queue before transferring data to it, and must close it again afterwards. All of these operations are performed by making function modules calls from the ABAP program.

The most important aspects of the session interface are:

  • Asynchronous processing
  • Transfer data for multiple transactions
  • Synchronous database update. During processing, no transaction is started until the previous transaction has been written to the database.
  • A batch input processing log is generated for each session
  • Sessions cannot be generated in parallel. The batch input program must not open a session until it has closed the preceding session.

CALL TRANSACTION

In the second method, your program uses the ABAP statement CALL TRANSACTION USING to run an SAP transaction. External data doesn’t have to be deposited in a session for later processing. Instead, the entire batch input process takes place inline in your program. With CALL TRANSACTION USING, the system process the data more quickly than with batch input sessions. Unlike batch input sessions, CALL TRANSACTION USING does not automatically support interactive correction or logging functions.

Your program prepares the data and then calls the corresponding transaction that is then processed immediately.

The most important features of CALL TRANSACTION USING are:

  • Synchronous processing
  • Transfer of data from an individual transaction each time the statement CALL TRANSACTION USING is called
  • You can update the database both synchronously and asynchronously. The program specifies the update type.
  • Separate LUW (Logical Units of Work) for the transaction. The system executes a database commit immediately before and after the CALL TRANSACTION USING statement.
  • No batch input processing log

References:

Tags: , , ,

6 Responses to “Batch Input vs CALL TRANSACTION”

  1. ITC Server » Interview for a Position in Charlotte, NC Says:

    [...] After waiting for a while my new Turkish friend asked the company’s SAP ABAP Developer and he told me that SAP ABAP Developer was suspicious about my experiences, since I had not been working as an SAP ABAP Developer since 2003. He even had said I read some answers from somewhere for some questions. It means that he didn’t believe my answers entirely. This was a phone interview and I had a time to prepare it. If someone calls me for an interview, of course I would have lots of stuff in front of me. I actually looked just one of entries ‘Batch Input vs. CALL TRANSACTION’ to answer the question ‘What is the difference between Batch Input and CALL TRANSACTION?’ I don’t know! Whatever… [...]

  2. Pavi Agrawal Says:

    Very nice article.

  3. Idetrorce Says:

    very interesting, but I don’t agree with you
    Idetrorce

  4. kishor Says:

    good reply but if u should given with some example it would be much better to understand wat’s happening in BDC in real time scenarios……..

    Thanks,
    kishor

  5. AJay Says:

    hi

  6. werutzb Says:

    Hi!

    I want to make better my SQL capabilities.
    I red that many SQL resources and want to
    get more about SQL for my occupation as oracle database manager.

    What would you recommend?

    Thanks,
    Werutz

Leave a Reply