OutSystems Platform allows you to consume SOAP Web Services. To do it you just need to use the Consume SOAP Web Service element.
You must provide the URL in exactly the same way as you would type it into your Web browser, and ensure you have internet connectivity, since Service Studio needs to fetch the WSDL from the specified web site.
Alternatively, you can import a WSDL from your file system, by specifying file:///<filesystem path to wsdl>.
OutSystems Platform provides extensive support for consuming SOAP web services with WSDL 1.1 and SOAP 1.1.
However there are some scenarios that are not supported, causing errors when trying to import the WSDL. To learn more about the existing restrictions, check the list of SOAP Web Services Constraints.
When a SOAP web service is consumed, a Consume SOAP Web Service element is created with the name of the service (given by the WSDL). This is the default name, which can be changed. Besides this, the following happens internally, through the HTTP/SOAP protocol:
This information is obtained from the WSDL that defines the SOAP Web Service interface.
To use the same namespace as both the general namespace of the WSDL and the namespace of the schema element (with the definition of all types) set it in the Web Services Namespace property of the application module.
If you are using an Oracle database, commit the transaction before executing a SOAP Web Service method. See more about Database Compatibility Issues.
If there are changes to services you are consuming from a SOAP web service, you just have to refresh it in Service Studio. For that, right-click on the SOAP Web Service (in the eSpace tree) and select 'Refresh SOAP Web Service'.
However, you can only refresh if the SOAP Web Service is the same, i.e., it has the same name. If the name of the SOAP Web Service changes, Service Studio returns the following error message:
"Error loading WSDL".
The Refresh operation provides a report with the differences detected between your version of the SOAP Web Service and the new one; if there are no changes, a window is displayed with the following message:
"No differences found."
You can extend the functionality of a SOAP Web Service using the EnhancedWebReferences extension, which is installed with the OutSystems Platform. For example, to send user credentials in a Web Service request. Learn how to Enhance Support for SOAP Web Services.
The time-out for the execution of a method consuming a SOAP Web Service, is the maximum time it waits for a synchronous Web Service request/response cycle to complete.
By default, the time-out is 100 seconds, but this value can be adjusted for each case by simply setting the Timeout in Seconds property. See the Consumed SOAP Method Properties.
To improve the performance of your the SOAP Web Services you are consuming, OutSystems Platform provides the following advanced techniques:
XML Operations to OutSystems Actions | XML Data Types to OutSystems Data Types