Hi,
We are using BizTalk 2010 to submit messages to AX 2012 via NetTcp ports.
On one of the integrations, for supplier invoices, an AX inbound pipeline is configured to replace a tax code with a supplier specific tax code (a customisation our AX partner did).
The problem we have is that when BizTalk passes in the xml and then this is processed in the pipeline, AX does not recognise the top node of the xml that is being searched for in the X++ code.
To test the pipeline, we have used a .net application to call the NetTcp port and used the AX file adapter option – both of which worked.
The problem may be related to the way that BizTalk implements the xml namespace references:
XML captured from the .net tool (works):
<VendVendInvoiceServiceCreateRequest xmlns=”http://schemas.microsoft.com/dynamics/2008/01/services“>
The BizTalk XML (fails):
<ns0:VendVendInvoiceServiceCreateRequest xmlns:ns2=”http://schemas.microsoft.com/dynamics/2008/01/sharedtypes” xmlns:ns3=”http://schemas.microsoft.com/dynamics/2008/01/documents/VendInvoice” xmlns:ns4=”http://schemas.microsoft.com/dynamics/2006/02/documents/EntityKey” xmlns:ns0=”http://schemas.microsoft.com/dynamics/2008/01/services” xmlns:ns1=”http://schemas.microsoft.com/dynamics/2006/02/documents/EntityKeyList“>
The X++ code snippet that fails to find the opening tag:
xmlNode = xmlDoc.getNamedElement(‘VendVendInvoiceServiceCreateRequest’);
Does anybody knows if there is a known issue regarding using BizTalk and AX inbound port pipelines? Or even better if there is an answer in how the AX pipeline should be doing this?
One option is to implement a BizTalk custom pipeline component to strip the namespaces and see how AX copes then, but ideally I feel that the X++ code should be coping with this as it is valid XML.
Thanks
Stu