cancel
Showing results for 
Search instead for 
Did you mean: 

Performance BAPI vs. IDoc

Former Member
0 Kudos

Hello,

i don't now if this is the correct forum for my question, but i also don't know which i have to take instead of this.

I have the following problem. At the moment i try to compare the BAPI and the IDoc interface with regard to performance and speed. I write a test program in C# with the SAP .NET Connector 1.0.2 and send the same data with both interfaces and measure the time the transmission needs.

My results are confusing me. IDocs are faster than BAPI, only a little bit, but they are faster. Could this be?? It seems illogical to me because i know IDocs itself use that BAPI during data processing. How can IDocs be faster in this case? Or is it only a bug in my program? I didn't find it so far. Where can i find more information about that thing (comparision between IDoc and BAPI)?

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hello,

IDOC processing is usually an asynchronous process inside R/3. A successful call to the method SAPIDocSender.SubmitIDoc just means that the IDOC has been successfully transferred to the target SAP system and the corresponding processing has been triggered, but not necessarily tells if the IDOC processing has been successfully started or completed.

As explained above, the result you got is actually not so "illogical", because you are probably comparing IDOC's part time to BAPI's total time.

From the viewpoint of performance and speed, calling a BAPI directly should be always faster than calling the same BAPI indirectly through IDOC/ALE.

Regards,

Guangwei

Former Member
0 Kudos

Thanks for your response!

But i forgot to say that i compare BAPI and IDoc with "Immediate processing" in the Inbound parameters. So in both cases data is processed immediately (or not?). When BAPI is always faster than IDoc i have to check my program and results again.

I really had hoped that there's a explanation for my results, for example that there's more data overhead when transmitting the BAPI parameters (because they are more complex) or anything like that...

Stefan

Former Member
0 Kudos

I'm a bit rusty with IDOC processing but if my memory serves me correctly, choosing "immediate processing" does not imply that the IDOC will be processed synchronously. It just means that IDOC processing will be started immediately (asynchronously via tRFC) instead of waiting for the next scheduled run of RBDAPP01.

Scott

Former Member
0 Kudos

Ah, thanks!

I think this could be the solution. That means the SAPIDocSender.SubmitIDoc-Method returns immediately when there is a free dialog process to handle the IDoc and processing has started. But this means that i'm not able to measure the processing time of the IDoc in R/3. I assume that the difference between BAPI and IDoc isn't great in fact but unfortunately this measurement is part of my diploma thesis, so it would be good to find a way to solve that problem. Does anybody has an idea?

Message was edited by: Stefan Bauer