如何在Camunda 7控制台添加集合/数组变量
解决Camunda 7控制台无法添加集合变量的问题
以下是控制台直接添加集合变量的关键步骤和排查点,针对并行多实例任务配置场景:
1. 严格遵循控制台集合变量的输入规范
Camunda控制台对集合变量的输入有严格格式要求,必须匹配所选的Java类型:
- 选择具体的集合实现类:不能选
java.util.List接口,必须选java.util.ArrayList这类可实例化的实现类 - 值的格式必须是标准JSON数组:
- 字符串元素必须用双引号包裹:
["user1", "user2", "user3"] - 数字元素直接写:
[1001, 1002, 1003] - 空集合写为
[],不能留空或写其他格式 - 注意不要有多余的逗号(比如数组末尾不能加逗号)
- 字符串元素必须用双引号包裹:
2. 排查序列化配置问题
Tomcat部署的Camunda默认使用Jackson序列化变量,若序列化配置异常会导致集合解析失败:
- 检查
camunda.cfg.xml中的序列化配置,确保没有自定义序列化器覆盖默认的集合处理逻辑 - 确认Tomcat/lib目录下的Jackson依赖版本与Camunda兼容(Camunda 7.18+通常依赖Jackson 2.13.x,版本不匹配会引发序列化错误)
3. 验证控制台输入的变量是否符合要求
如果不确定格式是否正确,可以先通过Camunda REST API测试:
发送POST请求到/engine-rest/process-definition/key/{processKey}/start,请求体示例:
{ "variables": { "myParallelList": { "value": ["taskA", "taskB"], "type": "ArrayList" } } }
如果API能成功启动流程并传入变量,说明控制台的输入操作有误,或者当前Camunda版本的控制台存在UI校验bug
4. 检查Camunda版本
部分旧版本Camunda 7的控制台存在集合变量输入的bug(比如7.14及更早版本),建议升级到7.16+的稳定版本,这类问题在新版本中已修复
内容的提问来源于stack exchange,提问作者electrocrat
相关产品推荐
相关产品推荐

