该案例模拟了标准运行环境中,基于关系型数据库的jBPM系统是如何执行流程的。
测试案例类:FirstFlowProcessDBTest.java
相对于简单流程测试案例,标准流程的业务是相同的。它们的不同点在于:简单流程通过XML载入流程定义,并使用类的全局变量来保存流程实例的引用;而标准流程则是通过数据库载入流程定义,并使用数据库的会话来维护流程的运行。
1. 从数据库载入流程定义
从jBPM配置环境中获取jBPM上下文实例,jbpmContext是对jbpm持久层操作API及上下文环境的封装,它根据jBPM的配置文件生成。
生成对流程图操作的持久层会话
从数据库获取命名为“simple”的流程定义。
2. 新建流程实例,并存入数据库持久化
根据流程定义生成实例。
设置实例的上下文变量,激活实例执行进程。
保存实例到数据库,持久化实例。
3. 从数据库获取属于指定操作者的任务集
通过JbpmContext对象,从数据库获取指定操作者的任务集合:
注意,在每次的JbpmContext对象使用完毕后,一定要执行jbpmContext.close(),其本质是要释放数据库的操作连接。