我正在使用 Tibco BW5。我的 JMS 选择器字符串如下所示:
SelectorString = "Name='Value' AND Name='Value' AND Name='Value' AND ...."
我需要在“JMS Queue Requestor”或“JMS Queue Sender”中使用这个字符串作为 JMS 选择器。
解决方案:
为了将选择器设置为“JMS Queue Requestor”或“JMS Queue Sender”,我在“Input”选项卡中使用“DynamicProperties”:
为了将 SelectorString 映射到“DynamicProperties”,我创建了“Repeat-Until-True”组,其中包含 MapData。
重复条件:
($i >= count(tib:tokenize($Start/root/SelectorString, "AND")))
我将“名称”映射到:
tib:trim(tib:tokenize(tib:tokenize($Start/root/SelectorString, "AND")[$i], "=")[1])
我将“价值”映射到:
substring-before(substring-after(tib:tokenize(tib:tokenize($Start/root/SelectorString, "AND")[$i], "=")[2], "'"), "'")
然后我将累积输出设置为“JMS Queue Requestor”动态属性。
请看截图:
有没有更优雅的方法来做到这一点?