假设我在IIB中有一个错误处理程序子流程组件,它会生成一条错误消息,然后将其输出到队列中。在输出消息中包含输入消息ESQL
错误消息是在类似的格式:
<ErrorMsg><Details>There was an error of some kind</Details><OriginalMsg></OriginalMsg></ErrorMsg>
从中,MQInput捕获和故障点终端的输出到错误处理程序的输入。消息域在主消息流的MQInput节点上设置,并且可以是XMLNSC或未指定。
鉴于此,如果我想在错误消息中包含原始消息的副本,在OriginalMsg标记中(因此它需要是CData),我该怎么做呢?
我已经试过类似下面的东西(其中需要XMLNSC反正,和b似乎不工作。):
DECLARE InputMessageBlob BLOB ASBITSTREAM(inRef.XMLNSC, inRef.Properties.Encoding, inRef.Properties.CodedCharSetId);
DECLARE InputMessageChar CHAR CAST(InputMessageBlob AS CHAR CCSID 1208);
SET OutputRoot.XMLNSC.nm1:ErrorMsg.nm1:OriginalMsg.(XMLNSC.CDataField)nm1:Content = InputMessageChar;
上面让我部署我吧文件,但输出只是一个空标签。
这是有帮助的,谢谢;但我一直在寻找一个更一般的答案,而不是假设输入消息是XMLNSC – simonalexander2005