Jbpm 常用基础方法 相关编程接口

一 :JbpmContext类负责了对所有功能模块的管理

在Jbpm应用中,只需要:
JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
两条语句就可以配置好一切。

二:查找所有ProcessInstances

public void findAllProcessInstance() throws Exception { List processDefinitions = jbpmContext.getGraphSession().findAllProcessDefinitions(); for(int i = 0 ; i < processDefinitions.size();i++){ ProcessDefinition processDefinition = (ProcessDefinition)processDefinitions.get(i); long processDefinitionId = processDefinition.getId(); List processInstances = jbpmContext.getGraphSession().findProcessInstances(processDefinitionId); for(int j =0;j<processInstances.size();j++){ ProcessInstance processInstance = (ProcessInstance)processInstances.get(i); Collection taskInstances = processInstance.getTaskMgmtInstance().getTaskInstances(); TaskInstance taskInstance =(TaskInstance) taskInstances.iterator().next(); Map tvs = taskInstance.getVariableInstances(); if(tvs==null){ System.out.println("==task tvs is null=="); return; } Iterator it =tvs.entrySet().iterator() ; while(it.hasNext() ){ Map.Entry entry = (Map.Entry)it.next() ; System.out.println("==key is:"+entry.getKey().toString() +"=="); System.out.println("==value is:"+entry.getValue().toString() +"=="); } } } }

三:查找特定用户得任务列表

ublic void findByActorId(String actorId){ List processDefinitions = jbpmContext.getGraphSession().findAllProcessDefinitions(); for(int i = 0;i<processDefinitions.size();i++){ ProcessDefinition processDefinition = (ProcessDefinition)processDefinitions.get(i); long processDefinitionId = processDefinition.getId(); List processInstances =jbpmContext.getGraphSession().findProcessInstances(processDefinitionId); for(int j = 0;j<processInstances.size();j++){ ProcessInstance processIntance = (ProcessInstance)processInstances.get(j); System.out.println("processInstance is create in : " +processIntance.getStart().toString()); TaskMgmtSession taskMgmeSession = jbpmContext.getTaskMgmtSession(); List taskInstances = taskMgmeSession.findPooledTaskInstances(actorId); for(int m = 0;m<taskInstances.size();m++){ TaskInstance taskInstance = (TaskInstance)taskInstances.get(i); Map tvs = taskInstance.getVariableInstances(); if(tvs==null){ System.out.println("==task tvs is null=="); return; } Iterator it =tvs.entrySet().iterator() ; while(it.hasNext() ){ Map.Entry entry = (Map.Entry)it.next() ; System.out.println("==key is:"+entry.getKey().toString() +"=="); System.out.println("==value is:"+entry.getValue().toString() +"=="); } } } } }

四:删除一个processInstance

public void deleteProcessInstance(long processInstanceId){ //boolean flag = false; jbpmContext.getGraphSession().deleteProcessInstance(processInstanceId); System.out.println("delete processInstance Id is : " + processInstanceId); //return flag; }

五:判定用户登陆

public boolean checkUserValidate(String userName,String password) throws Exception{ boolean flag = false; Connection conn = jbpmContext.getConnection(); Statement stmt = conn.createStatement(); String sql = "select name_,password_ from jbpm_id_user where name_='"+userName+"'"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ if(rs.getObject("password_").equals("password")){ flag = true; }else{ flag = false; } } rs.close(); stmt.close(); conn.close(); return flag; }

六:挂起一个实例processInstance

public void userCancleProcessInstance(long processDefinitionId ) throws Exception { ProcessDefinition processDefinition = jbpmContext.getGraphSession().loadProcessDefinition(processDefinitionId); ProcessInstance processInstance = new ProcessInstance(processDefinition); /* * 挂起一个实例 */ processInstance.suspend(); Date end = new Date(); processInstance.setEnd(end); }

七 : 使用TaskController 原理介绍

UML图

实现方式:

public Map useTaskController(long processDefinitionId){ Map parameters = new HashMap(); ProcessDefinition processDefinition = jbpmContext.getGraphSession().loadProcessDefinition(processDefinitionId); ProcessInstance processInstance = new ProcessInstance(processDefinition); TaskInstance taskInstance = processInstance.getTaskMgmtInstance().createStartTaskInstance(); TaskController taskController = taskInstance.getTask().getTaskController(); if (taskController!=null) { List variableAccesses = taskController.getVariableAccesses(); Iterator iter = variableAccesses.iterator(); while (iter.hasNext()) { VariableAccess variableAccess = (VariableAccess) iter.next(); String mappedName = variableAccess.getMappedName(); Object value = taskInstance.getVariable(mappedName); parameters.put(mappedName, value); } } return parameters; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值