Tables Parameter is not a bad option always..!!
While writing a RFC today I got some interesting stuff ( an example of how much does SAP concentrates on performance 😘 ), worth sharing..!!
So here it goes .. — ) :
Well, you will get this Warning popup ( labeled as Information ) while declaring a parameter to hold Internal Table data in Import, Export, Changing parameter of a RFC enabled FM.
So, what does SAP suggests ? 😉
You should Declare it as Tables parameter ( but Tables has already been marked Obsolete 😕 )
Sounds strange,, Right ??
Probably Yes, if you do not know the reason..!!
So, I searched for the root cause :
This Information / Check was included with OSS 736660 – RFC: Implementing performance checks in transaction SE37
For releases lower than 7.2 or 7.0 EHP2 SAP uses Internal Binary Format for flat types and Tables parameters and xRFC is used for Deep parameters, as per the protocol defined for communicating between systems in case of RFC.
For releases 7.2 onwards or higher than 7.0 EHP2 SAP uses basXML ( Binary ABAP Serialized XML ), which is again expected to change in coming releases.
In terms of performance Internal Binary Format method is the topper followed by basXML and then comes xRFC.
So, if you do not want this popup and you are on a higher release supporting basXML, 🙂
Do the following changes :
1. Specify the Transfer protocol as basXML in SM59,
2. Tick mark the Check Box, basXML supported in SE37.
❗ Pls. Note : If your RFC FM has only flat parameter then this “basXML” will result in loss of performance.This will help you to achieve better performance only if your RFC FM has too many complex parameters.
Kindly come up with addition / comments / suggestion, that can add further value to this article.
Thanking You All..!!
Thanks Ankit, very useful information.
Nice Work Ankit.
I guess the decision here is when should we use the basXML protocol or not, since as far as I understand, if the parameters are only flat, we have losses in performance.
In my current client I have to develop a lot of web services that will call FM's in SAP, and some have complex parameters, others don't..
I guess another solution is to create two RFC destinarion, one for simple scenarios and another for complex ones, but then the consumer external systems should know which RFC to use for the web service call..
Nevertheless, great information!
Thanks for the effort.
Even thou basXML is not too fast, but it is expected to change in future and SAP suggests basXML, just to have a unified protocol across different parameter types in RFC FM.
Its great that you will be working with RFCs, pls. share your experiences with different protocols.
Thanking You All..!!
Good Work Ankit.. simple and nice explanation..