我将使用MQ Input节点接收消息,并根据消息中存在的源系统的值,我需要形成主题字符串并发布消息。这就是我的流程:
MQInput - >计算 - >出版物
我使用以下方法填充Topic的值: SET OutputRoot.Properties.Topic =' TopicName /' || sourceName;
如果邮件包含一个源系统,则此方法正常。
但是消息可能包含多个源系统。是否可以使用上述命令在多个主题字符串上发布消息? (像这样)
SET OutputRoot.Properties.Topic ='主题/' || sourceName1;
SET OutputRoot.Properties.Topic ='主题/' || sourceName2;
感谢任何建议。
答案 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关键字来完成。