Публикация сообщения в нескольких строках тем (IBM Integration Bus)

У меня есть сценарий, в котором я получаю сообщение с помощью узла ввода MQ, и в зависимости от значения исходной системы, присутствующей в сообщении, мне нужно сформировать строку темы и опубликовать сообщение. Вот как выглядит мой поток:

MQInput -> Вычислить -> Публикация

И я заполняю значение Topic, используя: SET OutputRoot.Properties.Topic = 'TopicName /' || sourceName;

Это нормально работает, если сообщение содержит одну исходную систему.

Однако есть вероятность, что сообщение содержит несколько исходных систем. Можно ли использовать вышеупомянутую команду для публикации сообщений в строке с несколькими темами? (что-то вроде этого)

УСТАНОВИТЬ OutputRoot.Properties.Topic = 'Topic /' || sourceName1;

УСТАНОВИТЬ OutputRoot.Properties.Topic = 'Topic /' || sourceName2;

Ценю любые предложения.


person sancsan    schedule 28.06.2016    source источник


Ответы (2)


Вы должны передать 2 отдельных сообщения из вычислительного узла с разными наборами тематических строк.

Вы можете распространить сообщение без возврата, используя инструкцию PROPAGATE ESQL. Итак, ваш код должен выглядеть примерно так:

<Create message in OutputRoot>

SET OutputRoot.Properties.Topic = 'TopicName/' || sourceName1;
PROPAGATE DELETE NONE;

SET OutputRoot.Properties.Topic = 'TopicName/' || sourceName2;
RETURN TRUE;
person Attila Repasi    schedule 30.06.2016

В свойствах вы можете установить только одно значение для каждого свойства.

Чтобы сделать то, что вы хотите сделать, вам нужно сгенерировать несколько сообщений, и это делается с помощью ключевого слова PROPAGATE в ESQL, как предложено выше.

person jdel    schedule 15.07.2016