如何为Soap Request编写ESQL代码?

时间:2019-02-13 13:55:49

标签: soap websphere messagebroker extended-sql

我希望ESQL用于xml soap请求的代码,以用于IIB中的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>

1 个答案:

答案 0 :(得分:0)

简介

我找到了问题的答案。下面的ESQL代码是上面的Soap request(xml)的答案,soap请求用于调用外部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;

说明

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

  1. 定义命名空间  前两行以“ DECLARE”开头。
  2. 声明名称空间
     第三行和第四行声明输出根目录中的名称空间。
  3. 定义肥皂的身体  代码的其余部分是定义肥皂请求主体的主要部分。  跳过其中的标头,因为这是为了测试Web服务 *注意:*有关更多信息,请参阅ESQL名称空间声明和SOAP文档
       请求
相关问题