Существует ли оператор Dataweave для логической проверки числа, попадающего в заданный диапазон?

У меня есть поток, который вызывает два подпотока, используя ссылки на потоки и выбор условного маршрутизатора потока.

Первое условие в разделе когда — #[payload.num > 1000]. Когда True это вызывает подпоток-A.

когда false, СЛЕДУЮЩЕЕ условие для проверки — #[(payload.num < 1000) and (payload.num > 0)]. Когда True, это вызывает подпоток-B, иначе по умолчанию.

Есть ли способ (любой оператор) заменить использование #[(payload.num < 1000) and (payload.num > 0)] на что-то чистое, короткое и простое?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
507
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Что-то вроде

%dw 2.0
output application/java

---
(0 to 1000) contains payload.num

Создать массив из тысяч элементов только для проверки одного значения? Пользовательская функция в ХД - лучший ярлык для тех, кто хочет этого...

Alex 18.12.2020 14:39

Вот та же мысль, Алекс.

Thinker-101 20.12.2020 02:51

Я не шучу, и я никогда не хотел, чтобы это было вашим решением. это было просто предложение обернуть ваше мульти-условие, если в возможный способ сделать это. Вы более чем можете не принимать его. Чисто был способ показать возможность, а не производственный код!!!!

Salim Khan 21.12.2020 04:41
Ответ принят как подходящий

Для этого нет встроенного оператора, лучше всего создать модуль 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)]

Другие вопросы по теме