SOAP via References effective URL

  

I am interfacing with a web service via SOAP on Outsystems 9 on-premises. Unfortunately the wsdl file contains recursive structures which ended up with me having to import from a .Net Assembly (Built from the wsdl) 

The issue is that i need to occasionally change the URL of the web service. I am trying to use EnhancedWebReferences to attempt to amend the web service URL however i am Outsystems is unable to detect the web service (As this is a reference encapsulating a webservice as stated above).

If i consume the SOAP service i am able to access the web service and change the URL but only having 1 simple log off function (Due to the recursive structures) is pointless.

Any ideas on how i am able to access the web service (as a reference) to amend the URL? 

Hi Nathaniel,

One idea is to have that URL in a Site Property and have a public Action that will return as output the value of that Site Property.

Then, you use te code in this post to call the action and get the URL:

https://www.roelvanlisdonk.nl/2013/11/06/how-to-dynamically-call-an-action-in-outsystems-based-on-the-espace-name-and-action-name/

The next part, I guess you know: you can change the value of the Site Property in Service Center.

This is just an idea. I haven't tried. Try it and tell me if it works. :)

Cheers,

José

Solution

Hi Nathaniel,

José solutions looks like a great idea. If it does not work you can check this old post, maybe it can help you:

https://www.outsystems.com/forums/discussion/12022/intergration-studio-problem/

Best regards,

João Nobre


Solution

Hi José, João Nobre,

Thank you for the insights, will test them out when i am back on-site next week, will update on the results then!

Regards,

Nat

João Nobre wrote:

Hi Nathaniel,

José solutions looks like a great idea. If it does not work you can check this old post, maybe it can help you:

https://www.outsystems.com/forums/discussion/12022/intergration-studio-problem/

Best regards,

João Nobre


José's solution looks to be an excellent idea however in the interest of time i have decided to follow the old solution provided which was to create a binding in the code. Basically create a wrapper to encapsulate the existing methods and perform the binding manually.


Would like to explore José's solution as it seems to be better at addressing cases where there are many methods required (luckily i only require a couple of methods thus it would be faster to wrap the methods although it wont scale well...)

Hi Nathaniel,

I would also liked for you to explore my solution to tell me if it worked or not. ;)

But João's idea seems to be easier to implement and from what I've seen, it's what you want.

Either way, glad to help.

Cheers,

José