是否有一个 Dataweave 运算符用于对给定范围内的数字进行布尔验证

Is there a Dataweave operator for Boolean validation of number falling between a given Range

我有一个流,它使用流引用和一个选择条件流路由器调用两个子流。

when 部分的第一个条件是 #[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)]