0

我想要ESQLxml 肥皂请求的代码,用于 .xml 中的肥皂请求节点IIB。这是我需要转换为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>
4

1 回答 1

2

介绍

我找到了我的问题的答案。下面的 ESQL 代码是上述 Soap 请求(xml)的答案,用于调用外部 Web 服务的肥皂请求形成了一个消息流。

    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;

解释

计算节点内的此代码。计算节点e 位于 SOAPRequest 节点之前。因此消息流中的计算节点创建对SOAPRequest 节点的肥皂请求。因此,首先根据外部soap Web服务的WSDL,我们需要根据WSDL创建名称空间。我将在下面解释ESQL代码结构

  1. 定义命名空间的前两行,以“DECLARE”开头。
  2. 声明命名空间
    第三和第四行,在输出根中声明命名空间。
  3. 定义 Soap 主体其余代码是定义肥皂请求主体的主要部分。我跳过了其中的标头,因为这是为了测试 Web 服务 *注意:*有关更多信息,请查看 ESQL 命名空间的文档声明和 SOAP
    请求
于 2019-02-14T08:03:31.693 回答