Failing to set SOAP header in integration call with XML and embedded doc in base64

Hi all,

This scenario has few relevant details. Will try to make all them visible...


I need to send an XML SOAP message to a third party, and the message has embedded a document, which has to be codified (uuencode) in base64.

Reading the documentation, the approach has to be the creation of a full set of data types with the same structure than the XSD to be sent.

So far, so good. I'm able to send a full data type with the file using an Integration call, setting the content type as XML (application/xml), in the content I have the data structure and I ticked the Automatically convert CDT to XML.

This is a post message with an specific header and basic authentication.

Now, that third party says is unable to consume the message if there is no a proper SOAP header in the XML...

Simple, right?

I need to add this:

<soapenv:Envelope xmlns:soapenv="">schemas.xmlsoap.org/.../" >
<soapenv:Header/>
<soapenv:Body>

--> here goes my message

</soapenv:Body>
</soapenv:Envelope>

Of course, if I attach the text, let's say something like:

"<soapenv:Envelope xmlns:soapenv="">schemas.xmlsoap.org/.../" >
<soapenv:Header/>
<soapenv:Body>"

& ri!myMessage &

"</soapenv:Body>
</soapenv:Envelope>"

As this is not a defined data type, the file conversion to base64 fails and the content sent does not has the file in base64, as per Appian documentation.

If I create an overarching data type, this data type generates an output of a basic XML, that is:

<n1:Envelope ...

I can't fit the soapenv:Envelope, which makes the consumer to discard my message. 

Any idea?

things I already checked and discarded: 

- There is a plugin named "Advanced Call Web Service (WSDL)". Discarded as according its documentation only supports up to version 19.4.

- Also, there was a plugin to convert a document to Base64. This plugin seems to be NOT available anymore.

- Base64 Expressions plugin, only accepts up to 150 chars.

- Base64 document database integration to store the document into the DB in base64, read it again as text and attach the text... not tested but doesn't seems to be the best approach.

- Same as above, creating a WS and a WebApi to send to myself the document and get its base64 text... probably doable but makes no sense.

  Discussion posts and replies are publicly visible