首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

JBPM4 根本流程

2012-09-06 
JBPM4 基本流程初学JBPM,简单总结基本的开发流程如下:?第1步、初始化ProcessEngineProcessEngine processEn

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方法获得各种所需列表的例子:

//流程定义ListList<ProcessDefinition> pdList = repositoryService.createProcessDefinitionQuery().list();//流程实例ListList<ProcessInstance> piList = executionService.createProcessInstanceQuery().list();//任务ListList<Task> taskList = taskService.findPersonalTasks(userName);//历史流程实例ListList<HistoryProcessInstance> historyList = processEngine.getHistoryService().createHistoryProcessInstanceQuery().list();
?

?

1 楼 HWlail 2012-04-28   第一步出现 java.lang.NullPointerException  打印Configuration 有值 LZ 怎么解决

热点排行