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

?

一、什么是工作流

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

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

二、???常見的工作流框架

流行的工作流框架有:Activity5.13、JBPM4.4、OSWorkFlow、WorkFlow

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

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

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

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

三、??? Activiti5介紹

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

?

四、???安裝activiti流程設計器插件

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

?

第二步:解壓安裝包,復制解壓文件里面的activiti到eclipse中的dropins目錄中

?

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

?

第四步:如果重啟eclipse無法顯示activiti圖標,表明所使用的eclipse版本不支持該插件,可以選擇換myeclipse或其他版本的eclipse

五、???初始化activiti框架數據表

5.1? 下載activiti框架?????

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

5.2創建一個數據庫

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

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

搭建開發環境:

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

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

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

測試代碼:

?

[java]?view plain?copy
  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. }??

?

2、使用配置文件

?配置文件activiti-context.xml如下:

?

[html]?view plain?copy
  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
  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. }??

?

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

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

?

測試代碼:

?

[java]?view plain?copy
  1. /**?
  2. ????*?使用框架提供的自動建表(使用配置文件)?
  3. ????*/??
  4. ???@Test??
  5. ???public?void?test3()?{??
  6. ??????ProcessEngine?processEngine?=ProcessEngines.getDefaultProcessEngine();??
  7. ???}??

?

六、了解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 ????? 屬性數據表存儲整個流程引擎級別的數據,初始化表結構時,會默認插入三條記錄

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451290.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451290.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451290.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

中國消費者為何不愿為App付費?

Facebook收購Instagram之后&#xff0c;國內的開發者們唏噓不已。Instagram的用戶不過3000萬&#xff0c;卻能賣出10億美元的價格。如果Instagram在國內的話&#xff0c;就算沒被關閉也會被抄襲。如果通過收費來賺錢的話&#xff0c;也會因為黑卡變得顆粒無收&#xff0c;最終很…

什么是交換分區

SWAP就是LINUX下的虛擬內存 分區,它的作用是在 物理內存 使用完之后,將磁盤空間(也就是SWAP分區)虛擬成內存來使用.它和Windows系統的交換文件作用類似&#xff0c;但是它是一段連續的磁盤空間&#xff0c;并且對用戶不可見。

基礎、語法都不是最重要的,學Python最重要的是什么?編程思路!

論述 一些朋友自學python過程中&#xff0c;發現書也能看懂&#xff0c;書上的玩具代碼也能看懂&#xff0c;但為啥自己不能做習題&#xff0c;不能寫代碼解決問題&#xff0c;自己不能動手寫代碼&#xff1f; 原因 初學者沒有學會計算思維、解決問題的方法、編程思路。編程思路…

Windows下啟動,關閉Nginx命令

啟動 直接點擊Nginx目錄下的nginx.exe 或者 cmd運行start nginx 關閉 nginx -s stop 或者 nginx -s quit stop表示立即停止nginx,不保存相關信息 quit表示正常退出nginx,并保存相關信息 重啟(因為改變了配置,需要重啟) nginx -s reload 轉載于:https://www.cnblogs…

什么是守護進程?

守護進程是在后臺運行不受終端控制的進程&#xff08;如輸入、輸出等&#xff09;&#xff0c;一般的網絡服務都是以守護進程的方式運行。守護進程脫離終端的主要原因有兩點&#xff1a;&#xff08;1&#xff09;用來啟動守護進程的終端在啟動守護進程之后&#xff0c;需要執行…

Activiti工作流引擎的使用

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Activiti工作流引擎使用 1.簡單介工作流引擎與Activiti 對于工作流引擎的解釋請參考百度百科&#xff1a;工作流引擎 1.1 我與工作流引…

Flurry調查報告:圖片和視頻應用增長速度最快

據外國媒體報道&#xff0c;移動數據分析公司Flurry近期對應用分類的歡迎度進行研究后發現&#xff0c;就用戶使用的時間而言&#xff0c;“圖片和視頻”應用已成為增長最快的移動應用。 Flurry對各種應用分類的800多萬移動用戶進行了調查&#xff0c;并利用其分析工具跟蹤了1…

JS內存管理與垃圾回收

javascript的內存管理Javascript 是那些被稱作垃圾回收語言當中的一員。垃圾回收語言通過周期性地檢查那些之前被分配出去的內存是否可以從應用的其他部分訪問來幫助開發者管理內存。換句話說&#xff0c;當計算機發現有的內存已經不能被訪問到了&#xff0c;就會把它們標記為垃…

