第一步:建立所有的jbpm表以及公文表
Jbpm_01_CreateSchema.java类
package com.jbpm; import org.jbpm.JbpmConfiguration; import org.junit.Test; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class Jbpm_01_CreateSchema { private Log logger = LogFactory.getLog(Jbpm_01_CreateSchema.class); private JbpmConfiguration jbpmConfig = JbpmConfiguration.getInstance(); @Test public void testCreateSchema(){ jbpmConfig.createSchema(); } }
执行此测试类后,查询数据库,得到下面所有的jbpm表,以及自定义的公文表:
第二步:测试jbpm根据流程文件发布流程,流程文件process.xml文件如下,直接复制吧,自己写也没什么意思:
<?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="文档测试流程" > <start-state name="开始"> <transition name="提交张三审批" to="张三审批"></transition> </start-state> <task-node name="张三审批"> <task name="审批1"> <assignment actor-id="张三" /> </task> <transition name="提交李四审批" to="李四审批"></transition> </task-node> <task-node name="李四审批"> <task name="审批2"> <assignment actor-id="李四" /> </task> <transition name="提交王五审批" to="王五审批"></transition> </task-node> <task-node name="王五审批"> <task name="审批3"> <assignment actor-id="王五" /> </task> <transition name="流程结束" to="结束"></transition> </task-node> <end-state name="结束"></end-state> </process-definition>
Jbpm_02_DeployProcessDefinition.java类
package com.jbpm; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jbpm.JbpmConfiguration; import org.jbpm.JbpmContext; import org.jbpm.graph.def.ProcessDefinition; import org.junit.Test; public class Jbpm_02_DeployProcessDefinition { private Log logger = LogFactory.getLog(Jbpm_02_DeployProcessDefinition.class); private JbpmConfiguration jbpmConfig = JbpmConfiguration.getInstance(); @Test public void testDeployProcessDefinition(){ JbpmContext context = jbpmConfig.createJbpmContext(); ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("process.xml"); context.deployProcessDefinition(processDefinition); //这个地方一定要记得关闭context,否则事务有可能不会提交 context.close(); } }
执行此类后,查询jbpm_node表,得到如下内容:
第三步: