cancel
Showing results for 
Search instead for 
Did you mean: 
TracyGreen
Level 4
Status: New
Many times when calling a service, the wsdl used to configure the client call and the eventual endpoint for the call are different.  In these cases, we should be able to override the endpoint.  In Blue Prism, the endpoint in the wsdl used in configuring the SOAP Web Service is what is used and there is no way to change it.  We would like an option to Override the endpoint on a SOAP Web Service.
8 Comments
ewilson
Staff
Staff
Hi Tracy,

Have you tried the Edit Service option within the SOAP Web Services wizard? That allows you to change the definition of the generated VBO including the URL of the SOAP service.

It is a system-wide change for the generated VBO as opposed to a per-invocation change (ex. an input data item for URL) though.

Cheers,
Eric
TracyGreen
Level 4
What version is needed for that option.  We currently don't see the VBO for services using the out of the box SOAP Web Services connector.   We are on 6.9.0.  Is that something available with 7.0?
ewilson
Staff
Staff
Hi Tracy,

If you go to System -> Objects -> SOAP Web Services and look at the right side of the screen, you don't see a link for Edit Service?


Cheers,
Eric
TracyGreen
Level 4
I do have that, but it only brings up the wizard.  I am not allowed to edit the actual wsdl.  I can change the wsdl url being used, but that's it.
ewilson
Staff
Staff
Ok, I guess I'm missing something. This wizard allows you to create dynamically generated VBOs in your Blue Prism environment that reference non-BP SOAP web services. To change the endpoint, you change the URL of WSDL within the wizard as shown below:


If you want to edit the WSDL of the non-BP web service, you need to speak with the developers of that specific SOAP web service.

Now, if what you're really after is the WSDL that Blue Prism generates for any VBOs that you expose as SOAP web services using the System ->  Objects -> Exposure wizard, that's an entirely different thing.
TracyGreen
Level 4
We're not changing the wsdl's endpoint.  We are changing the endpoint for calling the service -- the soap address location.  
Here is an example. The wsdl url for this service is http://[host]:9905/WebServices/CorporateEmailServices/CorporateEmailServices.serviceagent?wsdl
What we are changing is inside the wsdl that is stored in the database by the wizard:

If you look at the soap address location for this service, it's a development address with a host of localhost -- this isn't valid once it's deployed.  We override that soap address location when calling it after deployment to use the host of the environment where we want to make the call.
ewilson
Staff
Staff
Ah, I see. In a typical SOAP WSDL situation the endpoint in the WSDL is taken from the URL that was used to access the WSDL. In this case, it seems your developers either manually set the address location to localhost (edited their WSDL) or it was loaded from a local instance of the web service that was entered in the Blue Prism wizard as http://locahost:9905.

So the question is, if you navigate to http://[hostname]:9905/WebServices/CorporateEmailServices/CorporateEmailServices.serviceagent?wsdl in your browser (where hostname is the real hostname of the production service you want to work with) is the location value still reflected as localhost or does it include the actual hostname? If it's the real hostname, then you can use the Edit Service link to change the URL to that of the production service. If it's still shown as localhost, then you have to edit it via the .bprelease file (if you export the SOAP service definition from Blue Prism) or directly in the database. In either case, I've raised this with the Product Manager of Blue Prism Enterprise.
TracyGreen
Level 4
Yes, localhost is what is stored.  Changing that is not a possibility.