JBPM4 基本流程

阅读更多

初学JBPM,简单总结基本的开发流程如下:

 

第1步、初始化ProcessEngine

ProcessEngine processEngine = new Configuration().buildProcessEngine();
 

第2步、获得RepositoryService,并读取资源,发布管理流程

RepositoryService repositoryService = processEngine.getRepositoryService();

//repositoryService.createDeployment().addResourceFromClasspath("leave.jpdl.xml").deploy();

ZipInputStream zis = new ZipInputStream(this.getClass().getResourceAsStream("/leave.zip"));

repositoryService.createDeployment()
			.addResourcesFromZipInputStream(zis).deploy();

 

第3步、获得ExecutionService,并调用其startProcessInstanceBy***()方法启动一个流程实例

ExecutionService executionService = processEngine
			.getExecutionService();

//可提供参数:
Map map = new HashMap();
	
map.put("owner",(String)session.getAttribute("userName"));

//也可使用variables提供变量,variables在流程创建和启动时使用
//Map variables
//executionService.setVariable(variables);//设置流程变量。

executionService.startProcessInstanceById(id, map);

 

第4步、IdentityService对象向的方法可向流程中添加参与者,用户组,用户组与参与者的对应

 

第5步、TaskService对象 获取参与者的任务列表 

List listTasks=taskService.getTask(taskId);
task=listTasks.get(0);
String taskId = task.getId();

 

第6步、调用TaskService的completeTask方法,根据taskId执行任务(可选:可调用setVariables方法设置参数):

//设置参数
Map map = new HashMap();
map.put("day",day);
map.put("reason",reason);
ts.setVariables(taskId,map);

//执行任务
ts.completeTask(taskId);

 

PS:利用Query方法获得各种所需列表的例子:

//流程定义List
List pdList = repositoryService.createProcessDefinitionQuery().list();

//流程实例List
List piList = executionService.createProcessInstanceQuery().list();

//任务List
List taskList = taskService.findPersonalTasks(userName);

//历史流程实例List
List historyList = processEngine.getHistoryService().createHistoryProcessInstanceQuery().list();
	
 

 

你可能感兴趣的:(JBPM,XML)