Why some Web services can’t be consumed ‘as is’ by referenced services in Ax 2009

Referenced services in Ax2009 are based on the .Net technology WCF and so it was for me pretty much clear, that it would be easy to integrate Microsoft's MapPoint services, since they are ‘simple’ standard web services. Unfortunately I was wrong. Referenced Services in Ax2009 two limitations (until now).

1) By referencing the MapPoint services you will quickly recognize that Ax generates only one service even if the MapPoint services exposes 4 services in its WSDL. That’s because Ax 2009 supports only one service per WSDL. Please keep that in mind when creating or consuming services.

2) Even by hacking the first limitation it wouldn’t be possible to consume the MapPoint services, since they are using SOAP-headers. Dynamics Ax 2009 can only consume web services that does not use SOAP headers like for example this one:

  <wsdl:input>
     <soap:body use="literal" /> 
      <soap:header message="tns:GetVersionInfoCustomerInfoHeader" part="CustomerInfoHeader" use="literal" />  
      <soap:header message="tns:GetVersionInfoUserInfoHeader" part="UserInfoHeader" use="literal" />  
  </wsdl:input>

So you can’t consume these kind of web services directly from Ax 2009. In order to use them nevertheless, consume them as you would have done it with Ax4, which is pretty good explained here.

REM: Be aware that referenced services have to be executed on the AOS and that they don’t support integrated authentication.