Task Node用来添加任务产生任务实例的。
一个Task Node可以定义多个任务。
1.新建一个名为nodetesk的流程模板,如下图
[img]http://dl.iteye.com/upload/attachment/454314/cda32873-122e-3683-a48c-49b8e1fc5bb7.jpg[/img]
2.为Task Node结点创建任务,并设定任务的分配方式,如下图
[img]http://dl.iteye.com/upload/attachment/454316/b0635065-9cf5-3725-bae5-74d3f2fb9dd5.jpg[/img]
3.任务分配示例
4.将该流程模版发布到数据库
5.测试
6.查看表jbpm_taskinstance是否已经成功地插入一条数据,如果成功,证明这条任务创建成功
7.Task Node节点的几个主要属性
signal:如果一个Task Node节点里产生了多个任务实例,可通过这个属性来设置怎样完成任务实例来影响流程的继续执行
create-tasks:当流程流转到Task Node时是否创建自动创建任务实例,默认值为true
end-tasks:默认为false,表示当流程实例流转到该Task Node上时,如果不通过结束该节点上对应的任务实例来使流程向下流转,而是直接调用该节点上对应的Token使流程向下流转,那么所有的任务实例状态不会改变。如果设为true,那么所有处于打开状态的任务实例都会被结束掉。
一个Task Node可以定义多个任务。
1.新建一个名为nodetesk的流程模板,如下图
[img]http://dl.iteye.com/upload/attachment/454314/cda32873-122e-3683-a48c-49b8e1fc5bb7.jpg[/img]
2.为Task Node结点创建任务,并设定任务的分配方式,如下图
[img]http://dl.iteye.com/upload/attachment/454316/b0635065-9cf5-3725-bae5-74d3f2fb9dd5.jpg[/img]
3.任务分配示例
package assignment;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.taskmgmt.def.AssignmentHandler;
import org.jbpm.taskmgmt.exe.Assignable;
/**
* 对TaskNode节点进行任务分配
*
*/
public class TestAssignment implements AssignmentHandler {
public void assign(Assignable assignable, ExecutionContext executionContext)
throws Exception {
assignable.setActorId("user1");
}
}
4.将该流程模版发布到数据库
5.测试
JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
try{
ProcessDefinition processDefinition = jbpmContext.getGraphSession().findLatestProcessDefinition("nodetest");
ProcessInstance processInstance = processDefinition.createProcessInstance();
Token token = processInstance.getRootToken();
token.signal();
System.out.println("当前流程所在的节点名为:"+token.getNode().getName());
}finally{
jbpmContext.close();
}
6.查看表jbpm_taskinstance是否已经成功地插入一条数据,如果成功,证明这条任务创建成功
7.Task Node节点的几个主要属性
signal:如果一个Task Node节点里产生了多个任务实例,可通过这个属性来设置怎样完成任务实例来影响流程的继续执行
create-tasks:当流程流转到Task Node时是否创建自动创建任务实例,默认值为true
end-tasks:默认为false,表示当流程实例流转到该Task Node上时,如果不通过结束该节点上对应的任务实例来使流程向下流转,而是直接调用该节点上对应的Token使流程向下流转,那么所有的任务实例状态不会改变。如果设为true,那么所有处于打开状态的任务实例都会被结束掉。