Мне нужно получить доступ к некоторым значениям XML и объединить их в качестве имени файла для выходного документа. Проблема заключается в том, что решение требует, чтобы сообщение было прочитано в формате BLOB, поэтому сценарий ESQL должен сначала преобразовать BLOB-объект в CHARACTER / XMLNSC. Смотрите код ниже. Код ESQL заканчивается ошибкой, когда я запускаю его в потоке сообщений, и полученный файл называется просто «.xml». Я использую IBM Integration Toolkit 12.
Код
DECLARE CCSID INT InputRoot.Properties.CodedCharSetId;
DECLARE encoding INT InputRoot.Properties.Encoding;
DECLARE bitStream BLOB ASBITSTREAM(InputRoot.BLOB.BLOB, encoding, CCSID);
CREATE LASTCHILD OF Environment.tempXML DOMAIN('XMLNSC') PARSE(bitStream, encoding, CCSID,'BLOB', 'XMLNSC');
DECLARE seorno CHARACTER;
DECLARE sejobn CHARACTER;
SET seorno = FIELDVALUE(Environment.tempXML.ROOT.(XML.Element)SEORNO);
SET sejobn = FIELDVALUE(Environment.tempXML.ROOT.(XML.Element)SEJOBN);
SET OutputLocalEnvironment.Destination.File.Name = seorno || '-' || sejobn || '.xml';