activities工作流之流程任务及监听器

本文介绍了工作流引擎中的任务类型和个人任务、公共任务、接收任务的操作方法,并详细解释了如何使用ProcessEngine进行公共任务的查询、拾取及退回,以及接收任务的执行方式。此外,还探讨了流程监听器的实现,包括自定义监听器和注册流程实例监听器及任务监听器的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ProcessEngine pe = ProcessEngines.getDefaultProcessEngine();

一、流程任务类型
①.个人任务
由某一个负责办理,在任务表中通过assignee字段记录
②.公共任务(又称组任务)
当前的任务可以由多个人办理,一个人办理即可流转至下一个环节
③.接收任务
接收任务不是由某个人负责办理,通过signal方法让流程执行的
二、任务操作
①.公共任务查询

TaskQuery query = pe.getTaskService().createTaskQuery();
String candidateUser = "李四";
//根据候选人过滤
query.taskCandidateUser(candidateUser);
List<Task> list = query.list();
for (Task task : list) {
	System.out.println(task.getName());
}

②.拾取公共任务(即将公共任务变为个人任务)

String taskId = "1602";
String userId = "王五";
pe.getTaskService().claim(taskId , userId);

③.退回任务到公共任务列表

String taskId = "1602";
pe.getTaskService().setAssignee(taskId , null);

④.接受任务(接收任务不是由某个人负责办理,通过signal方法让流程执行的)

String executionId = "2101";
pe.getRuntimeService().signal(executionId );

三、流程监听器
①.流程实例监听器(监听流程实例的事件)
(1)自定义流程实例监听器

public class MyExecutionListener implements ExecutionListener {
	//当监听的事件发送时执行此方法
	public void notify(DelegateExecution execution) throws Exception {
		System.out.println("自定义的监听器执行了。。。1");
	}
}

(2)注册流程实例监听器
在流程开始任务或者结束任务节点,画流程图时,选择listener的class对象
②.任务监听器(监听流程中的任务,即监听某个待办节点)
(1)自定义流程实例监听器

public class MyTaskListener implements TaskListener{
	//监听任务的事件
	public void notify(DelegateTask delegateTask) {
		String assignee = delegateTask.getAssignee();
		String eventName = delegateTask.getEventName();
		String name = delegateTask.getName();
		String processInstanceId = delegateTask.getProcessInstanceId();
		Set<String> variableNames = delegateTask.getVariableNames();
		for (String key : variableNames) {
			Object value = delegateTask.getVariable(key);
			System.out.println(key + " = " + value);
		}
		System.out.println("一个任务["+name+"]被创建了,由["+assignee+"]负责办理");
	}
}

(2)注册流程任务监听器
在流程任务节点,画流程图时,选择listener的class对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值