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: 

when to use call tranction & call session methos in BDC?

Former Member
0 Kudos

Can any body tell me when to use call transction & when to session method in BDC?

In real time which method will we use?

I know call transction is for small amount of data, synchronous processing, Asyschronous update, Return sy-subrc & all these difference.

Tell me exactly when to go for call transaction & when to go for session method?

Thanks in advance.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

1. Number of records to be uploaded is less, Then choose call transaction method,

number of records is more, Then choose session method.

2. Call transaction will create some performance issues.

3. Session method log file concept to find, which repords are not uploaded.

4. If u want to execute the BDC program in future to upload same structure, Then use session method.

that u can execute it at any point of time. That is not possible in call transaction method.

5 REPLIES 5

Former Member
0 Kudos

1. Number of records to be uploaded is less, Then choose call transaction method,

number of records is more, Then choose session method.

2. Call transaction will create some performance issues.

3. Session method log file concept to find, which repords are not uploaded.

4. If u want to execute the BDC program in future to upload same structure, Then use session method.

that u can execute it at any point of time. That is not possible in call transaction method.

Former Member
0 Kudos

Reward POINTS..

Former Member
0 Kudos

Hi,

That depends on the client requirement.

If there is huge volume of data then you will go for Session method else CALL transaction.

If the user needs the error or success records then you have to go for Call transaction i.e you can explicitly handle the error messages where as in Session you cannot handle the error messages as it creates log files.

If you want to update more than once transaction then you will go for Session.

Incase of CALL transaction based on the mode (A and E) , if errors occurs at the screen field values , you can correct the values and proceed but incase of session and Call transaction in modes( N and P) then we have to recorrect the data in the flat file and run the programs again.

thanks and regards.

Former Member
0 Kudos

hi,

we go for call transcation when we are having less data and to be processed fastly , If there is large volume of data then you will go for Session method.

In session process we can handle more than one transcation where as in call trancsation we can handle only one trancation.

In call transcation we can handle the errors easily by havinvg message class where as in session process error handling can be done through log files.

regards,

dilip

former_member188594
Active Participant
0 Kudos

Hi Pravin,

There are several factors which will influence your choice between a batch input session method, call transaction or a BAPI. I will try to list out some of them here.

First is to look for a BAPI. The reason is that BAPIs are supposed to be APIs provided by SAP that protect the interfacing with a particular application in SAP(say sales order). They encompass all the business logic of the corresponding online transactions. Advantages are that they are supported by SAP and their call interface is very stable. Disadvantage is that most of them are synchronous calls and if you are doing massive data conversions, this may be a resource drainer. Also, with BAPIs, you not only need to read the return messages for errors and take corrective action, but also, you need to code for storing the source data so that you want to reprocess it. Sometimes BAPIs may not provide all the features of an online transaction and so they may limited to what data they can store, like texts for instance. If your data requires you to store texts along with the object and the BAPI doesn't provide you with the parameters for passing the texts, then you may end up doing it in two steps.

Batch Input session and call transaction are essentially the same in the sense that they both go through screen flows as opposed to direct data updates. But the major difference between the two is that one is done in batches (good for mass uploads like conversions) and the other is not done in batches. Once a batch is submitted for processing, the system processes it just like a call transaction. Batch inputs are good for massive data loads where you want create several small chunks of such call transactions and process those batches when you have system resources available. They may also be good if you want to retain the transaction data for error reprocessing, but this will not be your source data record.

Call transactions are good only if you want to handle the return messages in your code and act accordingly. So, let us say you create a sales order using call transaction method, and as soon as you get the success message with a sales order number, you want to do something else, then a call transaction is useful. Similarly, if you have an error returned from the call transaction, then you want to report it(error notification), store the source record (may be in an error file or a table), or store the error transaction data (by inserting into a batch input session) for reprocessing. So a call transaction will give you the control after the transaction call is completed. If you want that control, you can use it. But remember that it uses up a lot of resources unless you take care of how it is processed. The latest mySAP enjoy transactions have a lot of controls and may not be suitable for call transaction method.

So what do you look at to decide?

1. Your data volume

2. Your frequency (one time vs. periodic interface)

3. Availability of the functionality you seek with the data you have. Do I have a BAPI that can achieve the desired results I want? Can I record the transaction to do a call transaction or batch input session?

4. Your error handling requirements. Do I need to notify? Do I need to persistently store my source records for any potential reprocessing? Do I need to log the results for audit requirements?

There are others that I can talk about like are there standard SAP programs for the data loads(SXDA, SXDB, LSMW etc)? or Are there IDOC function modules that suit the purpose? Are there regular function modules that I can use although not recommended as SAP can change them without notifying you, but again not insurmountable if you have a good upgrade methodology)

Reward points if useful.

Best Regards,

Sekhar