通过Rest接口创建Camunda-BPMN流程实例时日期类型变量转换报错问题及布尔类型变量规则咨询
解决Camunda BPMN流程实例中日期与布尔类型变量的传递问题
一、日期类型变量的正确构造方式
你遇到的转换错误,核心原因是Camunda对Date类型变量的格式要求比较严格——它需要符合带时区信息的ISO 8601标准格式,或者直接传递毫秒级时间戳。另外要注意,REST API里的类型字段需要用首字母大写的"Date",而非小写的"date"。
两种可行的JSON构造方案:
带时区的ISO 8601字符串格式
给日期字符串加上时区偏移(比如+00:00代表UTC时区,或者你所在的时区如+08:00),确保格式完整:{ "variables": { "stichtagFrist": { "value": "2021-09-08T00:00:00+00:00", "type": "Date" } } }毫秒级时间戳格式
直接传递日期对应的毫秒数(从1970-01-01T00:00:00 UTC开始计算),这种方式完全规避时区解析问题,尤其适合定时器事件场景:{ "variables": { "stichtagFrist": { "value": 1631040000000, "type": "Date" } } }
二、布尔类型变量的传递规则
布尔类型变量的传递逻辑很直观,遵循以下两点即可:
- 直接传递原生布尔值(
true或false,不要用字符串包裹) - 可以显式指定
type: "Boolean",也可以省略——Camunda会自动根据值的类型推断变量类型
示例JSON:
{ "variables": { "isApproved": { "value": true, "type": "Boolean" }, "isEnabled": { "value": false } } }
这样构造的请求就能让Camunda正确识别变量类型,不管是启动流程实例还是后续的定时器、节点逻辑,都能正常工作。
内容的提问来源于stack exchange,提问作者SNO
相关产品推荐
相关产品推荐

