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

如何在Camunda中实现日期校验并获取返回的结果

Camunda日期校验结果获取实操方案

第一步:配置日期校验逻辑的输出变量

在Camunda中做日期校验,不管是使用脚本任务、业务规则任务(DMN)还是执行监听器/任务监听器,都需要先把校验结果存储为流程变量:

  • 如果使用Groovy/JS等脚本写校验逻辑,示例代码如下:
// 入参:待校验的日期变量targetDate,支持Date类型或ISO标准日期字符串
def currentDate = new Date()
def checkPass = targetDate.after(currentDate)
// 核心配置:将校验结果存入流程变量,变量名可自定义,此处用dateCheckResult
execution.setVariable("dateCheckResult", checkPass)
// 可额外新增结果说明变量,方便后续业务使用
execution.setVariable("dateCheckMsg", checkPass ? "日期校验通过" : "指定日期早于当前日期,校验不通过")
  • 如果使用DMN规则做校验,直接在DMN输出列定义结果变量,将输出名称设置为dateCheckResult即可,Camunda会自动把DMN执行结果存储为流程变量。

第二步:不同场景下获取校验结果的方案

场景1:流程内后续节点使用校验结果

直接在后续的排他网关、任务的条件表达式中调用对应变量即可,比如排他网关的分支条件配置为${dateCheckResult == true},流程就会自动走向校验通过的分支。

场景2:外部系统调用后获取校验结果

如果是外部系统通过Rest API触发校验,触发完成后直接调用流程实例变量接口即可获取结果:

  • 如果是同步触发单次校验(使用单实例、或立即执行的校验节点),调用POST /runtime/process-instances/{processInstanceId}/variables接口即可返回所有流程变量,直接提取dateCheckResult的值即可。
  • 如果使用外部任务模式做校验,完成外部任务时可以直接在返回体中携带校验变量,也可以后续主动查询流程变量获取结果。

常见问题排查

  • 确认校验逻辑中定义的变量名和获取时使用的变量名完全一致,无拼写错误
  • 如果是在监听器中写的校验逻辑,确认监听器的触发时机符合业务要求(比如任务创建时、执行进入节点时),避免出现变量未赋值就提前提取的情况

相关参考截图:
校验规则配置截图
变量配置截图
网关条件配置截图
接口返回结果示例截图

内容的提问来源于stack exchange,提问作者Erfan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:57:04