我想要xaz soap请求的ESQL
代码,用于IIB
中的soap请求节点。这是简单的soap请求我需要转换为ESQL
(扩展sql)。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:emp="http://tempuri.org/employees_ms">
<soapenv:Header/>
<soapenv:Body>
<emp:ReqDetails xmlns:emp="http://tempuri.org/employees_ms">
<emp:EMP_ID>EJD3</emp:EMP_ID>
<emp:SALARY_INC>200</emp:SALARY_INC>
</emp:ReqDetails>
</soapenv:Body>
</soapenv:Envelope>
我找到了我的问题的答案。下面的ESQL代码是上述Soap请求(xml)的答案,用于从外部Web服务形成消息流的soap请求。
DECLARE ns1 NAMESPACE 'http://tempuri.org/employees_ms';
DECLARE soapenv NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
SET OutputRoot.XMLNSC.soapenv:Envelope.(XMLNSC.NamespaceDecl)xmlns:ns1 = ns1;
SET OutputRoot.XMLNSC.soapenv:Envelope.(XMLNSC.NamespaceDecl)xmlns:soapenv = soapenv;
SET OutputRoot.XMLNSC.soapenv:Envelope.soapenv:Body.ns1:ReqDetails.ns1:EMP_ID='EJD2';
SET OutputRoot.XMLNSC.soapenv:Envelope.soapenv:Body.ns1:ReqDetails.ns1:SALARY_INC =200;
计算节点内的此代码位于SOAPRequest节点之前。因此,消息流中的计算节点会向SOAPRequest节点创建soap请求。所以根据外部soap web服务的WSDL首先我们需要根据WSDL创建名称空间。我将在下面解释ESQL代码结构