‎2007 Jun 22 10:16 AM
hi guru's.,
can anybody plz tell , why session method is using instead of Call trx method while there is large amt of data is available, eventhough session method is slower than Call Trx...?
Thanks & regards.,
Chandra
‎2007 Jun 22 10:21 AM
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.
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.
For BDC:
http://myweb.dal.ca/hchinni/sap/bdc_home.htm
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/bdc&;
http://www.sap-img.com/abap/learning-bdc-programming.htm
http://www.sapdevelopment.co.uk/bdc/bdchome.htm
http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
http://help.sap.com/saphelp_47x200/helpdata/en/69/c250684ba111d189750000e8322d00/frameset.htm
http://www.sapbrain.com/TUTORIALS/TECHNICAL/BDC_tutorial.html
Check these link:
http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
http://www.sap-img.com/abap/question-about-bdc-program.htm
http://www.itcserver.com/blog/2006/06/30/batch-input-vs-call-transaction/
http://www.planetsap.com/bdc_main_page.htm
Vasanth
‎2007 Jun 22 11:13 AM
hi vasanth.,
thanks for ur answer,
but my question is why session method is using though it is slower than call trx when there is large amnt of data available.
As all know that Call trx is very fast
then we have to opt for call trx method, but in real we are opting Session method why...?
‎2007 Jun 22 10:24 AM
Hi,
The CALL TRANSACTION is syncronous processing because it runs the transaction in the same program created the BDC.
The SESSION METHOD is asnchronous processing because it runs all trx at the end by SM35, so in the different moment.
When it choose the CALL TRANSACTION method, it can choose if updating is synchronous or asynchronous.
All updating of database are triggered after the transaction is over when the COMMIT is triggered, so:
If it choose synchronous, it means the system wait for all updating are really finished, else the program wait for the trx is over only, so your program's running while the system updting the database.
For example you want to read the new hit after the call transaction is over:
CALL TRANSACTION <TRX> ..... USING TAB-BDC UPDATE 'A'
IF SY-SUBRC = 0.
SELECT * FROM <TABLE> WHERE .....
ENDIF.
In this situation the system retunr in the program just only the trx is over, and this doesn't mean the database is updated, so probably the SELECT statament can fail.
CALL TRANSACTION <TRX> ..... USING TAB-BDC UPDATE 'S'
IF SY-SUBRC = 0.
SELECT * FROM <TABLE> WHERE .....
ENDIF.
In this situation the system retunr in the program just only the trx is over and all updating are made, so he SELECT statament can't fail now.
The problem is performace is better with asynchronous mode and so the system chooses this method by default, it has to force the synchronous mode.
But why does it need to force the synchronous mode? Just only to read the data after saving it, and this can't be purpose of SESSION method: it has to save the data.
<b>Reward points</b>
Regards