JBPM4.4简介(八)-Task与提交(转)
关于Task及其与Execution等之间的关系,我们在课堂上将做详细解析。
?
提交张三如果审批完成,他需要继续向下提交,下面是示例代码:
?????? //根据任务ID,完成此任务
?????? //任务被完成之后,将自动流转到下一个环节
?????? engine.getTaskService().completeTask("10002");
??????
?????? //任务被完成之后,下面的查询将无数据
?????? List<Task> tasks = engine.getTaskService().findPersonalTasks("张三");
?????? for(Task t:tasks){
?????????? System.out.println(t.getAssignee()+"手上有【"+t.getExecutionId()+"】等待:"+t.getActivityName());
?????? }
completeTask就是完成某个任务实例,我们在查询出某人有哪些任务实例之后,他就可以选择其中一个任务实例来完成(complete)。任务实例被完成之后,任务实例对象将被删除,并被转移到历史库中。
?
在张三提交完成之后,JBPM4_TASK表将变为:
?
你也可以到JBPM4_HIST_TASK表中查询有关刚才那个Task的历史信息(比如它的完成时间等信息)。
?
后续工作张三审批完成之后,我们可以继续用李四来查询其手上的任务列表,并结束任务对象;然后继续用王五来查询其手上的任务列表,并结束任务对象。
?
当所有环节都完成之后,流程实例对象及各种任务实例对象都会被删除,并被转移到历史库中。
大家可继续执行,直到执行结束!