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

dif betwen BDC call transaction and session method

Former Member
0 Kudos

Hi to all,

This is my problem. I want to know, what is the difference between BDC call Transaction method and Session method. where the situation we can use these methods.

I will be thankfull to all.

4 REPLIES 4

Former Member
0 Kudos

Session Method :

Asynchronous Processing.

Transfers Data for Multiple Transactions

Synchronous Database Update

During Processing, No Transaction is started until the previous transction has been written to the database.

A Batch Input Processing log is generated for each session

Sessions can not be generated in Parallel.

The Batch Input Porgram must not open a Session until it has closed the preceding Session.

Call Transaction :

Synchronous Processing.

Transfers Data for a single transaction.

Synchronous and Asynchronous Database updating both Possible.

The Program Specifies which kind of updating is desired.

Seperate LUW for the transaction.

The System Performs a database commit immediately before and after the CALL TRANSACTION Using Statement.

No Batch Input Processing Log is generated.

These are the differences between session and call transaction method.

Call transaction is faster then session method. But usually we use session method in real time...because we can transfer large amount of data from internal table to database and if any errors in a session. Process will not complete until session get correct.

Former Member
0 Kudos

Call transaction is useful if you have to make decisions based upon the success or failure of the previous transaction. IE, if the previous transaction failed, stop processing. You can't do that with BDC.

Rob

Former Member
0 Kudos

Batch Input Session method is asynchronous as told by others here. But the advantage of this is that you have all the error messages and the data for each transaction held persistantly. You don't have to code anything for processing them or writing the logs.

But at the same time, the same feature can be disadvantageous if you need to react to an error or if there are too many errors to manually correct in a session. Since the session are created in the program and its execution is done seperately, you loose the trackability of such transactions.

With a call transaction, what was a disadvantage above will become an advantage. Call transaction immediately gives you messages back and you can react to it in your program. But the disadvantage is that, if you have several hundreds of transactions to run, running them from within the program can be resource crunching affair. It will hamper the system performance and you cannot really distribute the load. Of course, you have some mechanisms with which you can overcome this, but you will have to code for it. Also, storing the messages and storing the errored transaction data etc will have to be handled by you in the program. Whereas, in batch input session, your program's job is to just create the session, after that everything is standard SAP system's responsibility.

Ideally, you should do a call transaction if the resources are not a problem and if it fails, put the errored transaction into a session.

Srinivas

Former Member
0 Kudos

Hi,

The differences between Call transaction and session method.

session method in bold

call transaction in italic.

SESSION METHOD

CALL TRANSACTION

Data is not updated in database table unless Session is processed.

Immediate updation in database table.

No sy-subrc is returned.

Sy-subrc is returned.

Error log is created for error records.

Errors need to be handled explicitly

Updation in database table is always synchronous

Updation in database table can be synchronous Or Asynchronous.

Regards,

Sailaja.

Don't forget to reward points for all helpful answers.