One Star

Call multiple external webservices in ESB Job

Hi,
I am completely new to OpenStudio for ESB. I've been testing it, and following some tutorials. I've been able to create a job which calls an external webservice and show a modified response of this external WS. The job is something like this
tEsbProviderRequest---->tXmlMap---->tEsbConsumer---->tXmlMap---->tEsbProviderResponse
When the job is deployed in runtime I can test it perfectly with soapUI.
Now, after calling the first webservice (ws1), I want to make the call of a second webservice (ws2) based on the same input of tEsbProviderRequest, and then take some variables of ws1Response and others from ws2Response, and then show this selected variables in tEsbProviderResponse, but I can't find the way on how to make the second call and even worse how to merge those two responses and make the final one.
I don't know if my description is clear enough
Thanks for your help
1 REPLY
Community Manager

Re: Call multiple external webservices in ESB Job

You can design the job as below:
father job:
tEsbProviderRequest--main--tFlowToIterate--iterate-->tRunJob--main--tXMLMap--main--tEsbProviderResponse

Pass the request document to the child job, refer to this KB article to know how to pass a value from father job to child job.

child job:
tFixedFlowInput_1--main--tXMLMap---tESBConsumer_1---tXMLMap--tJavaRow_1
  |
onsubjobok
  |
tFixedFlowInput_2--main--tXMLMap---tESBConsumer2--tXMLMap--tJavaRow_2
  |
onsubjobok
  |
tFixedFlowInput_3--main--tBufferOutput

tfxiedFlowInput_1 and tFixedFlowInput_2: get the document and pass it tESBConsumer for calling web service
tJavaRow_1&2, store the data extracted from the webservice response to context variable.
tFixedFlowInput_3: get all the data stored by tJavaRow components and pass them to father job. see KB article.
Best regards
Shong
----------------------------------------------------------
Talend | Data Agility for Modern Business