Camunda DMN中FEEL语言表示“不等于”的正确语法咨询
Camunda DMN中FEEL语言的“不等于”正确写法
问题场景
你将如下if-else逻辑转换为Camunda DMN决策表:
if(x = 0) { z = 0; } else { if(y = 0) { z = 1; } else { z = 2; } }
转换后的决策表:
Input | Output ---------------------------------- x | y | z ---------------------------------- 0 | - | 0 !=0 | 0 | 1 !=0 | !=0 | 2
命中策略设为「First」,单元格表达式语言为FEEL,但Java单元测试抛出Syntax error '!=0'错误,需要明确FEEL语言下“不等于”的正确表示方式。
解决方案
FEEL语言不支持类Java的!=语法,正确的“不等于”表示有两种方式:
- 使用数学符号**
≠**(直接在单元格中输入该符号) - 使用FEEL原生表达式**
not(= 0)**(无需指定变量名,因为列已绑定对应变量)
修正后的决策表(使用≠符号):
Input | Output ---------------------------------- x | y | z ---------------------------------- 0 | - | 0 ≠0 | 0 | 1 ≠0 | ≠0 | 2
如果编辑器无法输入≠符号,可使用表达式写法:
Input | Output ---------------------------------- x | y | z ---------------------------------- 0 | - | 0 not(=0)| 0 | 1 not(=0)| not(=0)| 2
内容的提问来源于stack exchange,提问作者newProgrammer005
相关产品推荐
相关产品推荐

