Activiti工作流的入門使用

一、Activiti基本概念

流程定義:就是流程圖(bpmn文件)

流程實例:流程定義的每個具體實現

流程定義與流程實例的關係就像類和對象的關係,一個類可以有多個對象,一個流程定義可以有多個流程實例。

bpmn:流程圖,下圖就是一個bpmn文件生成的圖片

 

 

二、Acitiviti插件的安裝以及創建流程定義(idea中)

1、idea中工作流插件的安裝

兩種安裝方式:通過idea的Plugins安裝actiBPM插件(需要連接外網)或者直接在idea官網直接下載然後導入。

1.1、在idea的Plugins中下載(若一直無法下載,則通過第二種方法下載):

 

1.2、登錄idea插件官網搜索下載:http://plugins.jetbrains.com/,然後idea導入

 

2、idea中創建流程定義(也就是流程圖)

 

然後就可以畫圖了,但是畫圖之後,沒有連接圖標怎麼辦呢

把鼠標放在開頭的那個圖標上,此時光標的形狀改變了 拖到另一個上面,連接成功了。

怎麼連接成功的呢?  把鼠標放到圖標的正中心,然後會看到光標變成了“扇子類型”的樣子(黑白相間)。只要看到變成這個樣子,就可以拖動到另一個圖標中,進行連接了

 

畫完圖後,但是並沒有生成png圖片,這個時候重命名剛纔創建的文件,把後綴改成xml然後右鍵

然後保存到與剛纔創建文件的一個文件夾內就可以了

 

 

 

保存圖片後,發現圖片中文亂碼,解決方法:

找到IDEA的安裝目錄,找到bin目錄比如我的路徑:D:\JetBrains\IntelliJ IDEA 2017.3\bin找到這兩個文件

 

具體要修改哪個文件,由你安裝的IDEA的版本來決定,如果你安裝了64位版本的IDEA,那麼就修改

 

這個文件,反之亦然,兩個都修改也可以,

具體修改的方法是在文件後面追加一條命令: -Dfile.encoding=UTF-8 

 

一定注意,不要有空格,否則重啓IDEA時會打不開,然後 重啓IDEA,把原來的png圖片刪掉,再重新生成,即可解決亂碼問題

 

解決問題後,把xml文件重新改成bpmn格式,和png圖片一起壓縮成zip包進行部署

  • SpringBoot集成Activiti

3.1、添加activiti依賴

<dependency>

<groupId>org.activiti</groupId>

<artifactId>activiti-spring-boot-starter</artifactId>

<version>7.0.0.Beta2</version>

</dependency>

3.2添加 SpringSecurity 安全框架整合配置

因爲 Activiti7 與 SpringBoot 整合後,默認情況下,集成了 SpringSecurity 安全框架,這樣我們就要去 準備 SpringSecurity 整合進來的相關用戶權限配置信息。

可以查看一下整合 SpringBoot 的依賴包,發現同時也將 SpringSecurity 的依賴包也添加進項目中了,

如下:

3.3 添加 SecurityUtil 類

這個類可以從我們下載的 Activiti7 官方提供的 Example 中找到(https://github.com/Activiti/activiti-examples)。

爲了能夠快速實現 SpringSecurity 安全框架的配置,所添加的一個組件。

3.4 添加 DemoApplicationConfig 類

在 Activiti7 官方下載的 Example 中找到 DemoApplicationConfig 類,它的作用是爲了實現 SpringSecurity 框架的用戶權限的配置,這樣我們就可以在系統中使用用戶權限信息。本次項目中基 本是在文件中定義出來的用戶信息,當然也可以是數據庫中查詢的用戶權限信息。

 

3.5 使用 SpringBoot 整合 Junit 方式測試新特性

 

通過上面的類,我們可以實現 SpringBoot 與 Junit 整合測試 Activiti7 所需的各種 API,之後我們就可以實現各種測試了。

老版本的Activiti使用ProcessEngineConfiguration、ProcessEngine、Service接口來實現對流程定義的部署,但是與springboot集成的版本只有兩個操作類ProcessRuntime、TaskRuntime,這兩個來負責流程定義的部署和操作。

ProcessEngineConfiguration類:主要作用是加載activiti.cfg.xml配置文件;

ProcessEngine類:幫助我們快速得到各個Service接口,並且可以生成activiti的工作環境(25張表的生成);

Service接口(RepositoryService、RuntimeService、TaskService、HistoryService):可以快速實現對25張表的操作。

3.6查看流程定義信息

 

通過 ProcessRuntime 的方法,我們可以查看已經部署的流程定義信息。通過加入 Pageable.of()方法可以實現分頁查詢效果。

3.7啓動流程實例

現在要啓動流程實例,我們可以使用 ProcessRuntime 的 start()方法就可以實現流程實例的啓動

3.8查詢並完成任務 

使用 TaskRuntime 接口的 tasks()方法實現任務的查詢。

使用 TaskRuntime 接口的 claim()方法實現任務拾取。

使用 TaskRuntime 接口的 complete()方法實現任務的完成​。

 

 

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