Jbpm 常用基础方法 相关编程接口
2010-11-15 09:12
411 查看
一 :JbpmContext类负责了对所有功能模块的管理
在Jbpm应用中,只需要:
JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
两条语句就可以配置好一切。
二:查找所有ProcessInstances
三:查找特定用户得任务列表
四:删除一个processInstance
五:判定用户登陆
六:挂起一个实例processInstance
七 : 使用TaskController 原理介绍
实现方式:
在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 原理介绍
实现方式:
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; }
相关文章推荐
- Java基础——继承+子父类相关特点+Final关键字+抽象类+模板方法设计模式+接口
- 工作流JBPM常用方法与接口
- Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API
- Hibernate核心接口(包括接口的常用方法)和工作原理
- java函数式编程之接口Default方法<五>
- cmd常用命令 和 sql server相关基础
- 套接口编程基础
- 几种常用编程语言的编程思想和方法 转
- Javascript中字符串相关常用的使用方法总结
- 【C_C++】常用基础编程技巧
- C#编程技巧之常用文件名、路径处理方法(ZT)
- OC基础第四讲--字符串、数组、字典、集合的常用方法
- 相关的连接与操纵数据库的编程方法之ADO连接access数据库
- iPhone开发通讯录相关常用方法
- SERVLET类常用接口及方法
- 深度学习基础模型算法原理及编程实现--04.改进神经网络的方法
- jQuery常用方法(一)-基础
- java 基础常用的 方法
- UG OPEN API编程基础 4部件文件的相关操作
- JQuery 常用方法基础教程