activiti 中的签收与委托 操作

时间:2023-03-05 09:02:02

原文:http://my.oschina.net/acitiviti/blog/350957

先看看activiti中关于TASK的数据库表:

其中有两个字段:OWNER_,ASSIGNEE_

这两个字段的意义是:

1,ASSIGNEE_(受理人):task任务的受理人,就是执行TASK的人,这个又分两种情况(有值,NULL)

1),有值的情况:XML流程里面定义的受理人,TASK会直接填入这个人;

2),NULL:XML没有指定受理人或者只指定了候选组;

没有值的时候,可以使用签收功能去指定受理人,就是候选组里面谁签收谁就成了受理人:

Task task=taskService.createTaskQuery().singleResult();

//签收

taskService.claim(task.getId(), "billy");

logger.info(taskService.createTaskQuery().singleResult().getAssignee());

//结果:billy

2,OWNER_(委托人):受理人委托其他人操作该TASK的时候,受理人就成了委托人OWNER_,其他人就成了受理人ASSIGNEE_

Task task=taskService.createTaskQuery().singleResult();

//委托

taskService.delegateTask(task.getId(), "cc");

logger.info(taskService.createTaskQuery().singleResult().getOwner());

logger.info(taskService.createTaskQuery().singleResult().getAssignee());

//结果:owner是Billy,assignee是cc

assignee容易理解,主要是owner字段容易误解,owner字段就是用于受理人委托别人操作的时候运用的字段