如何为Soap Request编写ESQL代码?

问题描述 投票:-1回答:1

我想要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>
soap websphere messagebroker extended-sql
1个回答
0
投票

介绍

我找到了我的问题的答案。下面的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代码结构

  1. 定义命名空间前两行以'DECLARE'开头。
  2. 声明名称空间 第三行和第四行声明输出根中的命名空间。
  3. 定义Soap主体代码的其余部分是定义soap请求主体的主要部分。我已跳过其中的标题,因为这是为了测试Web服务*注意:*有关更多信息,请查看ESQL命名空间的文档声明和SOAP 请求
© www.soinside.com 2019 - 2024. All rights reserved.