布尔表达式
用于条件判断,最终返回 true 或 false,常用于 IF 节点与流程分支。基于 Spring Expression Language(SpEL),输入变量为 msg(当前消息 payload)。
快速上手
js
msg.title == '系统告警'
msg.level >= 3 && msg.status != 'closed'
msg.title.contains('紧急')语法参考
访问 msg
js
msg.title // 字符串
msg.level // 数字
msg.flag // 布尔
msg.sender.name // 嵌套属性
msg.sender?.name // 安全导航(sender 可能为 null)
msg.tags[0] // 数组下标
msg.output.count // 处理节点输出运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
== | 等于 | msg.title == '123' |
!= | 不等于 | msg.status != 'closed' |
> / < | 大于 / 小于 | msg.level > 2 |
>= / <= | 大于等于 / 小于等于 | msg.score >= 60 |
&& 或 and | 逻辑与 | msg.level > 1 && msg.flag == true |
|| 或 or | 逻辑或 | msg.type == 'A' || msg.type == 'B' |
! 或 not | 逻辑非 | !msg.isRead |
matches | 正则匹配 | msg.title matches '.*紧急.*' |
字符串与集合方法
| 方法 | 说明 | 示例 |
|---|---|---|
.contains(str) | 包含子串 | msg.title.contains('告警') |
.startsWith(str) | 以…开头 | msg.code.startsWith('ERR') |
.endsWith(str) | 以…结尾 | msg.code.endsWith('_SYS') |
.isEmpty() | 是否为空字符串 | msg.content.isEmpty() |
.length() | 字符串长度 | msg.title.length() > 10 |
.size() | 集合元素个数 | msg.tags.size() > 0 |
示例
js
msg.title == '123'
msg.level >= 3
msg.level >= 1 && msg.level <= 5
msg.status == 'active' && msg.level > 1
msg.type == 'warning' || msg.type == 'error'
!msg.isRead
msg.title.contains('告警')
msg.title matches '.*紧急.*'
msg.sender?.name == '系统' && msg.level >= 2
(msg.level >= 1 && msg.level <= 5) && msg.status != 'closed'注意事项
- 字段可能为
null时使用?.(如msg.sender?.name),否则表达式会报错并中断执行 - 字符串比较使用单引号:
msg.title == '告警' and/or/not与&&/||/!等价,按团队习惯统一即可
