Web services allows to invoke methods and fetch data on external web services that supports the WSDL standard.
- To add a new service click plus ( + ) symbol in web services list from process designer dashboard.
- Enter the web service address in URL field. (Example: http://www.webservicex.net/globalweather.asmx?WSDL )
- Currently only WSDL standard is supported but other service types will be added in next releases.
- After clicking on 'Ok' button service is automatically discovered in couple seconds and service methods are displayed on screen.
Service discovery scans the available methods on service and automatically registers the web service xml data types in "External Xml Schemas". Web service data types also can be directly used in process data model.
In example "GetWeather" is a method in service and expects the "CityName", "CountryName" fields to invoke and returns GetWeatherResult type. Gray box contains the example usage for scripting. Return value of method may be a basic value or complex data type. You may need to inspect data type from external xml schemas.
Test Mode URL
This field is optional, you may leave it blank. If you want to use another service for testing environment you can specify the URL of service. If workflow instance is in test mode this address is used automatically. Test and live service definition must be identical otherwise unpredictable errors may be occur.
Consuming Service
Calling Service from Scripts
After service is registered you can call the service from scripting environments including browser based client scripts.
var result = $Services.GlobalWeather.GlobalWeatherSoap.GetWeather({ CityName : 'Amsterdam', CountryName : 'Netherlands', });
Using as Data Source
You may also use the service methods to populate lists (for example DropDowns)
After service is registered add a new data source as "Web Service Query"
Click on "Edit" button to edit data source. Service method is now displayed on screen and specify input parameters.
Additional Options
All standard SOAP headers are automatically handled by system but in some scenarios you may need set additional SOAP headers transfer information.
While invoking service after specifying request body you may give secondary object to as headers body. If service definition has matching header by name, specified value is imported to the SOAP message.
var result = $Services.GlobalWeather.GlobalWeatherSoap.GetWeather({ CityName : 'Amsterdam', CountryName : 'Netherlands', }, { MyHeader : 'MyHeaderValue' });