BizTalk, Web Services and Arrays
Until now (or at least recently) integration with NetSuite involved posting somewhat large Xml documents matching a (sort-of) standard called smbXml and parsing the response.
Classing work for BizTalk Server I have to admit.
But smbXml is one of those standards that only 2.5 applications worldwide use (WhatIs definition for smbXml) and also the web site www.smbxml.org has long vanished, so I was glad to find out NetSuite finally released a Web-Services-based API to replace it, after all - this is a much more standard approach - and even easier to work with in BizTalk Server.
That is until I found out they were possibly too standard as far as BizTalk Sever is concerned and decided, silly them, to use a feature of Web Services called "Support of Arrays"...
Trying to add a web reference to the NetSuite WSDL from my BizTalk 2004 project resulted in a nicely phrased error message basically saying - "this WSDL describes methods that return arrays - forget about it!".
BTW - trying the same from BizTalk 2006 resulted in a much less tidy error message.
I know this is a well known fact that BizTalk does not support web services that work with arrays, but it does not make it less annoying. Why should we be required to build helper classes to wrap calls to other relativley large products/services simply because they've been silly enough to support the standrad to it's full?
I also know that the WSE adapter supports arrays (see the tips towards the end of this article, but this does not help me add a reference to the web service and work with it in that seemeles way I'd expect from Visual Studio and BizTalk in all other scenarios.
Now I'm off to write that helper classs...