July 30, 2023

tESBProviderResponse – Docs for ESB 7.x

tESBProviderResponse

Serves a Talend
Job cycle result as a response message.

It acts as a service provider
response builder at the end of each Talend Job cycle.

tESBProviderResponse Standard properties

These properties are used to configure tESBProviderResponse running in the Standard Job framework.

The Standard
tESBProviderResponse component belongs to the ESB family.

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).

Basic
settings

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. When you create a Spark
Job, avoid the reserved word line when naming the
fields.

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.

Click Sync
columns
to retrieve the schema from the
previous component connected in the Job.

 

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

 

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

Advanced
settings

tStatCatcher
Statistics

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

Global
Variables

Global
Variables
 

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

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

Usage rule

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

Limitation

A JDK is required for this component to
operate.

Returning Hello world response

This scenario applies only to Talend Open Studio for ESB, Talend Data Services Platform and Talend Data Fabric.

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 tESBProviderResponse, a tXMLMap, and two tLogRow components.

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

  • In the design workspace, double-click tESBProviderRequest_1 to
    display its Component
    view and set its Basic
    settings
    .

tESBProviderResponse_2.png
  • 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.

tESBProviderResponse_3.png
  • Click OK.

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

tESBProviderResponse_4.png
  • Connect tESBProviderRequest_1 to tLogRow_1.

  • Double-click tLogRow_1 to display its Component view and set
    its Basic
    settings
    .

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

tESBProviderResponse_6.png
  • 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.

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

  • In the design workspace, double-click tLogRow_2 to display its
    Component
    view and set its Basic
    settings
    .

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

tESBProviderResponse_9.png
  • Connect tLogRow_2 to tESBProviderResponse_1.

  • In the design workspace, double-click tESBProviderResponse_1
    to open its Component
    view and set its Basic
    settings
    .

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

tESBProviderResponse_11.png
  • Save the provider Job.

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

tESBProviderResponse_12.png
  • 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.

tESBProviderResponse_13.png
  • Click the three-dot button next to Edit schema.

tESBProviderResponse_14.png
  • Click the plus button to add a new line of string
    type and name it payloadString.

  • Click OK.

  • In the Number of
    rows
    field, set the number of rows as 1.

  • In the Mode area, select Use Single Table and
    input world in quotations
    into the Value
    field.

  • Connect tFixedFlowInput to tXMLMap.

  • Connect tXMLMap to tESBConsumer and name this row as payload.

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

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

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

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

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

tESBProviderResponse_15.png
  • Click OK
    to validate the mapping and close the Map Editor.

  • Start the Provider Job. In the executing log you
    can see:

  • In the tESBConsumer_1
    Component view, set
    its Basic
    settings
    .

tESBProviderResponse_16.png
  • Click the three-dot button next to the Service Configuration to
    open the editor.

tESBProviderResponse_17.png
  • In the WSDL field, type in: http://127.0.0.1:8088/esb/provider/?WSDL

  • Click the Refresh button to retrieve port name
    and operation name.

  • Click OK.

  • In the Basic
    settings
    of the tESBConsumer, set the
    Input Schema
    as follows:

tESBProviderResponse_18.png
  • Set the Response
    Schema
    as follows:

tESBProviderResponse_19.png
  • Set the Fault
    Schema
    as follows:

tESBProviderResponse_20.png
  • Connect tESBConsumer_1 to tLogRow_1 and tLogRow_2.

  • In the design workspace, double-click tLogRow_1 to display its
    Component
    view and set its Basic
    settings
    .

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

tESBProviderResponse_22.png
  • In the Job Design, double-click tLogRow_2 to display its
    Component
    view and set its Basic
    settings
    .

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

tESBProviderResponse_24.png
  • Save the consumer Job.

  • Run the provider Job. In the execution log you
    will see:

    2011-04-21
    15:28:26.874:INFO::jetty-7.2.2.v20101205

    2011-04-21 15:28:27.108:INFO::Started

    SelectChannelConnector@127.0.0.1:8088

    web service [endpoint:
    http://127.0.0.1:8088/esb/provider] published

  • Run the consumer Job. In the execution log of
    the Job you will see:

  • In the provider’s log you will see the trace
    log:


Document get from Talend https://help.talend.com
Thank you for watching.
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x