activiti操作之组任务与网关

组任务

组任务的存在是指定给特定的一批人去操作任务,例如班长审核,既可以是正班长,也可以是副班长,但是并没有指定某一个人,只要符合条件的都可以去拾取任务,然后完成任务。
在这里插入图片描述

a.查询组任务

		String assignee = "wang";
        String definitionKey = "calssAsk";
        String taskId = "e8714d9d-8148-11eb-8ede-e0d55e485056";

        // 任务查询
        List<Task> taskList = taskService.createTaskQuery()
                .processDefinitionKey(definitionKey)
                .taskCandidateUser(assignee).list();

b.拾取/归还任务

拾取任务的本质将任务负责人指定为拾取人,归还任务的本质是将任务负责人置为空。

 		// 拾取任务
        taskService.claim(taskId,"wang");
        // 归还任务
        taskService.setAssignee(taskId,null);

c.变更任务负责人

变更任务负责人本质是转办,将任务指定给办理人为负责人。

// 变更负责人
taskService.setAssignee(taskId,"chen");

d.完成任务

完成任务与之前一样。

 		String assignee = "wang";
        String definitionKey = "calssAsk";

        // 查询任务
        Task task = taskService.createTaskQuery()
                .taskAssignee(assignee)
                .processDefinitionKey(definitionKey)
                .singleResult();
        // 完成任务
        taskService.complete(task.getId());

网关

网关的目的是为了控制流程流向,它可以提供更精细的流程控制。

a.排它网关

当执行到排它网关时,会进行条件判断,如果为true,则会执行该分支。
注意:只会执行一个条件为true的分支,如果几个条件都为true,会执行id值较小的分支。
为什么使用排它网关?
排它网关能实现的通过条件判断一样可以实现,为什么需要采用排它网关?
使用连线条件判断:如果条件判断不满足任何一种条件,该流程直接结束(异常结束)
使用排它网关:抛出系统异常,方便定位解决。
例:填写班费使用申请的时候,花费超过100需要班长审批,不足100需要生活委员审批,就可以使用排它网关。

在这里插入图片描述

b.并行网关

分支:
为每一个流程都创建一个分支,且都会运行。即使定义了条件,系统也会忽略。
汇聚:
所有分支全部操作完成,才会进行到下一步。每个流程的最终结果汇聚到一起。
例:填写班费使用申请的时候,花费需要班长与生活委员同时审批同意才能走到下一步,可以使用并行网关。
在这里插入图片描述

c.包含网关

具有排它网关与并行网关共同的性质,既会判断条件进入流程,也会在分支汇聚点等待汇聚完成后进入下一个节点。
例如,一次申请费用超过100,需要班长与生活委员审批,不超过100需要生活委员与副班长审批,这种需求可以使用包含网关。
在这里插入图片描述

d.事件网关

什么是事件网关?
基于事件的网关,允许基于事件做选择。

事件网关的执行原理?
网关的每一条出口顺序流,都需要连接至一个捕获中间事件。当流程执行到达基于事件的网关时,网关类似等待状态地动作:执行被暂停。并且,为每一条出口顺序流,创建一个事件订阅。流程的走向完全是由于中间事件的选择。而由哪一个事件来决定流程的走向则是由最先触发的事件来决定的。

事件网关和其他网关的区别
请注意基于事件的网关,其出口顺序流与一般的顺序流不同。这些顺序流从不实际被执行。相反,它们允许流程引擎决定,当执行到达一个基于事件的网关时,需要订阅什么事件。
1.定时器事件
在这里插入图片描述
到达网关执行一个定时任务,通过cron表达式配置周期执行条件。
2.消息事件
在流程定义里面定义一个消息事件,并在消息事件里面去引用。
在这里插入图片描述

3.信号事件
在流程里面定义新增一个信号引用,并在信号事件里面引用。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值