140. System.out.println(\sks()==\
141. JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
142. try{
143. List
145. for(TaskInstance ti : coll){
146. System.out.println(\=\
147. System.out.println(\+\
148. System.out.println(\().toString() +\149. }
150. System.out.println(\151. }finally{
152. jbpmContext.close(); 153. } 154. } 155. }
相对于简单流程测试案例,标准流程的业务是相同的。它们的不同点在于:简单流程通过XML载入流程定义,并使用类的全局变量来保存流程实例的引用;而标准流程则是通过数据库载入流程定义,并使用数据库的会话来维护流程的运行。
1. 从数据库载入流程定义 Java代码
1. JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext(); ? 从jBPM配置环境中获取jBPM上下文实例,jbpmContext是对jbpm持久层操作API及上下文环境的封装,它根据jBPM的配置文件生成。 ?
Java代码
1. GraphSession graphSession = jbpmContext.getGraphSession(); 生成对流程图操作的持久层会话 ?
Java代码
1. ProcessDefinition pdf = graphSession.findLatestProcessDefinition(\从数据库获取命名为“simple”的流程定义。
2. 新建流程实例,并存入数据库持久化 ?
Java代码
1. ProcessInstance pi = pdf.createProcessInstance(); 根据流程定义生成实例。 ?
Java代码
1. pi.getContextInstance().createVariable(\2. pi.signal();
设置实例的上下文变量,激活实例执行进程。 ?
Java代码
1. jbpmContext.save(pi);
保存实例到数据库,持久化实例。
3. 从数据库获取属于指定操作者的任务集 Java代码
1. JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext(); 2. try{
3. List
4. for(TaskInstance ti : taskInstances){
5. System.out.println(\
6. System.out.println(\7. if(pass){
8. ti.end(\部门经理审批通过\9. }else{
10. ti.end(\部门经理驳回\11. } 12. }
13.}finally{
14. jbpmContext.close(); 15.}
通过JbpmContext对象,从数据库获取指定操作者的任务集合: Java代码
1. List
注意,在每次的JbpmContext对象使用完毕后,一定要执行jbpmContext.close(),其本质是要释放数据库的操作连接。
(全文完)
FirstFlow样例代码.rar (85.9 KB)
? 描述: jBPM Eclipse源码工程包(由于附件大小限制,去掉了lib中的jar包)修订过的 MySQL建库脚本 ? 下载次数: 5381
?