牛客網分糖果

題解&#xff1a; 考試的時候沒有想出來。。。 剛開始想了個比較錯誤的dp 后來想到了容斥。。 但是沒有想到怎么去維護這個東西。。 按照一般的套路 至少有一個相鄰相等的-至少有兩個相鄰相等的 但是這道題里這樣并不好維護 我們考慮用dp來算這個東西 f[i]f[j]*min(a[j].....a[…

HTTP 503 錯誤 – 服務不可用 (Service unavailable)

介紹因暫時超載或臨時維護&#xff0c;您的 Web 服務器目前無法處理 HTTP 請求。 其含義是&#xff0c; 這是一個暫時情況&#xff0c;會有一些延誤&#xff0c; 過 后將會得到緩解。 有些服務器在這種情況下也許干脆拒絕套接字&#xff08;socket&#xff09; 連接&#xff0c…

SHA 加密是什么( sha1 和 MD5 的區別 )

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 SHA 安全哈希算法&#xff08;Secure Hash Algorithm&#xff09;主要適用于數字簽名標準&#xff08;Digital Signature Standard DSS…

10個管理工作時間的小技巧

導讀&#xff1a;如何才能穩步追隨社會的變遷&#xff0c;如何才能留住飛逝的時間。俗話說&#xff1a;“一寸光陰一寸金&#xff0c;寸金難買寸光陰。”珍惜現在的時光&#xff0c;將來才不會為年輕時揮霍的時間而感到悔恨。三位作者Joe Mathews&#xff0c;Don Debolt&#x…

12-思科防火墻:ASA會話超時

一、實驗拓撲&#xff1a;二、實驗要求&#xff1a;DCD&#xff1a;死亡檢測時間&#xff0c;默認R2 Telnet上去保持時間為1個小時&#xff0c;超時就會被清除掉&#xff0c;這里要求變為4小時&#xff0c;每15s就會發送5個DCD檢測包&#xff0c;如沒回應就剔除掉&#xff0c;回…

orCAD使用Orcad Capture CIS按Room擺放

http://www.sig007.com/EDAguide/176.html 37 使用Orcad Capture CIS按Room擺放 &#xff08;1&#xff09;打開原理圖某一工程頁 &#xff08;2&#xff09;按Ctrl鍵依次選中需要建Room的元件&#xff0c;右擊&#xff0c;選擇Edit Properties 在Filter by 下拉菜單中選擇Cad…

503錯誤的原因和解決方法

如果出現“Service Unavailable”的提示&#xff0c;刷新幾下又可以訪問。 出現這種情況是由于您的網站超過了iis限制造成的 由于2003的操作系統在提示IIS過多時并非像2000系統提示“鏈接人數過多”&#xff0c;而是提示"Service Unavailable",出現這種情況是由于網…

Java中十六進制轉換 Integer.toHexString()

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 用例&#xff1a; Long.toHexString(number) 其中 number 是一個long類型參數。 描述&#xff1a; java.lang.Integer.toHexString(…

細數25個硅谷最熱創業公司 尋找創業靈感

【CSDN編譯報道】硅谷堪稱高科技產業之鄉&#xff0c;每當提起就能聯想到影響全球產業的各大著名企業Mircosoft、Google、Adobe、Oracle、Yahoo、SAP、intel等。而硅谷也被譽為創業公司的天堂&#xff0c;多如繁星的初創公司Karma、99Dresses、Getaround、Omada Health、Social…

數據特征分析:2.對比分析

對比分析 兩個相互聯系的數&#xff08;指標&#xff09;進行比較&#xff08;絕對數比較、相對數比較&#xff09; 對比分析 對比分析 → 兩個互相聯系的指標進行比較 絕對數比較&#xff08;相減&#xff09; / 相對數比較&#xff08;相除&#xff09;結構分析、比例分析、…

Java基礎-Java中的內存分配與回收機制

Java基礎-Java中的內存分配與回收機制 作者&#xff1a;尹正杰 版權聲明&#xff1a;原創作品&#xff0c;謝絕轉載&#xff01;否則將追究法律責任。 一. 二.轉載于:https://www.cnblogs.com/yinzhengjie/p/9279601.html

離散數學中關于自反與反自反的通俗解釋

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 設R是A上的二元關系&#xff0c;二元關系自反&#xff1a;任取一個A中的元素x&#xff0c;如果都有<x,x>在R中&#xff0c;那么就…