IIB SOAP Service CDATA element to MQ

684 views Asked by At

In IIB I've exposed a SOAP web service that accepts a CDATA element. I need to write that CDATA element to MQ. It's a simple IIB transformation:

SET OutputRoot.BLOB = InputRoot.SOAP.Body.ns:HL7ReqType.ReqBody; And it does put the unwrapped CDATA information into a BLOB. But the MQOutput Node doesn't see it, and writes a zero length record to the queue.

How do I get that BLOB data written to the queue? Trace looks like this:

( ['SOAPRoot' : 0x1fa37b60]

(0x01000000:Name ):Properties = ( ['MQPROPERTYPARSER' : 0x1fa38280] ... etc ... ) (0x03000000:NameValue):BLOB = 'MSH|^~||||XX|||ORM^A^M| PID|1|123^| etc...' (CHARACTER) )

1

There are 1 answers

0
DThompson55 On

I had to say

SET OutputRoot.BLOB.BLOB = CAST(... AS BLOB)

And then optionally I needed to add CCSID 1209 after the AS BLOB. CCSID 1209 means UTF-8. Otherwise the CAST doesn't know how the string is coded and attempts to treat it as a string of hex values.