Talend将动态值传递到tSOAP消息中

时间:2018-08-16 12:01:53

标签: web talend

我正在使用BD5.6.1 我正在使用tSOAP组件,如果我使用打击流程,它会很好地工作。 tsoap-> LogRow 我可以将SOAP Request消息粘贴到tsoap节点的SOAP Message部分中,并且工作正常。 但是现在我想读取excel文件并将该值动态传递给tSOAP组件的SOAP消息该怎么做?

我需要传递的示例SOAP消息。

"<soapenv:Envelope xmlns:soapenv=\"http://schemas.xml\" xmlns:urn=\"urn:HPD_Inc_Create_WS\">
<<urn:HelpDesk_Submit_Service>

<urn:First_Name>   </urn:First_Name>
<urn:Impact>  </urn:Impact>

</urn:HelpDesk_Submit_Service>
</soapenv:Body>
</soapenv:Envelope>"

参数是 名字值在文件中。我需要从excel文件中读取这些值并构造soap消息,然后将其发送到tSOAP Component。

我在论坛上看到我们可以做到

在tSOAP上,定义SOAP消息以使用从tFileInputExcel传递的动态值,如下所示: “ ....” +(String)globalMap.get(“ row1.First_Name”)+“ ...”

// First_name是tFileInputExcel上定义的列之一,此列从excel文件中读取FirstName值。

但不适用于我

1 个答案:

答案 0 :(得分:0)

您可以这样做:

enter image description here

读取您的excel文件,并为每行(tFlowToIterate)调用tSOAP并将其发送的消息发送给它:

"<soapenv:Envelope xmlns:soapenv=\"http://schemas.xml\" xmlns:urn=\"urn:HPD_Inc_Create_WS\">
    <soapenv:Body>
        <urn:HelpDesk_Submit_Service>
            <urn:First_Name>" + (String)globalMap.get("row10.FirstName") + "</urn:First_Name>
            <urn:Impact>  </urn:Impact>
        </urn:HelpDesk_Submit_Service>
    </soapenv:Body>
</soapenv:Envelope>"

全局变量row10.FirstName来自tFlowToIterate,默认情况下,该变量为每个传入行的列创建一个名为rowX.Column的全局变量,您可以在组件设置中重命名该变量。

您还可以将tESBConsumertXMLMap一起使用来构造您的消息。