Activiti 數據庫表格

Activiti 23張表的詳解

一、表格的創建

  1.1使用代碼創建23張表
/**
	 * 使用代碼創建工作流需要的23張表
	 * */
	@Test
	public void createTable(){
		ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
		//連接數據庫的配置
		processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");//數據庫驅動
		processEngineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3306/activitidemo?useUnicode=true&characterEncoding=utf8");//數據庫連接地址
		processEngineConfiguration.setJdbcUsername("root");//賬號
		processEngineConfiguration.setJdbcPassword("123456");//密碼
		
		/**
		 * public static final String DB_SCHEMA_UPDATE_FALSE = "false";不能自動創建表,需要表存在
		 * public static final String DB_SCHEMA_UPDATE_CREATE_DROP = "create-drop";先刪除表再創建表
		 * public static final String DB_SCHEMA_UPDATE_TRUE = "true";如果表不存在,自動創建表	
		 */
		processEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
		//工作流的核心對象,ProcessEnginee對象
		ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();
		System.out.println("processEngine:"+processEngine);
	}
1.2使用配置文件創建23張表

  創建配置文件aciviti.cfg.xml 在配置文件中構造ProcessEngineConfiguration流程配置對象,給對象的具體屬性賦值,這裏面使用的Spring的

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
	<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
		<!-- 連接數據的配置 -->
		<property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property>
		<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activitidemo?useUnicode=true&characterEncoding=utf8"></property>
		<property name="jdbcUsername" value="root"></property>
		<property name="jdbcPassword" value="123456"></property>
		<!-- 沒有表創建表 -->
		<property name="databaseSchemaUpdate" value="true"></property>
	</bean>

</beans>
/**使用配置文件創建工作流需要的23張表*/
	@Test
	public void createTable_2(){
		ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml")	//
									.buildProcessEngine();
		System.out.println("processEngine:"+processEngine);
	}

這裏通過讀取配置文件中的配置,創建數據庫,以及流程引擎實例。(創建的形式還有很多種,可以通過讀他的源碼來選擇合適的創建方式)




Activiti的後臺是有數據庫的支持,所有的表都以ACT_開頭。 第二部分是表示表的用途的兩個字母標識。用途也和服務的API對應,所有的流程操作數據都是在這些表中存儲。

二、數據庫的含義

Activiti 23 張表格中,可以大致的分爲這幾種,每一種的含義不同,在流程中根據業務使用不同的表。各個表之間也是通過主外鍵關聯。

ACT_RE_*: 'RE'表示repository。 這個前綴的表包含了流程定義和流程靜態資源(圖片,規則,等等)。

ACT_RU_*: 'RU'表示runtime。 這些運行時的表,包含流程實例,任務,變量,異步任務,等運行中的數據。 Activiti只在流程實例執行過程中保存這些數據,在流程結束時就會刪除這些記錄。 這樣運行時表可以一直很小速度很快。

ACT_ID_*: 'ID'表示identity。 這些表包含身份信息,比如用戶,組等等。

ACT_HI_*: 'HI'表示history。 這些表包含歷史數據,比如歷史流程實例,變量,任務等等。

ACT_GE_*: 通用數據, 用於不同場景下,如存放資源文件。

 

表結構操作:

2.1:資源庫流程規則表

1)       act_re_deployment        部署信息表

2)       act_re_model               流程設計模型部署表

3)       act_re_procdef             流程定義數據表

2.2:運行時數據庫表

1)       act_ru_execution           運行時流程執行實例表

2)       act_ru_identitylink        運行時流程人員表,主要存儲任務節點與參與者的相關信息

3)       act_ru_task                   運行時任務節點表

4)       act_ru_variable             運行時流程變量數據表

2.3:歷史數據庫表

1)       act_hi_actinst               歷史節點表

2)       act_hi_attachment          歷史附件表

3)       act_hi_comment            歷史意見表

4)       act_hi_identitylink         歷史流程人員表

5)       act_hi_detail                 歷史詳情表,提供歷史變量的查詢

6)       act_hi_procinst              歷史流程實例表

7)       act_hi_taskinst       歷史任務實例表

8)       act_hi_varinst               歷史變量表

2.4:組織機構表

1)    act_id_group           用戶組信息表

2)    act_id_info              用戶擴展信息表

3)    act_id_membership  用戶與用戶組對應信息表

4)    act_id_user             用戶信息表

這四張表很常見,基本的組織機構管理,關於用戶認證方面建議還是自己開發一套,組件自帶的功能太簡單,使用中有很多需求難以滿足

2.5:通用數據表

1)    act_ge_bytearray          二進制數據表

2)    act_ge_property            屬性數據表存儲整個流程引擎級別的數據,初始化表結構時,會默認插入三條記錄,


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章