2016-06-28 92 views
0

我有一个场景,我将使用MQ Input节点接收消息,并基于消息中存在的源系统的值,我需要形成主题字符串并发布信息。这是我的流程是如何的样子:在多个主题字符串上发布消息(IBM Integration Bus)

MQInput - >计算 - >公布

我用填充主题的价值: SET OutputRoot.Properties.Topic = 'TopicName /' || sourceName;

这适用于情况消息包含一个源系统。

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

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

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

欣赏任何建议。

回答

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; 
0

在属性,你可以只设定一个为每个属性值。

要做你想做的事情,你必须生成多个消息,这是通过在ESQL中使用PROPAGATE关键字完成的,如上面所建议的。

相关问题