У меня есть поток, который вызывает два подпотока, используя ссылки на потоки и выбор условного маршрутизатора потока.
Первое условие в разделе когда — #[payload.num > 1000]
. Когда True
это вызывает подпоток-A.
когда false
, СЛЕДУЮЩЕЕ условие для проверки — #[(payload.num < 1000) and (payload.num > 0)]
. Когда True
, это вызывает подпоток-B, иначе по умолчанию.
Есть ли способ (любой оператор) заменить использование #[(payload.num < 1000) and (payload.num > 0)]
на что-то чистое, короткое и простое?
Что-то вроде
%dw 2.0
output application/java
---
(0 to 1000) contains payload.num
Вот та же мысль, Алекс.
Я не шучу, и я никогда не хотел, чтобы это было вашим решением. это было просто предложение обернуть ваше мульти-условие, если в возможный способ сделать это. Вы более чем можете не принимать его. Чисто был способ показать возможность, а не производственный код!!!!
Для этого нет встроенного оператора, лучше всего создать модуль dw в вашем пути к классам с этой функцией. Это просто файл dwl с этой функцией и другими, если хотите, и без тела.
// src/main/resources/MyModule.dwl
%dw 2.0
fun isBetween(numToCheck: Number, low: Number, high: Number) = do {
(numToCheck > low) and (numToCheck < high)
}
а затем вы можете просто назвать это так:
#[MyModule::isBetween(payload.num, 0, 1000)]
Создать массив из тысяч элементов только для проверки одного значения? Пользовательская функция в ХД - лучший ярлык для тех, кто хочет этого...