activiti中,在有流程变量的抢矿下taskService.complete(task,map)只走多个子节点的原因
时间: 2024-01-24 07:18:28 浏览: 146
activiti工作流linux系统下流程图中文显示不正常解决.docx
在Activiti中,当一个任务节点有多个出线时,它会根据流程变量的值来决定走哪一条出线。如果流程变量的值与某个出线的条件匹配,那么就会沿着这条出线继续执行。如果流程变量的值与多个出线的条件都匹配,那么会走所有匹配的出线,也就是会进入多个子节点。
在使用`taskService.complete(task, map)`完成任务时,如果这个任务节点有多个出线,那么它会按照上述规则走多个子节点。这是Activiti的默认行为,无法通过`taskService.complete(task, map)`来控制只走一个子节点。
如果需要控制只走一个子节点,可以在流程设计时使用排他网关(Exclusive Gateway),在排他网关的条件中使用流程变量来控制只走一个子节点。这样在执行`taskService.complete(task, map)`时,只会沿着符合条件的出线继续执行,只走一个子节点。
阅读全文