tESBProviderRequest - 6.1

Talend Components Reference Guide

EnrichVersion
6.1
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
EnrichPlatform
Talend Studio
task
Data Governance
Data Quality and Preparation
Design and Development

Warning

This component is relevant only when used with one of the Talend solutions with ESB, as it should be used with the Service Repository node and the Data Service creation related wizard(s).

tESBProviderRequest properties

Component family

ESB/Web Services

 

Function

Wraps Talend Job as web service.

Purpose

Waits for a request message from a consumer and passes it to the next component.

Basic settings

Property Type

Either Built-in or Repository.

Since version 5.6, both the Built-In mode and the Repository mode are available in any of the Talend solutions.

 

 

Built-in: No WSDL file is configured for the Job.

 

 

Repository: Select the desired web service from the Repository, to the granularity of the port name and operation.

 

Schema and Edit schema

A schema is a row description. It defines the number of fields (columns) to be processed and passed on to the next component. The schema is either Built-In or stored remotely in the Repository.

Click Edit schema to make changes to the schema. If the current schema is of the Repository type, three options are available:

  • View schema: choose this option to view the schema only.

  • Change to built-in property: choose this option to change the schema to Built-in for local changes.

  • Update repository connection: choose this option to change the schema stored in the repository and decide whether to propagate the changes to all the Jobs upon completion. If you just want to propagate the changes to the current Job, you can select No upon completion and choose this schema metadata again in the [Repository Content] window.

 

 

Built-in: The schema is created and stored locally for this component only. Related topic: see Talend Studio User Guide.

 

 

Repository: The schema is created and stored in the Repository, hence can be reused. Related topic: see Talend Studio User Guide.

 

Keep listening

Check this box when you want to ensure that the provider (and therefore Talend Job) will continue listening for requests after processing the first incoming request.

Advanced settings Log messages (Studio only) Select this check box to log the message exchange between the service provider and the consumer. This option works in the Studio only.

tStatCatcher Statistics

Select this check box to gather the Job processing metadata at a Job level as well as at each component level.

Dynamic settings

Click the [+] button to add a row in the table and fill the Code field with a context variable to turn on or off the Keep listening option dynamically at runtime.

When a dynamic parameter is defined, the corresponding Keep listening option in the Basic settings view becomes unusable.

For examples on using dynamic parameters, see Scenario 3: Reading data from MySQL databases through context-based dynamic connections and Scenario: Reading data from different MySQL databases using dynamically loaded connection parameters. For more information on Dynamic settings and context variables, see Talend Studio User Guide.

Global Variables 

NB_LINE: the number of rows processed. This is an After variable and it returns an integer.

CORRELATION_ID: the correlation ID by which chained service calls will be grouped. This is a Flow variable and it returns a string.

SECURITY_TOKEN: the user identity information in the request header. This is a Flow variable and it returns an XML node.

HEADERS_SOAP: the headers of the SOAP request. This is a Flow variable and it returns all SOAP request headers.

HEADERS_HTTP: the headers of the HTTP request. This is a Flow variable and it returns all HTTP request headers.

ERROR_MESSAGE: the error message generated by the component when an error occurs. This is an After variable and it returns a string. This variable functions only if the Die on error check box is cleared, if the component has this check box.

A Flow variable functions during the execution of a component while an After variable functions after the execution of the component.

To fill up a field or expression with a variable, press Ctrl + Space to access the variable list and choose the variable to use from it.

For further information about variables, see Talend Studio User Guide.

Usage

This component covers the possibility that a Talend Job can be wrapped as a service, with the ability to input a request to a service into a Job and return the Job result as a service response.

The tESBProviderResponse component can both deliver the payload of a SOAP message and also access the HTTP and SOAP headers of a service.

The tESBProviderRequest component should be used with the tESBProviderResponse component to provide a Job result as a response, in case of a request-response communication style.

When the SAML Token or the Service Registry is enabled in the service runtime options and if the SAML Token exists in the request header, the tESBProviderRequest component will get and store the SAML Token in the component variable for further use in the flow.

The tESBProviderRequest component will get the Correlation Value in the request header if it exists and stored it in the component variable. When the Business Correlation or the Service Registry is enabled in the service runtime options, the Correlation Value will also be added to the response. In this case, tESBProviderRequest will create a Correlation Value if it does not exist.

Note that the Service Registry option is only available if you subscribed to Talend Enterprise ESB solutions. For more information about how to set the runtime options, see the corresponding section in the Talend Studio User Guide.

Limitation

A JDK is required for this component to operate.

Scenario: Service sending a message without expecting a response

The Jobs, which are built upon the components under the ESB/Web Services family, act as the implementations of web services defined in the Services node of the Repository. They require the creation of and association with relevant services. For more information about services, see the related topics in the Talend Studio User Guide.

In this scenario, a provider Job and a consumer Job are needed. In the meantime, the related service should already exist in the Services node, with the WSDL URI being http://127.0.0.1.8088/esb/provider/?WSDL, the port name being TEST_ProviderJobSoapBinding and the operation being invoke(anyType):anyType.

The provider Job consists of a tESBProviderRequest, a tXMLMap, and two tLogRow components.

  • Drop the following components from the Palette onto the design workspace: a tESBProviderRequest, a tXMLMap, and two tLogRow.

  • Double-click tESBProviderRequest_1 in the design workspace to display its Component view and set its Basic settings.

  • Select Repository from the Property Type list and click the three-dot button to choose the service, to the granularity of port name and operation.

  • Click OK.

  • Click the three-dot button next to Edit schema to view the schema of tESBProviderRequest_1.

  • Click OK.

  • Connect tESBProviderRequest_1 to tLogRow_1.

  • Double-click tLogRow_1 in the design workspace to display its Component view and set its Basic settings.

  • Click the three-dot button next to Edit schema. and define the schema as follow.

  • Connect tLogRow_1 to tXMLMap_1.

  • Connect tXMLMap_1 to tLogRow_2 and name this row as payload.

  • In the design workspace, double-click tXMLMap_1 to open the Map Editor.

  • On the lower right part of the map editor, click the plus button to add one row to the payload table and name this row as payload.

  • In the Type column of this payload row, select Document as the data type. The corresponding XML root is added automatically to the top table on the right side which represents the output flow.

  • In the payload table, right-click root to open the contextual menu.

  • From the contextual menu, select Create Sub-Element and type in response in the popup dialog box.

  • Right-click the response node and select As loop element from the contextual menu.

  • Repeat this operation to create a sub-element request of the root node in the input table and set the request node as loop element.

  • Click the request node in the input table and drop it to the Expression column in the row of the response node in the output table.

  • Click OK to validate the mapping and close the map editor.

  • Double-click tLogRow_2 in the design workspace to display its Component view and set its Basic settings.

  • Click the three-dot button next to Edit Schema and define the schema as follow.

  • Save the Job.

The consumer Job consists of a tFixedFlowInput, a tXMLMap, a tESBConsumer, and two tLogRow components.

  • Drop the following components from the Palette onto the design workspace: a tFixedFlowInput, a tXMLMap, a tESBConsumer, and two tLogRow.

  • Double-click tFixedFlowInput_1 in the design workspace to display its Component view and set its Basic settings.

  • Edit the schema of the tFixedFlowInput_1 component.