Camunda Modeler中如何在输出列访问常量列的值?
问题分析与解决
错误原因
你当前的核心问题是常量列的表达式配置错误:
你把constant列的表达式写成了constant,Camunda会将其解析为「需要从输入变量中读取名为constant的值」,但你的请求里并没有传入这个变量,因此触发no variable found for name 'constant'错误。
正确实现方案
方案1:定义可复用的常量输入列(适合多输出列复用常量)
- 在Camunda Modeler的决策表输入列中添加一行,配置如下:
- 列名称:
fixedConstant(自定义,后续用来引用) - 表达式:直接写常量值,比如
5(FEEL语法中,直接写数字就是常量) - 数据类型:
Number
- 列名称:
- 在输出列中,将计算表达式改为:
这里的fixedConstant * payload.numfixedConstant就是你刚才定义的输入列名称,Camunda会直接使用该列的常量值参与计算。
方案2:直接在输出表达式中使用常量(适合单一输出场景)
如果这个常量只需要在一个输出里使用,不需要单独定义输入列,直接在输出表达式里写:
5 * payload.num
这样更简洁,无需额外配置输入列。
验证测试
用你原来的curl请求测试(无需传入constant变量):
curl --location --request POST 'http://localhost:8080/engine-rest/engine/default/decision-definition/key/const_id/evaluate' \ --header 'Content-Type: application/json' \ --data-raw '{ "variables": { "payload": { "value": { "num":1 } } } }'
会返回你期望的结果:
[ { "output": { "value": 5 } } ]
补充说明
- 决策表的输入列如果要作为常量,表达式必须直接写具体值(如
5、"test"),而不是变量名; - 输入列的名称是后续引用的关键,只要名称正确,就能在输出列或其他输入列的表达式中访问该列的值;
- FEEL语法中,常量的写法非常直接,字符串用双引号包裹,数字直接写,布尔值用
true/false。
内容的提问来源于stack exchange,提问作者Shubham Verma
相关产品推荐
相关产品推荐

