Я работаю с 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» Я использую «DynamicProperties» на вкладке «Input»:
Для сопоставления SelectorString с «DynamicProperties» я создал группу «Повторять до истины» с 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".
Пожалуйста, смотрите скриншот:
Есть ли более элегантный способ сделать это?