为什么要同时满足出线a,出线b的条件
时间: 2023-12-19 16:03:46 浏览: 82
在这个流程中,任务节点task1有两条出线a和b,它们的条件表达式分别为${param1 == 'A'}和${param2 == 'B'},其中a和b都是非排他关系。这意味着,当满足a或b的条件表达式时,都可以激活相应的出线,进入下一个任务节点。
如果只满足出线a的条件表达式${param1 == 'A'},那么只有出线a会被激活,进入任务节点task2,而出线b则不会被激活,无法进入排他网关进行选择。因此,必须同时满足出线a和出线b的条件表达式,才能激活出线b,进入排他网关进行选择。
因此,要同时满足出线a和出线b的条件表达式,才能进入排他网关进行选择,满足出线d1的条件表达式${param3 == 'D1'},进入任务节点task3。
相关问题
在activiti中一个任务节点有两个出线,一个出线A不设置条件,一个出线B设置条件,现在流程变量与出线B条件匹配,taskService.complete会走出线A么
是的,如果任务节点存在两个出线,其中一个出线设置了条件,而另一个出线没有设置条件,那么即使流程变量匹配了出线B的条件,也可能会走出线A。这是因为Activiti会优先选择没有条件的出线,如果没有任何一个出线满足条件,才会抛出异常。因此,如果想要保证流程一定会按照条件走出线B,应该将出线A的条件设置为不满足条件,或者将其删除。
在activiti中一个任务节点有两个出线,一个出线A不设置条件,一个出线B设置条件,现在流程变量符合出线B,次数taskService.complete会走出线A么
根据 Activiti 的默认行为,当一个任务节点有多个出线时,如果其中一个出线设置了条件,那么只有符合条件的出线才会被执行。因此,在你提到的情况下,如果流程变量符合出线B的条件,那么只会走出线B,不会走出线A。如果你希望同时走出线A和出线B,可以考虑使用网关来实现这个流程行为。例如,可以在任务节点后面添加一个并行网关,并将出线A和出线B连接到该网关上,这样当任务节点完成后,同时会走出线A和出线B,从而满足你的需求。
阅读全文