【问题标题】:Enrich soap message with ESQL使用 ESQL 丰富 soap 消息
【发布时间】:2018-05-31 21:12:26
【问题描述】:

我正在创建一个通过 SOAP 接收消息的简单流程,在 IIB 中我使用 ESQL 处理该消息。

这是我的 SOAP 消息:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="http://ComponentesTI">
 <soapenv:Header/>
 <soapenv:Body>
  <com:PushMessageRequest>
     <Message>
      <SerializedContent>?</SerializedContent>
        <HTTPAddress>?</HTTPAddress>
     </Message>
     <Identification>?</Identification>
  </com:PushMessageRequest>
 </soapenv:Body>
</soapenv:Envelope>

我需要通过使用 ESQL(使用 GUID)更改标识字段来复制此消息

类似的东西:

CREATE LASTCHILD OF OutputRoot DOMAIN 'XMLNSC';
DECLARE statement REFERENCE TO OutputRoot.XMLNSC;
DECLARE statement2 REFERENCE TO InputRoot.XMLNSC;
SET statement = statement2;
SET statement.PushMessageRequest.Identification = UUIDASCHAR;

【问题讨论】:

    标签: soap ibm-integration-bus extended-sql


    【解决方案1】:

    您忘记在 ESQL 语法中使用 XML 命名空间。

    CREATE LASTCHILD OF OutputRoot DOMAIN 'XMLNSC';
    DECLARE statement REFERENCE TO OutputRoot.XMLNSC;
    DECLARE statement2 REFERENCE TO InputRoot.XMLNSC;
    SET statement = statement2;
    
    DECLARE com NAMESPACE 'http://ComponentesTI';
    SET statement.com:PushMessageRequest.Identification = UUIDASCHAR;
    

    【讨论】:

    • Obrigado amigo, funcionou.
    【解决方案2】:

    下面的代码片段考虑了 SOAP 信封。

    复制所有内容,包括 Properties 文件夹和任何其他 Header 文件夹,然后更改 Identification 字段。

    SET OutputRoot = InputRoot;
    SET OutputRoot.XMLNSC.*:Envelope.*:Body.*:PushMessageRequest.Message.Identification = UUIDASCHAR;
    

    创建一个新的 XMLNSC 聚合,并根据需要使用其他代码处理 Properties 文件夹和其他标头。

    CREATE LASTCHILD OF OutputRoot DOMAIN 'XMLNSC';
    SET OutputRoot.XMLNSC.*:Envelope.*:Body.*:PushMessageRequest.Message.Identification = UUIDASCHAR;
    

    还取决于您使用的是 HTTPInput 还是 SOAPInput 节点,顶级聚合可能是 SOAP 而不是 XMLNSC。

    最后,由于我们没有更改任何命名空间并覆盖标识中的值,因此我使用语法 *: 作为命名空间,因此我不必为 soapenv 和 com

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-12
      • 1970-01-01
      • 2013-03-29
      • 2012-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多