在多个主题字符串上发布消息(IBM Integration Bus)

时间:2016-06-28 13:48:26

标签: ibm-mq ibm-integration-bus

我将使用MQ Input节点接收消息,并根据消息中存在的源系统的值,我需要形成主题字符串并发布消息。这就是我的流程:

MQInput - >计算 - >出版物

我使用以下方法填充Topic的值: SET OutputRoot.Properties.Topic =' TopicName /' || sourceName;

如果邮件包含一个源系统,则此方法正常。

但是消息可能包含多个源系统。是否可以使用上述命令在多个主题字符串上发布消息? (像这样)

SET OutputRoot.Properties.Topic ='主题/' || sourceName1;

SET OutputRoot.Properties.Topic ='主题/' || sourceName2;

感谢任何建议。

2 个答案:

答案 0 :(得分:1)

您应该从Compute节点传播2个单独的消息,并设置不同的主题字符串。

您可以使用PROPAGATE ESQL语句传播消息而不返回。 所以你的代码应该是这样的:

<Create message in OutputRoot>

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

SET OutputRoot.Properties.Topic = 'TopicName/' || sourceName2;
RETURN TRUE;

答案 1 :(得分:0)

在属性中,您只能为每个属性设置一个值。

要执行您想要执行的操作,您必须生成多条消息,这可以通过使用上面建议的ESQL中的PROPAGATE关键字来完成。