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) )
I had to say
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.