flowable实战(四)flowable任务实例管理接口

一、任务的管理功能主要有:

1.任务办理模式分两种(一家公司最好约定好需要不要签收模式,统一操作模式),一种直接办理模式,一种需要签收后再办理,所以分为:

    候选人的任务签收/候选组的任务签收/完成任务

2.转办任务

3.委派任务与代办任务

4.待办任务列表(不要签收的或者已签收未办理的)

5待办签收列表

6.抄送任务

7.终止任务(这个功能放到流程实例中)

8.催办任务

9.退回上一步(即驳回),退回到(历史某一个节点)

10.超时自动跳转完成

11.任务按业务类型划分:用户任务/服务任务/定时任务/会签任务/并行网关任务/排他网关任务

12.获取下一个节点集合(一个或者多个),获取节点名称,节点配置的用户/候选人员/候选组。

二、主要接口有:

1.候选人待签收任务列表:List<Task> tasks = taskService.createTaskQuery().taskCandidateUser(userId).list();

2.候选组待签收任务列表: List<Task> tasks = taskService.createTaskQuery().taskCandidateGroup(userGroup).list();

3.签收动作:taskService.claim(task.getId(), userId);//完成签收这个时候就任务Task的Assignee属性就有了值

4.已经签收过的任务列表,某种意义上才有真正的办理人List<Task> tasks = taskService.createTaskQuery().taskAssignee(userId).list();

5.完成任务

未签收/待办理 中取得需要办理的任务Task之后 

 //调用 task.getId() = taskId 完成任务的办理,taskService服务自动流转到下一个办理节点

 taskService.complete(task.getId());

 //taskService.complete()方法 提供了重载,提供了3种方式供你选择

 complete(String taskId)

 complete(String taskId, Map<String,Object> variables)  

 complete(String taskId, Map<String,Object> variables, boolean localScope) 

6.任务并不一定要先签收再办理,可以直接到待办理中,而不是待签收中

 可以把

 taskService.claim(task.getId(), userId);方法

 替换为

 setAssignee(String taskId, String userId) 

 经过以上步骤,任务已经在 办理中状态了

10.转办任务

taskService.setOwner(taskId, curUserId);
taskService.setAssignee(taskId,acceptUserId );

11.委派任务:是将任务节点分给其他人处理,等其他人处理好之后,委派任务会自动回到委派人的任务中

taskService.setOwner(taskId, curUserId);
taskService.delegateTask(taskId,acceptUserId);

12.被委派任务的办理:   办理完成后,委派任务会自动回到委派人的任务中

taskService.resolveTask(taskId, variables);

 

 

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Flowable支持多实例任务,即在流程中可以创建多个相同类型的任务,并分配给不同的执行人或候选人。在Flowable中,多实例任务可以使用多种方式进行分发,例如: 1. 顺序分发:按照指定的顺序将任务分配给不同的执行人或候选人。这种方式适用于需要按照固定顺序逐一执行任务的场景。 2. 并行分发:将任务同时分配给多个执行人或候选人,让他们并行执行任务。这种方式适用于需要同时处理多个任务的场景。 3. 动态分发:根据流程变量或其他条件动态地将任务分配给不同的执行人或候选人。这种方式适用于需要根据流程上下文动态调整任务分配的场景。 在Flowable中,可以使用以下方式配置多实例任务的分发方式: 1. 使用SequentialMultiInstanceBehavior配置顺序分发。 2. 使用ParallelMultiInstanceBehavior配置并行分发。 3. 使用DelegateExpression或者JavaDelegate配置动态分发。 例如,下面是一个使用ParallelMultiInstanceBehavior配置并行分发的示例代码: ```xml <userTask id="parallelTask" name="Parallel Task" activiti:candidateUsers="${users}"> <multiInstanceLoopCharacteristics isSequential="false" activiti:collection="${collection}"> <completionCondition>${nrOfCompletedInstances/nrOfInstances >= 0.6}</completionCondition> <parallelMultiInstanceBehavior /> </multiInstanceLoopCharacteristics> </userTask> ``` 这个示例中,用户任务parallelTask会被分配给activiti:candidateUsers和activiti:collection中指定的多个用户或实体,并使用ParallelMultiInstanceBehavior进行并行分发。同时,使用completionCondition指定了任务完成的条件,即当完成任务的数量达到总任务数的60%时,该任务就会被标记为完成。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值