This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

DEVELOPERS FORUM - Invoking an external web-service from Innovator

ashu_vik - Monday, December 21, 2009 11:51 PM:

Hi All,

I have a situation where I need to invoke a web-service of another application from Aras Innovator. How can I do this?

Can I write a Server Method than invokes the external web-service on an event in Innovator? An example of how to send a soap-request to external applications from Aras Innovator and vice-versa would be of great help

Thanks,

Ashu



Francis Pahng - Friday, January 14, 2011 12:00 AM:

Hi All,

I have exactly the same question as Ashu.

Instead of invoking Aras Innovator's service from an external application, I'd like to invoke a web-service from innovator.

I'd like to learn the most appropriate methods as well as architectural considerations.

Is there any example for this type of system integration?

Thanks,

Francis



divya_p02 - Wednesday, June 8, 2011 7:01 AM:

Hi,

Even i have the same situation, where i need to access the external webservice. I have added the external webservice proxy dll and configure method.xml. I dont know the (C#) syntax to call this service in the method item type of Aras innovator.

Any example would be of great help.

 

Regards,

Divya P



PeterSchroer - Friday, January 14, 2011 8:18 AM:

Hello Francis and Ashutosh -    I have used 2 patterns for accessing external web services from a Server method inside Aras Innovator.

1)  the Microsoft recommended pattern is to create a Proxy for the external web service.    You create this Proxy (a DLL file) using Visual Studio,  or there is an easy command line program which talks to the remote WSDL and creates the Proxy automatically.    If you do a google search on WSDL.exe  you will see some hints.    This creates the DLL,  which you copy into the Innovator Server Bin folder,  register with Innovator by updating the MethodConfig.xml file.    Then inside your methods, the remote systems Objects appear as local objects that you can directly work with.     This pattern is very useful if (a) the remote systems WSDL does not change often and (b) you are more comfortable with VB or C# programming instead of XML programming

2) Inside your Aras Innovator server Method (VB or C#)   create an instance of the  XMLHTTP object,  give it the URL of the remote web serivce,   set the authentication headers,  and then form your own XML messages to send to the service.   You will get XML responses from the Web Service,  and you have to load these into a DOM to then parse and take actions on.    I find this technique better when the remote Web Service is also being developed and the WSDL is frequently changing.    This pattern is also less work when the remote service has multiple URLs for development/production etc,   and you have multiple Innovator instances and might forget to copy the DLL Proxy when it is updated.  

2 patterns,  both are good, and you can choose based on the maturity of the 3rd party system whose web services you are calling,  and your preference of working with XML or VisualStudio objects.

Peter