Search code examples
soapibm-integration-busextended-sql

Enrich soap message with ESQL


I am creating a simple flow that receives a message via SOAP and in IIB I treat the message with ESQL.

This is my SOAP message:

<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>

I need to replicate this message just by changing the Identification field using ESQL (using a GUID)

Something like that:

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;

Solution

  • You forgot to use XML namespace in the ESQL syntax.

    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;