Activiti基本配置

工作流的定義

什麼是工作流(WorkFlow)


工作流(Workflow),就是通過計算機對業務流程自動化執行管理。它主要解決的是"使在多個參與者之間按照某種預定義的規則自動進行傳遞文檔、信息或任務的過程,從而實現某個預期的業務目標,或者促使此目標的實現"。比如員工請假,就是由:員工申請、主管審批、人事確認等工作流程組成,在軟件系統中這套流程就被看作一個工作流。

各種企業和事業機構都有可能用到工作流,如:

關鍵業務:訂單、報價處理、採購處理、合同審核、客戶電話處理、供應鏈管理等行政管理:出差申請、加班申請、請假申請、用車申請、各種辦公用品申請、購買申請、日報週報等凡是原來手工流轉處理的行政表單。人事管理:員工培訓安排、績效考評、職位變動處理、員工檔案信息管理等。財務相關:付款請求、應收款處理、日常報銷處理、出差報銷、預算和計劃申請等。客戶服務:客戶信息管理、客戶投訴、請求處理、售後服務管理等。特殊服務:ISO系列對應流程、質量管理對應流程、產品數據信息管理、貿易公司報關處理、物流公司貨物跟蹤處理等各種通過表單逐步手工流轉完成的任務均可應用工作流軟件自動規範地實施。

Activiti的介紹

什麼是Activiti

Activiti項目是一項新的基於Apache許可的開源BPM平臺,從基礎開始構建,旨在提供支持新的BPMN 2.0標準,包括支持對象管理組(OMG),面對新技術的機遇,諸如互操作性和雲架構,提供技術實現。

創始人Tom Baeyens是JBoss jBPM的項目架構師,以及另一位架構師Joram Barrez,一起加入到創建Alfresco這項首次實現Apache開源許可的BPMN 2.0引擎開發中來。

Activiti是一個獨立運作和經營的開源項目品牌,並將獨立於Alfresco開源ECM系統運行。 Activiti將是一種輕量級,可嵌入的BPM引擎,而且還設計適用於可擴展的雲架構。 Activiti將提供寬鬆的Apache許可2.0,以便這個項目可以廣泛被使用,同時促進Activiti BPM引擎和BPMN 2.0的匹配,該項目現正由OMG通過標準審定。 加入Alfresco Activiti項目的是VMware的SpringSource分支,Alfresco的計劃把該項目提交給Apache基礎架構,希望吸引更多方面的BPM專家和促進BPM的創新。

Activiti的基本配置

開發環境:IDEA + Maven + Activiti6.0

1、 Idea安裝Activiti插件

打開Idea 選擇File->settings->plugings->點擊選擇Browse repositories

然後在搜索框輸入:actiBPM,看到如下窗體,未安裝的情況下會出現Install按鈕,點擊按鈕安裝插件,然後重啟Idea。

Activiti基本配置

2、 點擊File->New->Project選擇Maven項目(IDEA和Maven的配置可以參考:

https://jingyan.baidu.com/article/a3a3f811cd5f0b8da2eb8abf.html)

在Maven的項目模板中選擇webapp,創建項目

Activiti基本配置

3、 引入相關的包,activiti的數據庫操作由mybatis實現,還需要依賴spring框架進行配置,數據庫這裡我們使用MySQL以及c3p0連接池。

在pom.xml的dependencies中添加:

junit

junit

4.12

test

org.mybatis

mybatis

3.4.4

mysql

mysql-connector-java

5.1.40

com.mchange

c3p0

0.9.5.2

org.springframework

spring-context

4.3.11.RELEASE

org.springframework

spring-jdbc

4.3.11.RELEASE

org.springframework

spring-test

4.3.11.RELEASE

log4j

log4j

1.2.12

org.activiti

activiti-engine

6.0.0

org.activiti

activiti-spring

6.0.0

4、 添加配置文件,在項目的resources文件中添加配置文件:

1、 配置log4j日誌文件log4j.properties

log4j.rootLogger=INFO,Console

#Console

log4j.appender.Console=org.apache.log4j.ConsoleAppender

log4j.appender.Console.layout=org.apache.log4j.PatternLayout

log4j.appender.Console.layout.ConversionPattern=%-5p - %m%n

2、 Activiti的核心配置文件:activiti.cfg.xml,注意:這個文件名會由Activiti框架自動識別,所以不要寫錯。

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.xsd">

name="jdbcUrl" value="jdbc:mysql://localhost:3306/act?useUnicode=true&characterEncoding=UTF-8&useSSL=true"/>

id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">

name="processEngineConfiguration" ref="processEngineConfiguration"/>

Activiti數據庫表介紹

單元測試:

1、在項目的src目錄上右鍵->New->Directory添加test目錄,

2、點擊test目錄右鍵選擇Mark Directory As--> Test Source Directory

3、添加單元測試類ActivitiTest

/**

* 工作流單元測試

*/

public class ActivitiTest {

@Test

public void testInitActiviti(){

//獲得流程引擎,自動讀取activiti.cfg.xml中的配置

ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();

}

}

4、 運行單元測試,會在MySQL的act數據庫中創建23張表

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

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

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

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

ACT_GE_*: 通用數據, 用於不同場景下。

具體說明:

Activiti基本配置

到此我們就完成了Activiti框架的基本配置,後面我們還會學習如何創建和部署工作流,使用工作流完成啟動、查詢和審核流程的工作。


分享到:


相關文章: