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<String,Object> variables
//executionService.setVariable(variables);//设置流程变量。

executionService.startProcessInstanceById(id, map);

 

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

 

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

List<Task> 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<ProcessDefinition> pdList = repositoryService.createProcessDefinitionQuery().list();

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

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

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值