1:分析业务,建立流程Process Definition(业务人员)(建模如:rose,EA)
2:开发人员:根据活动图建立JPDL流程定义
3:开发人员或者是系统管理员:部署流程(流程正式进入数据库-此刻)
4:开发人员:编写处理这个流程的代码
5:用户:发起流程实例(ProcessInstance来定义流程实例)
6:用户:审批流程
------------------------------------一个helloWorld----------入门实例--------------
package org.jbpm.test;
import java.util.List;
import org.jbpm.api.Configuration;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.RepositoryService;
import org.jbpm.api.TaskService;
import org.jbpm.api.task.Task;
import junit.framework.TestCase;
public class HelloTest extends TestCase {
// 获取引擎
public void deloy() {
// 获取JBPM工作流引擎
ProcessEngine processEngine = Configuration.getProcessEngine();
// 获取JBPM部署服务
RepositoryService repository = processEngine.getRepositoryService();
// 部署指定流程
repository.createDeployment().addResourceFromClasspath(
"conf/jbpm/hello.jpdl.xml").deploy();
}
// 创建流程实例
public void processInstance() {
ProcessEngine processEngine=Configuration.getProcessEngine();
//获取发起流程服务
ExecutionService executionService=processEngine.getExecutionService();
ProcessInstance processInstance=executionService.startProcessInstanceByKey("helloKey");
}
//获取对应人员的任务
public void getTask(){
ProcessEngine processEngine=Configuration.getProcessEngine();
TaskService taskService=processEngine.getTaskService();
List<org.jbpm.api.task.Task> list = taskService.findPersonalTasks("李四");
System.out.println(list.size());
Task task=list.get(0);
System.out.println(task.getActivityName()+"-"+task.getAssignee()+"-"+task.getId());
}
//查询当前流程实例所在节点
public void getCurrentActive(){
ProcessEngine processEngine=Configuration.getProcessEngine();
ExecutionService executionSerivce=processEngine.getExecutionService();
String activeName=executionSerivce.createProcessInstanceQuery().processInstanceId("helloKey.10001").uniqueResult().findActiveActivityNames().toString();
System.out.println("activeName="+activeName);
}
//完成任务
public void completeTask(){
ProcessEngine processEngine=Configuration.getProcessEngine();
TaskService taskService=processEngine.getTaskService();
taskService.completeTask("20001");
}
}