jbpm4.4生成18张数据库表

                                            jbpm4.4生成18张数据库表


作者:Vashon

时间:20151213


一. 准备jBPM4.4的开发环境

1.1.  添加jBPM4.4的jar包

1.1.1.  ${JBPM_HOME}/jbpm.jar(核心包)

1.1.2.   JBPM_HOME/lib/*.jar,不添加以下jar包:servlet-api.jar, junit.jar。其中junit.jar一定不要添加,因为是3.8.2版本,与我们使用的junit4有冲突。

1.1.3.   所使用的数据库对应的驱动的jar包(第2步所添加的jar包中已包含mysql的jdbc驱动jar包)。

二、  添加并定制配置文件

2.1、jbpm.cfg.xml、

2.2、logging.properties、//要注意版本的问题,接口和实现类要相同版本

2.3、jbpm.hibernate.cfg.xml。


jbpm.cfg.xml配置信息如下:
<?xml version="1.0" encoding="UTF-8"?>

<jbpm-configuration>

  <import resource="jbpm.default.cfg.xml" />
  <import resource="jbpm.businesscalendar.cfg.xml" />
  <import resource="jbpm.tx.hibernate.cfg.xml" />
  <import resource="jbpm.jpdl.cfg.xml" />
  <import resource="jbpm.bpmn.cfg.xml" />
  <import resource="jbpm.identity.cfg.xml" />

  <!-- Job executor is excluded for running the example test cases. -->
  <!-- To enable timers and messages in production use, this should be included. -->
  <!--
  <import resource="jbpm.jobexecutor.cfg.xml" />
  -->

</jbpm-configuration>

jbpm.hibernate.cfg.xml配置信息如下:

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
	<session-factory>
		<!-- Oracle11g数据库信息org.hibernate.dialect.Oracle10gDialect -->	
		<!-- 
		<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
		<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
		<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:ORCL</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>
		-->
		<!-- mysql数据库信息 -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql:///jbpm4</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>

		<!-- 其他配置 -->
		<property name="hibernate.hbm2ddl.auto">update</property>

		<!-- 导入映射文件 -->
		<mapping resource="jbpm.repository.hbm.xml" />
		<mapping resource="jbpm.execution.hbm.xml" />
		<mapping resource="jbpm.history.hbm.xml" />
		<mapping resource="jbpm.task.hbm.xml" />
		<mapping resource="jbpm.identity.hbm.xml" />

	</session-factory>
</hibernate-configuration>

三、HelloWorld后台测试:

package jbpm.test;

import java.util.List;

import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.task.Task;
import org.junit.Test;


public class Helloworld {
	    // 建表
		@Test
		public void createSchema() throws Exception { // hbm2ddl.auto=update
			new org.hibernate.cfg.Configuration()//
					.configure("jbpm.hibernate.cfg.xml")//
					.buildSessionFactory();
		}

		private static ProcessEngine processEngine = new Configuration()//
				.setResource("jbpm.cfg.xml")//
				.buildProcessEngine();

		// 1,部署流程定义
		@Test
		public void deployProcessDefintion() throws Exception {
			processEngine.getRepositoryService()//
					.createDeployment()//
					.addResourceFromClasspath("helloworld/helloworld.jpdl.xml")//
					.addResourceFromClasspath("helloworld/helloworld.png")//
					.deploy();
		}

		// 2,启动流程实例
		@Test
		public void startProcessInstance() throws Exception {
			processEngine.getExecutionService().startProcessInstanceByKey(
					"helloworld");
		}

		// 3,查询我的个人任务列表
		@Test
		public void findMyPersonalTaskList() throws Exception {
//			String userId = "员工";
//			 String userId = "部门经理";
			 String userId = "总经理";

			// 查询
			List<Task> taskList = processEngine.getTaskService().findPersonalTasks( userId);

			// 显示
			System.out.println("============= 【" + userId + "】的个人任务列表 ============");
			for (Task task : taskList) {
				System.out.println("id=" + task.getId()//
						+ ", name=" + task.getName()// 任务名称
						+ ", assignee=" + task.getAssignee()); // 办理人
			}
		}

		// 4,办理任务
		@Test
		public void completeTask() throws Exception {
			String taskId = "30001";
			processEngine.getTaskService().completeTask(taskId);
		}
}

四、先运行createSchema()的Junit方法生成数据库表,结果如下:


jbpm4.4生成18张数据库表_第1张图片


注:以上是配置生成在Mysql中的jbpm数据库表,如果要生成在Oracle则修改下数据库配置信息即可。

补充:在生成oracle数据库表示会存在问题,解决方案见:http://blog.csdn.net/yangwenxue_admin/article/details/50282741






你可能感兴趣的:(jbpm4.4生成18张数据库表)