You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Camunda Modeler中如何在输出列访问常量列的值?

问题分析与解决

错误原因

你当前的核心问题是常量列的表达式配置错误:
你把constant列的表达式写成了constant,Camunda会将其解析为「需要从输入变量中读取名为constant的值」,但你的请求里并没有传入这个变量,因此触发no variable found for name 'constant'错误。

正确实现方案

方案1:定义可复用的常量输入列(适合多输出列复用常量)

  1. 在Camunda Modeler的决策表输入列中添加一行,配置如下:
    • 列名称:fixedConstant(自定义,后续用来引用)
    • 表达式:直接写常量值,比如5(FEEL语法中,直接写数字就是常量)
    • 数据类型:Number
  2. 在输出列中,将计算表达式改为:
    fixedConstant * payload.num
    
    这里的fixedConstant就是你刚才定义的输入列名称,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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 18:30:10