Activiti工做流框架學習(一)——環境的搭建和數據表的瞭解

1、什麼是工做流

       工做流(Workflow),就是「業務過程的部分或總體在計算機應用環境下的自動化」,它主要解決的是「使在多個參與者之間按照某種預約義的規則傳遞文檔、信息或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現」。html

       工做流管理系統(Workflow Management System,WfMS)是一個軟件系統,它完成工做量的定義和管理,並按照在系統中預先定義好的工做流邏輯進行工做流實例的執行。工做流管理系統不是企業的業務系統,而是爲企業的業務系統的運行提供了一個軟件的支撐環境。java

2、   常見的工做流框架

流行的工做流框架有:Activity5.1三、JBPM4.四、OSWorkFlow、WorkFlowmysql

工做流框架底層須要有數據庫提供支持,activiti5.13版本,有23張表。spring

JBPM4.4框架底層有數據庫支持,18張表。sql

JBPM底層使用hibernate操做數據庫。數據庫

Activiti框架底層使用的mybatis操做數據庫。mybatis

3、    Activiti5介紹

Activiti5是由Alfresco軟件在2010年5月17日發佈的業務流程管理(BPM)框架,它是覆蓋了業務流程管理、工做流、服務協做等領域的一個開源的、靈活的、易擴展的可執行流程語言框架。Activiti基於Apache許可的開源BPM平臺,創始人Tom Baeyens是JBoss jBPM的項目架構師,它特點是提供了eclipse插件,開發人員能夠經過插件直接繪畫出業務流程圖。 架構

 

4、   安裝activiti流程設計器插件

第一步:得到下載activiti-eclipse插件的安裝包框架

 

第二步:解壓安裝包,複製解壓文件裏面的activiti到eclipse中的dropins目錄中eclipse

 

第三步:重啓eclipse,勾選save選項

 

第四步:若是重啓eclipse沒法顯示activiti圖標,代表所使用的eclipse版本不支持該插件,能夠選擇換myeclipse或其餘版本的eclipse

5、   初始化activiti框架數據表

5.1  下載activiti框架     

Activiti框架下載地址:http://activiti.org/

5.2建立一個數據庫

5.3使用activiti框架的自動建表功能

activiti框架提供了和hibernate相似的自動建表功能

搭建開發環境:

第一步:建立一個Java項目activiti1110

第二步:導入jar包(從下載下來的activiti-5.13工做流引擎下面的DEMO導入jar包),還須要導入MySQL驅動包

一、不使用配置文件(不建議)

測試代碼:

 

[java]  view plain  copy
 
 
 
  在CODE上查看代碼片派生到個人代碼片
  1. package net.csdn.activiti;  
  2.    
  3. import org.activiti.engine.ProcessEngine;  
  4. importorg.activiti.engine.ProcessEngineConfiguration;  
  5. import org.junit.Test;  
  6.    
  7. public class HelloWorld {  
  8.    /** 
  9.     * 使用activiti框架提供的自動建表(沒有配置文件) 
  10.     */  
  11.     
  12.    @Test  
  13.    public void test1(){  
  14.       //建立一個流程引擎配置對象  
  15.       ProcessEngineConfiguration configuration =ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();  
  16.       //配置數據源  
  17.       configuration.setJdbcDriver("com.mysql.jdbc.Driver");  
  18.         configuration.setJdbcUrl("jdbc:mysql://localhost:3306/activiti_1110?useUnicode=true&characterEncoding=UTF-8");  
  19.       configuration.setJdbcUsername("root");  
  20.         configuration.setJdbcPassword("root");  
  21.         //設置自動建表  
  22.         configuration.setDatabaseSchemaUpdate("true");  
  23.         //建立一個流程引擎對象,在建立流程引擎對象過程當中會自動建立表  
  24.         ProcessEngine processEngine =configuration.buildProcessEngine();  
  25.    }  
  26. }  

 

二、使用配置文件

 配置文件activiti-context.xml以下:

 

[html]  view plain  copy
 
 
 
  在CODE上查看代碼片派生到個人代碼片
  1. <beans xmlns="http://www.springframework.org/schema/beans"  
  2.    xmlns:context="http://www.springframework.org/schema/context"  
  3.    xmlns:tx="http://www.springframework.org/schema/tx"  
  4.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.    xsi:schemaLocation="http://www.springframework.org/schema/beans  
  6.    http://www.springframework.org/schema/beans/spring-beans.xsd  
  7.    http://www.springframework.org/schema/context  
  8.    http://www.springframework.org/schema/context/spring-context-2.5.xsd  
  9.     http://www.springframework.org/schema/tx  
  10.     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">  
  11.     
  12.    <!-- 配置流程引擎配置對象 -->  
  13.    <bean id="processEngineConfiguration"  
  14.       class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">  
  15.       <property name="jdbcDriver" value="com.mysql.jdbc.Driver" />  
  16.       <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti_1110"/>  
  17.       <property name="jdbcUsername" value="root" />  
  18.       <property name="jdbcPassword" value="root" />  
  19.       <property name="databaseSchemaUpdate" value="true" />  
  20.    </bean>  
  21. </beans>  

 

測試代碼:

 

[java]  view plain  copy
 
 
 
  在CODE上查看代碼片派生到個人代碼片
  1. /** 
  2.  * 使用框架提供的自動建表(提供配置文件)---配置文件activiti-context.xml能夠從框架提供的例子程序中獲取 
  3.  */  
  4. @Test  
  5. public void test2() {  
  6.    String resource = "activiti-context.xml";// 配置文件名稱  
  7.    String beanName = "processEngineConfiguration";// 配置id值  
  8.    ProcessEngineConfiguration conf =ProcessEngineConfiguration  
  9.          .createProcessEngineConfigurationFromResource(resource,  
  10.                 beanName);  
  11.    ProcessEngine processEngine =conf.buildProcessEngine();  
  12. }  

 

三、使用配置文件(使用默認配置)

要求配置文件名稱必須爲activiti-context.xml或者activiti.cfg.xml由於,由於默認的配置ProcessEngines.getDefaultProcessEngine();會初始化這兩個文件的其中一個,默認的配置信息以下:

 

測試代碼:

 

[java]  view plain  copy
 
 
 
  在CODE上查看代碼片派生到個人代碼片
  1. /** 
  2.     * 使用框架提供的自動建表(使用配置文件) 
  3.     */  
  4.    @Test  
  5.    public void test3() {  
  6.       ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();  
  7.    }  

 

6、瞭解23張表

Activiti的後臺是有數據庫的支持,全部的表都以ACT_開頭。 第二部分是表示表的用途的兩個字母標識。用途也和服務的API對應。

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

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

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

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

5)       ACT_GE_*: 通用數據, 用於不一樣場景下。

資源庫流程規則表

  1)      act_re_deployment     部署信息表

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

  3)    act_re_procdef       流程定義數據表

運行時數據庫表

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

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

  3)    act_ru_task       運行時任務節點表

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

歷史數據庫表

  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          歷史變量表 

組織機構表

  1)    act_id_group           用戶組信息表

  2)    act_id_info        用戶擴展信息表

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

  4)    act_id_user        用戶信息表

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

通用數據表

  1)    act_ge_bytearray           二進制數據表

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

相關文章
相關標籤/搜索