WebServiceClient calls a web-service. It sends incoming data record to a web-service and passes the response to the output ports if they are connected.
document/literal styles only.
WebServiceClient supports only SOAP (version 1.1 and 1.2) messaging protocol with document style binding and literal use (document/literal binding).
|Component||Same input metadata||Sorted inputs||Inputs||Outputs||Each to all outputs||Java||CTL||Auto-propagated metadata|
WebServiceClient does not propagate metadata.
WebServiceClient has no metadata template.
|WSDL URL||yes||URL of the WSD server to which component will connect.
Connecting via a proxy server is available, too, in a way like:
|Operation name||yes||Name of the operation to be performed. See Details.|
|Request Body structure||yes||Structure of the request that is received from input port or written directly to the graph. See Details for more information about request generation.|
|Request Header structure||Optional attribute to Request Body structure. If not specified, automatic generation is disabled. See Details for more information about request generation.|
|Response mapping||Mapping of successful response to output ports. The same mapping as in XMLExtract. See XMLExtract Mapping Definition for more information.|
|Fault mapping||Mapping of fault response to output ports. The same mapping as in XMLExtract. See XMLExtract Mapping Definition for more information.|
|Namespace bindings||A set of name-value assignments defining custom namespaces. The namespace binding attribute is used only for Response Mapping and Fault Mapping.||e.g. |
|Use nested nodes||When true, all elements with the same name are mapped, no matter their depth in the tree. See example in Details.||true (default) | false|
|Request HTTP Headers||HTTP Header(s) and their values to be added to HTTP request headers.|
|Response HTTP Headers||HTTP header(s), that will be read from the HTTP response. You can map the headers in Response mapping to output metadata fields.|
|Username||[ 1]||Username to be used when connecting to the server.|
|Password||[ 1]||Password to be used when connecting to the server.|
|Auth Domain||[ 1]||Authentication domain. If not set, the NTLM authentication scheme will be disabled. Does not affect Digest and Basic authentication methods.|
|Auth Realm||[ 1]||Authentication realm to which specified credentials apply. If left empty, the credentials will be used for any realm. Does not affect NTLM authentication scheme.|
|Timeout (ms)||Timeout for the request; by default in milliseconds, but other time units may be used|
|Override Server URL||Specifies a URL that should be used for the requests instead of the one specified in WSDL definition.|
|Override Server URL from field||Specifies a field containing a URL that should be used for the requests instead of the one specified in WSDL definition.|
|Disable SSL Certificate Validation||If true, component ignores certificate validation problems for SSL connection.||true | false (default)|
After sending your request to the server, WebServiceClient waits up to 10 mins for a response. If there is none, the component fails on error.
If you switch log level
you can examine the full SOAP request and response in log.
This is useful for development and issue investigation purposes.
Operation name opens a dialog, depicted in the figure below, in which you can select a WS operation - just double click on one of them. Operations not supporting the document style of the input message are displayed with a red error icon.
Figure 55.7. Choosing WS operation name in WebServiceClient.
Request Body structure and Request Header structure - open a dialog showing the request structure. The Generate button generates the request sample based on a schema defined for the chosen operation. The Customized generation... option in the button's drop-down menu opens a dialog which helps to customize the generated request sample by allowing to select only suitable elements or to choose a subtype for an element.
Example 55.3. Use nested nodes example
<?xml version="1.0" encoding="UTF-8"?> <Mappings> <Mapping element="request"> <Mapping element="message" outPort="0" /> </Mapping> </Mappings>
<?xml version="1.0" encoding="UTF-8"?> <request> <message>msg1</message> <operation> <message>msg2</message> </operation> </request>
with Use nested nodes switched on (default behaviour)
msg1 with Use nested nodes
switched off .
In order to extract
msg2, you would need to create
tag (one for every nested element).
If authentication is required by the web service server, Username, Password and, in case of NTLM authentication, Auth Domain component properties need to be set.
There are currently three authentication schemes supported: NTLM, Digest and Basic. NTLM is the most secure, Basic is the least secure of these methods. Server advertises which authentication methods it supports and WebServiceClient automatically selects the most secure one.
Auth Realm can be used to restrict specified credential only to desired realm in case Basic or Digest authentication schema is selected.
Auth Domain is required by the NTLM authentication. If it is not set, only Digest and Basic authentication schemes will be enabled.
In case server requires NTLM authentication, but Auth Domain is left empty, you will get error like these in graph execution log:
Also note that it is not possible to specify the domain as part of the Username
in form of
CloverETL Server provides a webservice API to get status or perform operations. Send echo request to CloverETL Server and get the response. The server is listens on 127.0.0.1 on tcp port 38080.
Use WSDL URL, Operation name, Request Body structure and Response mapping attributes.
Set WSDL URL to
In Operation name choose the echo operation.
In Request Body structure use Generate in the upper left corner and then fill in the string to be echoed.
In Response mapping map the out element to any output metadata field. Output port has to be attached, otherwise output cannot be mapped.