需求描述:
流程发起时需要由A和B共同审批,两人审批都通过之后交由C审批,当C审批驳回后,进入流程修改环节,再次提交后重新由A和B共同审批。
第一版本的流程图画法:第一个并行网关分别对应了流出的两条分支A和B,加上一个修改的流入分支;这样的画法是错误的,流程发起后流程只会走到第一个并行网关处,不会走到A和B节点。
解决方式一
需要在并行网关前面加一个服务任务节点。
添加之后不管是首次发起流程还是修改之后重新提交,流程都会重新流转至A和B。
对于服务任务节点的配置我这里只配置了监听类就可满足业务需求,其他的相关配置可自行查找使用。
监听类的写法也比较简单,这块也记录一下:
public class MyServiceTask implements JavaDelegate {
@Override
public void execute(DelegateExecution execution) throws Exception {
System.out.println("服务节点对应的类自动执行了!!!");
}
}
解决方式二
在并行网关前面加一个手工任务节点。
手工任务主要用来表示工作需要某人完成,而引擎不需要知道,手工任务是直接通过的活动, 流程到达它之后会自动向下执行。
有关活动列表中各个任务的解释可参考:activity任务类型