RSS

Dynamics NAV: How To Consume An External SOAP Web Service With .Net/Dotnet Interop

25 Feb

The reason for this blog post is that I needed to consume a web service from a partner company that give customer specific details. So far I haven’t worked with consuming web services in NAV so for me this is very new. This post is about the trial and errors that I had on the way implenting this in NAV 2015 on a Windows Server 2012 machine. My main objective was to solve this with dotnet interop.


I started with googling it but for the most part I ended up with information about how to publish a web service from Dynamics NAV but I want to consume.

After a while I realised there are a couple of ways of doing this.

  1. Use automation object (which I don’t want to do)
  2. Create a dotnet wrapper and handle it as an addin (my Visual Studio skills aren’t the best)
  3. Use dotnet interop in NAV (Yes!)

Eventually I found this post which seemed like it was exactly what I was looking but with only one problem. He was using the following dotnet librarys which I didn’t have  on the target machine 😦

DotNetXmlHttp DotNet MSXML.XMLHTTPRequestClass.’Microsoft.MSXML, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’

DotNetXmlDoc DotNet MSXML.DOMDocumentClass.’Microsoft.MSXML, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’

DotNetXmlNodeList DotNet MSXML.IXMLDOMNodeList.’Microsoft.MSXML, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’

DotNetXmlNode DotNet MSXML.IXMLDOMNode.’Microsoft.MSXML, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’

I found MSXML 6.0 installer but after installing it I never found the dotnet libraries and that led me to this mibuso post that had the same problem.
There another user mentioned that:

The use of MSXML is not supported in .NET applications.Microsoft does not support the use of MSXML (Microsoft’s COM-based XML parser) in .NET applications.

Which is stated here. The page also say that:

Support for implementing standards-based XML functionality in .NET applications is built into the .NET Framework. The .NET Framework classes in the System.xml namespaces should be used to implement standards-based XML functionality in .NET applications.

Crap! Either I go with the “ugly” hack to deploy the microsoft.msxml.dll to the addins folder like the mibuso post or I try to find another example that uses pure dotnet interop. With a help from a colleague I found this example which actually did work! 😀

I’m going to use that example and apply it to my scenario but since the web service is a paid service I’m going to show a less and fake version of it but still the details are accurate.

In order to build this web service we have to look at which ingredients we already have.

  • Dynamics NAV dotnet example code
  • SOAP web service adress (with user login and password)

What we are missing is the XML layout of the web service request and response. There is a tool called SOAP UI which is excellent for this scenario and it is FREE! Download and install it. One started choose New SOAP Project. Fill in the project name, the web service WSDL adress.

soapui-connecttosoap

After that choose Request1 and you will see that it has created template XML code to use when calling the service.
soapui-faketemplaterequest

If you replace the questionmark with actual values and press play you will be given the actual response. In this case I have created an anonmous fake response.
soapui-fakerequestresponse

Ok, now we have everything. Lets start with building the code.

GlobalVariableDeclaration.JPG

Put our request XML text into a stringbuilder variable.
xmlrequest

Create the call code with the URL. Note that you leave the ?wsdl out of the adress in the url and the SOAPAction should only contain the page name and also without the ?wsdl.
adressdeclaration

At the end of the code we will copy the XML response into a XML document which we saves to disk to later analyse how to use the XML data. And that was that! To extract data from the request XML is another topic.

 

 

 

Advertisements
 
Leave a comment

Posted by on 2017-02-25 in Okategoriserade

 

Tags: , , , , , , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
Mark Brummel Blog | Microsoft Dynamics NAV

Master Classes Design Patterns and more...

Vjeko.com

ideas in the cloud

Goprowe AB

Reflections from the ERP field

ArcherPoint Developer Blog

Reflections from the ERP field

The NAV Viking´s Blog

- Sharing my experience in the Dynamics NAV world

Comments for waldo's blog

Reflections from the ERP field

Nav Can Be Fun

Its Really Fun to Work with Microsoft Dynamics Nav

Navision-Girl.Com

Reflections from the ERP field

LET'S TALK NAV

Tips, Tricks, How-To's & News about Microsoft Dynamics NAV & Dynamics 365 for Financials

Kine's Info

Reflections from the ERP field

blog.wibeck.org/

Just another WordPress.com site

NAV/SQL Performance - My Two Cents

Reflections from the ERP field

Hougaard.com – Applied Hacking

Reflections from the ERP field

Kauffmann @ Dynamics NAV

Reflections from the ERP field

Kriki’s Dynamics NAV blog

Reflections from the ERP field

Rashed Amini

Reflections from the ERP field

Olof Simren - Microsoft Dynamics NAV Blog

My blog about Microsoft Dynamic NAV tips and tricks. Remember to Subscribe!

Van Vugt's dynamiXs

Reflections from the ERP field

Navisionary – Dynamics NAV

Reflections from the ERP field

%d bloggers like this: