【问题标题】:how to write ESQL code for a Soap Request?如何为 Soap 请求编写 ESQL 代码?
【发布时间】:2019-07-07 09:18:38
【问题描述】:

我想要ESQL xml 肥皂请求的代码,用于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>

【问题讨论】:

  • 这不是免费的代码编写服务。请使用tour 并阅读How to Ask。然后回来edit你的问题。将您尝试过的代码发布为minimal reproducible example。当你运行它时会发生什么?你期望会发生什么?有什么错误吗?
  • 这里是新手。我会以适当的方式格式化问题,谢谢你的建议,反正我自己想通了

标签: soap websphere messagebroker extended-sql


【解决方案1】:

简介

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

说明

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2016-12-29
    • 1970-01-01
    • 2020-04-02
    • 1970-01-01
    相关资源
    最近更新 更多