Some of customers who have migrated for the old Sap Adapter (BizTalk Adapter 2.0 for mySAP Business Suite) to WCF-SAP adapter (comes with BizTalk Adapter Pack), have come back saying that there are some differences in behavior of the old SAP adapter and WCF-SAP adapter, which can break their scenarios.
Following differences are the most talked about -
All these three behaviors are correct from a design perspective , justification follows -
-----That said, many customers who are migrating from the Old SAP adapter do face these issues. I have written a custom pipeline component that can help resolve these three issues. The pipeline has three configuration properties, which can be used to tailor the behavior as per requirements -
WCF-SAP adapter doesn't allow blank XML nodes, if the min-length is more than zero.
(fields like DateTime )
When true, all empty leaf level node will be removed from the request message.
WCF-SAP adapter doesn't allow ',' as decimal separator
Eg: en-US, es-ES
Culture code for the CultureInfo to use for parsing decimal fields.
When a valid culture code is specified, it will use the given Culture Info for parsing the xs:decimal, xs:float , xs:double fields and convert it to culture-invariant string representation(expected by the WCF-SAP adapter ).
Vice-versa for response.
WCF-SAP adapter doesn't return back tables exposed as CHANGING parameter, if the corresponding request message doesn't contain the table.
On the other hand, it returns a blank table node even if there is no data in the table, if the table is present in request message.
When true, will add empty nodes for all tables which don’t exist in request message.
It will also remove empty table nodes from response message to get a response similar to the old adapter.
The outcome -
How to set the properties on the pipeline component -
Same applies for the other two properties.
Steps for using the pipeline component-
The source-code of the component is atttached, so you can modify the code(if need be) to tailor it to your requirements.