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: 

Session vs Call Transaction

Former Member
0 Kudos
127

Dear All,

Can you explain the difference b/w BDC Session method and Call Transaction.

What are the cases when one is preferred over the other?

Regards,

Prosenjit.

1 ACCEPTED SOLUTION

manubhutani
Active Contributor
0 Kudos
83

Hi

Session - used when large amt of data is there

asynchronous update as when u run session from sm35 then only update occurs.

error log maintained

options where u can skip delete transactions

problem may occur as there is time b/w u run prog and when u run session

call trans - error are capture in interbnal table of type

bdcmsgcoll

synchronous update when u run prog

there's two modes in call A -asynchr

s - synchronous

sync meands that when one transac(for 1 record) is running

then update will occur

but in async next transaction may run before update occurs for previous trans.

Please reward points

8 REPLIES 8

Former Member
0 Kudos
83

Hi,

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

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.

Session method:

1. This method is used to upload huge data

2 it has error log so that v can trace the errors easily.

3. it slower than call transaction method.

Call transaction:

1. This very fast than session method.

2. This is used to upload small volume of data.

3.Error tracing is bit difficult and v use MSGBDCCALL to get the error message

Regards,

Shiva.

Former Member
0 Kudos
83

Session method – Use the BDC_OPEN_GROUP to create a session. Once we have created a session, then we can insert the batch input data into it with BDC_INSERT. Use the BDC_INSERT to add a transaction to a batch input session. We specify the transaction that is to be started in the call to BDC_INSERT. We must provide a BDCDATA structure that contains all the data required to process the transaction completely. Use the BDC_CLOSE_GROUP to close a session after we have inserted all of our batch input data into it. Once a session is closed, it can be processed.

Call Transaction -

In this method, we use CALL TRANSACTION USING to run an SAP transaction. External data does not have to be deposited in a session for later processing. Instead, the entire batch input process takes place inline in our program.

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, then process will not complete until session get correct.

Regards

Kiran

Former Member
0 Kudos
83

Hi

There's no particular difference, except the BI by session is stored in a tool (SM35) where u can decide when to run it and see the log and run the incorrect trx again.

Max

manubhutani
Active Contributor
0 Kudos
84

Hi

Session - used when large amt of data is there

asynchronous update as when u run session from sm35 then only update occurs.

error log maintained

options where u can skip delete transactions

problem may occur as there is time b/w u run prog and when u run session

call trans - error are capture in interbnal table of type

bdcmsgcoll

synchronous update when u run prog

there's two modes in call A -asynchr

s - synchronous

sync meands that when one transac(for 1 record) is running

then update will occur

but in async next transaction may run before update occurs for previous trans.

Please reward points

Former Member
0 Kudos
83

Hi,

1)

Session Method :

session method can work both foreground and background.

log file is created for this.

useful to transfer large amount of data.

in session method updation is synchronous and processing is asynchrounous.

it can be used for any no of applications at a time.

all the sessions, we have created are stored in a queue.

if we forget to set the processing then our session will be automatically deleted from the queue.

Call transactio Method :

call transaction method is faster because we can can change the updation mode from synchronous to asynchronous (and asynchronous method is faster than synchronous method)

mode : n (acts as background )

log file will not be created whereas the errors has to be handled explicitly using itab like bdcmsgcoll and we should use the function module 'FORMAT_MESSAGE' .

only one application will be considered.

lsmw does not support call transaction method because errors has to handled explicitly.

2)

Session Method works in Background and as well as in Foreground. Where as Call Transaction Method Works in Foreground.

(Note: No Display Mode is equal to Background Processing in call transaction method).

Session Method can handle Multiple Applications at a time. Where as Call Transaction Method can handle only one Application.

Session Method holds Log File by Default. Where as in Call Transaction Method no Log File by Default. We have to design Log File by using BDCMSGCOLL.

Session Method Updates the Database Synchronously. Call Transaction Method Updates the Database Asynchronously. (Note: Asynchronous updation is Faster than Synchronous)

Reward if it useful.....

Lakshmi.

0 Kudos
83

Hi,

Session Method :

1) Synchronous processing

2) Processing is time-delayed

3) Synchronous database update

4) Database updated by processing of batch input session

5) Automatic error handling

Call Transaction :

1) Asynchronous processing

2) Processing is faster

3) Synchronous / Asynchronous database update

4) Database updated by executing the batch input program

5) Manual error handling

Regards,

Ravi Khattar

Edited by: Ravi Khattar on May 7, 2008 11:36 AM

Former Member
0 Kudos
83

Hi Prosenjit,

I hope the following information prroves helpful. Also elucidates the usage/requirement.

BATCH INPUT METHOD:

This method is also called as ‘CLASSICAL METHOD’.

Features:

Asynchronous processing.

Synchronous Processing in database update.

Transfer data for more than one transaction.

Batch input processing log will be generated.

During processing, no transaction is started until the previous transaction has been written to the database.

CALL TRANSACTION METHOD :

This is another method to transfer data from the legacy system.

Features:

Synchronous processing. The system performs a database commit immediately before and after the CALL TRANSACTION USING statement.

Updating the database can be either synchronous or asynchronous. The program specifies the update type.

Transfer data for a single transaction.

Transfers data for a sequence of dialog screens.

No batch input processing log is generated.

Differences between Call Transaction and Sessions Method:

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.

6) generally used for back ground jobs.

7) at atime we can update to more than one screens.

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

6) for background n fore ground jobs.

7) at atime we can update to a single screen.

Hope this information was helpful , reward points if it did.

Cheers!

Rakesh.

Former Member
0 Kudos
83

Thanks!