1.1與部署對象和流程定義相關的表mysql
act_re_deployment:部署數據表,一次部署能夠添加多個資源,資源會被保存到資源表(act_ge_bytearray)中;而部署的信息,則保存到部署表中。spring
act_re_procdef:流程定義表,若是發佈部署的文件是流程文件,除了將內容保存到資源表外,還會解析流程文件的內容,造成特定的流程定義數據,保存到此表中。sql
act_ge_bytearray:資源表,用來保存資源相應的信息ide
act_ge_property:用來生成下一個主鍵信息。字體
與流程實例,執行對象,任務相關的表spa
act_ru_execution:正在執行的流程實例表,當流程啓動後,會產生一個流程實例,同時會產生相應的執行流,那麼流程實例和執行流數據均會被保存到act_ru_execution表中。設計
act_hi_procinst:流程實例的歷時表,與act_ru_execution正好對應。對象
act_ru_task:正在執行的任務列表(只有任務節點(UserTask),該表中才有數據)ip
act_hi_actinst:全部活動的歷史表(包括全部的節點)
ci
與流程變量相關的表
act_ru_variable: 正在執行的流程變量表,用來保存在整個流程執行過程當中用到的變量信息
act_hi_varinst :歷史的流程變量表,與act_ru_variable正好對應
與組任務表相關的表
act_ru_identitylink :正在執行的組任務表
act_hi_identitylink:歷史的人員表
與組織結構相關的表
act_id_group :工做流中的角色表
act_id_user :工做流中的用戶表
act_id_membership:中間表,關聯關係表
以上就是大體的23張數據表,下面串起來,來把咱們的知識連成線。
下面就經過上面這個流程的例子,來把咱們上述的表給串起來。
首先是部署和流程相關方面的描述,上圖從開始到結束是一個完整的流程,因此就是所謂的一次部署act_re_deployment,而後在整個流程中,咱們可能會涉及到多個流程的文件,此時咱們會把文件存儲到act_ge_bytearray表中,而後把每一個文件的詳細信息存儲到act_re_procdef中。
部署完流程完後,就要開始執行咱們的流程了,從開始節點算起,每一個節點都是一個流程實例,正在執行的會存儲到act_ru_execution,執行完後,此表就會刪除,而後把歷史記錄存儲到act_hi_procinst。中間涉及到的用戶任務節點,也就是UserTask節點,歷史和正在執行的都會分別存儲到act_hi_actinst、act_ru_task中。若是在流程中間執行中,設計到變量的傳遞,好比咱們想把流程的執行者,做爲變量來傳遞的話,就會存儲到act_ru_variable和act_hi_varinst中。
最後,在整個流程執行過程當中,設計到人員的操做信息,存儲到act_id_user 中,若是設計到組的概念的話,那麼某個用戶是屬於某個組的,就比如工做裏面的部門同樣,某些職責只能某些部門來執行,所以在Activi中也涉及到了組的概念,存儲到act_id_group ,他們之間的聯繫用第三張表act_id_membership來關聯。
表的建立方法
2.1使用官方提供的sql文件
database文件下--create---
2.二、非spring狀況下 建立工做流引擎會自動建立表
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
2.3使用spring 可配置數據源是否建表
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource"><ref bean="dataSource"/></property>
<property name="transactionManager"><ref bean="transactionManager"/></property>
<property name="databaseType" value="mysql"></property>
<!-- 沒有表建立表 -->
<property name="databaseSchemaUpdate" value="true"/>
<!-- 是否激活Activiti的任務調度 -->
<property name="jobExecutorActivate" value="false"/>
<property name="processDefinitionCacheLimit" value="10"/>
<!-- 生成流程圖的字體 -->
<property name="activityFontName" value="宋體"/>
<property name="labelFontName" value="宋體"/>
</bean>