版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Activiti教程詳解完好教程1.Activiti介紹Activiti是由Alfresco軟件在2010年5月17日公布的業(yè)務(wù)流程管理(BPM)框架,它是覆蓋了業(yè)務(wù)流程管理,工作流,服務(wù)協(xié)作等領(lǐng)域的一個開源,靈巧的,易擴展的可履行流程語言框架。Activiti鑒于Apache允許的開源BPM平臺,首創(chuàng)人TomBaeyens是JBossJBPM的項目架構(gòu)師,它的特點是供給了
eclipse
插件,開發(fā)人員能夠經(jīng)過插件直接繪畫出業(yè)務(wù)流程圖。1.1工作流引擎ProcessEngine對象,這是Activiti工作的核心。負責(zé)生成流程運轉(zhuǎn)時的各樣實例及數(shù)據(jù),監(jiān)控和管理流程的運轉(zhuǎn)。1.2BPMN業(yè)務(wù)流程建模與標明(BusinessProcessModelandNotation,BPMN),描繪流程的基本符號,包含這些圖元怎樣組合成一個業(yè)務(wù)流程圖(BusinessProcessDiagram)準備環(huán)境2.1Activiti軟件環(huán)境或許更高版本2)支持的數(shù)據(jù)庫有:h2,mysql,oracle,mysql,db2等支持Activiti運轉(zhuǎn)的jar包,能夠經(jīng)過maven依靠引入開發(fā)環(huán)境為或許以上版本,myeclipse為版本安裝流程設(shè)計器(eclipse插件)1)翻開HelpInstallNewSoftwareAdd輸入Name:ActivitiDesignerLocation:designer/update/輸入達成后,單擊OK按鈕等候下載達成后安裝。安裝達成后在菜單項選擇項中會出現(xiàn)Activiti的目錄選項設(shè)置eclipseactivit插件的畫流程圖選項翻開菜單Windows-->Preferences-->Activiti-->Save下賤程圖片的生成方式勾選上Createprocessdefinitionimagewhensavingthediagram操作后在畫流程圖后保存eclipse會自動生成對應(yīng)的流程圖片。
操作,勾選上這個準備開發(fā)環(huán)境創(chuàng)立mavenweb項目,在maven中增添Activiti依靠在eclipse左側(cè)工作欄右鍵New選擇創(chuàng)立MavenProject項目,創(chuàng)立一個名為ActivitiTest的項目點擊Finish
達成。右鍵項目選擇
Properties
,選擇
Project
Facets
勾選上圖中的選項,點擊
Apply
,再點擊OK而后將項目變換成web項目,右鍵項目選擇而后點擊Appy應(yīng)用和OK確立
Properties,
在
ProjectFacets
中做以下勾選
,而后右鍵項目Properties,選擇DeploymentAssembly,將test有關(guān)目錄Remove掉之保存main下邊需要公布的內(nèi)容,以下列圖而后點擊Appply和OK而后在文件中增添以下依靠<dependencies><dependency><groupId></groupId><artifactId>Activiti-engine</artifactId><version></dependency><dependency><groupId></groupId><artifactId>Activiti-spring</artifactId><version></dependency><dependency><groupId><artifactId>groovy-all</artifactId><version></dependency><dependency><groupId></groupId><artifactId>slf4j-api</artifactId><version></dependency><dependency><groupId></groupId><artifactId>slf4j-jdk14</artifactId><version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version><scope>test</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version></dependency></dependencies>而后在命令行下mvncompile編譯目前項目,將需要的包下載到當?shù)貛旆砍跏蓟瘮?shù)據(jù)庫1)src/main/resource目錄下創(chuàng)立文件,內(nèi)容以下<xmlversion=""encoding="UTF-8"><beansxmlns=""xmlns:xsi=""xmlns:context=""xmlns:tx=""""""xmlns:jee=xmlns:aop=xsi:schemaLocation"">="processEngineConfiguration"<beanid="">class=<propertyname="jdbcDriver"value=""/><property"jdbcUrl""jdbc:;characterEncoding=utf8"name=value=/>"jdbcUsername""root"<property/>name=value=<property"jdbcPassword""root"/>name=value=<propertyname="databaseSchemaUpdate"value="true"/></bean></beans>jdbcUrl為你電腦數(shù)據(jù)庫的urljdbcUsername為數(shù)據(jù)庫用戶名jdbcPassword為數(shù)據(jù)庫密碼在main/java目錄下創(chuàng)立隨意目錄和類編寫創(chuàng)立Activiti數(shù)據(jù)表方法publicclassCreateTable{/****創(chuàng)立流程表*/@TestpublicvoidcreateTable( ){ProcessEngineprocessEngine=("").buildProcessEngine( );"------processEngine:"+processEngine);}}而后運轉(zhuǎn)該測試方法,假如運轉(zhuǎn)成功,在數(shù)據(jù)庫中應(yīng)當會產(chǎn)生
25張
Activiti的有關(guān)數(shù)據(jù)表Activiti表說明下邊是歸納了幾個常用的數(shù)據(jù)表流程部署有關(guān)表act_re_deployementact_rep_procdefact_ge_bytearrayact_ge_prperty
部署對象表流程定義表資源文件表主鍵生成策略表(對于部署對象表的主鍵
ID)流程實例有關(guān)表act_ru_execution線程可能流程實例
正在履行的履行對象表(包含履行對象ID不同樣)
ID
和流程實例
ID,假如有多個act_hi_procinstact_hi_actinst
流程實例歷史表寄存歷史所有達成的任務(wù)Task任務(wù)有關(guān)表act_ru_task代勞任務(wù)表(只對應(yīng)節(jié)點是UserTask的)act_hi_taskinst代勞任務(wù)歷史表(只對應(yīng)節(jié)點是UserTask的)act_hi_actinst所有節(jié)點活動歷史表(對應(yīng)流程的所有節(jié)點的活動歷史,從開始節(jié)點向來到結(jié)束節(jié)點中間的所有節(jié)點的活動都會被記錄)流程變量表act_ru_variable正在履行的流程變量表act_hi_variable流程變量歷史表3.核心APIProcessEngine說明:在Activiti中最核心的類,其余的類都是由他而來。產(chǎn)生方式ProcessEngineprocessEngine=( );3)能夠產(chǎn)生RepositoryServiceRepositoryServicerepositoryService=( );4)能夠產(chǎn)生RuntimeServiceRuntimeServiceruntimeService=( );能夠產(chǎn)生TaskServiceTaskServicetaskService=( );各個Service的作用RepositoryService管理流程定義RuntimeService履行管理,包含啟動,推動,刪除流程實例等操作TaskService任務(wù)管理RepositoryServiceActiviti的庫房服務(wù)類。所謂的庫房指流程定義文檔的兩個文件:bpmn文件和流程圖片該service能夠用來刪除部署的流程定義。RuntimeService是Activiti的流程履行服務(wù)類,能夠從這個服務(wù)類中獲取好多對于流程履行的有關(guān)的信息。TaskService是Activiti的任務(wù)服務(wù)類。能夠從這個類中獲取任務(wù)的有關(guān)信息,如目前正在履行的個人待辦和用戶組待辦任務(wù)。HistoryService是Activiti的查問歷史信息的類,在一個流程履行達成后,這個對象為我們供給查問歷史信息,能夠追蹤流程實例對應(yīng)所有待辦節(jié)點的運轉(zhuǎn)狀況。ProcessDefinition流程定義類,能夠從這里獲取資源文件等。ProcessInstance代表流程定義的履行實例,當一個部署的流程圖啟動后,該流程只有一條流程實例數(shù)據(jù),但是它的流程任務(wù)能夠有多個,每個任務(wù)對應(yīng)流程圖中相應(yīng)的流程節(jié)點。4.入門HelloWorld程序創(chuàng)立流程圖方法點擊ActivitiTest項目,在src/main/java目錄下創(chuàng)立一個diagrams目錄取來寄存流程圖在目前項目右鍵選擇ActivitiDiagram流程圖輸入流程圖名稱HelloWorld,而后點擊OK,在控制面板的右側(cè)欄有有關(guān)的繪圖圖標操作此中一個流程一定包含一個開始節(jié)點和一個結(jié)束節(jié)點,結(jié)束節(jié)點能夠有多個。而后使用StartEvent,UserTask,EndEvent畫出下邊的流程圖,而后用Connection中的SequenceFlow連線連結(jié)起來。創(chuàng)立流程圖,以下列圖指定流程圖名稱,ID和UserTask的辦理人1)選中第一個節(jié)點,在General中的name屬性中輸入目前節(jié)點的名稱,在Mainconfig中的Assignee中輸入該節(jié)點的辦理人,而后以此類推將3個節(jié)點的值設(shè)置達成。,2)而后在流程圖旁邊的空白出點擊一下,輸入流程的ID和Name值,而后保存將流程圖部署到Activiti的數(shù)據(jù)表中啟動達成后在數(shù)據(jù)信息.
act_re_deployment
流程部署表和
act_re_procdef
流程定義表中會有對應(yīng)的啟動流程實例此中
("HelloWorldKey"
);
中的
HelloWorldKey
對應(yīng)流程圖中的
ID
值,在數(shù)據(jù)表中對應(yīng)act_re_procdef
流程定義表中的
key
字段啟動完流程后在act_ru_execution表中會產(chǎn)生一條數(shù)據(jù),這條數(shù)據(jù)為目前流程正在履行的任務(wù),此中act_id_字段的值對應(yīng)流程圖節(jié)點的ID值在act_ru_task表中會產(chǎn)生一條任務(wù)數(shù)據(jù),execution_id_對應(yīng)act_ru_execution主鍵,proc_inst_id_為流程實例ID,name_值為流程節(jié)點名稱,assignee_字段為該待辦目前的辦理人查問待辦任務(wù)指定查問張三的待辦,能夠查問出待辦為第一個節(jié)點的辦理任務(wù)。達成待辦任務(wù)此中taskId對應(yīng)act_ru_task表的主鍵ID,由于目前待辦任務(wù)為第一個節(jié)點提交申請,當履行完這個待辦后下一條待辦數(shù)據(jù)將會流轉(zhuǎn)到審批【部門經(jīng)理】那,而后以此類推能夠?qū)⒉块T經(jīng)理和總經(jīng)理的待辦任務(wù)所有查問和履行達成。查問和刪除流程定義1)查問流程定義刪除流程定義流程變量操作設(shè)置流程變量1)設(shè)置流程變量有多種方式,能夠在流程啟動,和任務(wù)履行的時候設(shè)置啟動流程的時候設(shè)置b.經(jīng)過taskService或許runtimeService設(shè)置提示:假如設(shè)置的流程變量值是一個對象種類,這個對象一定實現(xiàn)序列化操作,而且要為該對象類指定一個版本ID
Serializable獲取流程變量見工程操作流程連線在畫流程圖的時候能夠?qū)α鞒痰倪B線設(shè)置表達式,而后在履行的時候設(shè)置流程變量值,而后Activiti會依據(jù)對應(yīng)的值走對應(yīng)的節(jié)點點擊一條連線,在Mainconfig中的Condition屬性值中設(shè)置${message=='贊同'},此外一條線設(shè)置為${message=='不贊同'},而后在代碼中設(shè)置對應(yīng)流程變量值。見工程操作排他網(wǎng)關(guān)以下列圖,此中黑色的叉叉對應(yīng)eclipse畫流程圖圖標中的ExclusiveGateWay圖標而后對每條線的Condition屬性指定對應(yīng)的表達式,而后在履行任務(wù)時候設(shè)置對應(yīng)的流程變量Activiti會依據(jù)變量的值來判斷對應(yīng)連線中的表達式走對應(yīng)的流程節(jié)點路線。見工程操作并行網(wǎng)關(guān)十字圖標對應(yīng)圖標中的ParallelGateway并行網(wǎng)關(guān)不需要指定連線的表達式,當流程流轉(zhuǎn)到并行任務(wù)時會出發(fā)多個任務(wù),當多個任務(wù)達成后在會將流程流轉(zhuǎn)到下一個節(jié)點見工程操作個人任務(wù)的三種指定方式在Assignee中指定任務(wù)詳細的辦理人在Assignee中指定任務(wù)的辦理人或角色變量當指定Assignee為一個變量值后需要在代碼中設(shè)置對應(yīng)的辦理人,比方在啟動的時候設(shè)置userId的值在工程中能夠?qū)⒉輸M人的辦理變量設(shè)置為userId,審批人的辦理變量設(shè)置為appUserId,而后經(jīng)過業(yè)務(wù)模塊和登錄人來獲取對應(yīng)模塊的審批人。為任務(wù)節(jié)點設(shè)置一個監(jiān)聽類來設(shè)置目前節(jié)點的辦理人假如設(shè)置了監(jiān)聽類就不需要在設(shè)置Assignee的值1)創(chuàng)立一個監(jiān)聽器類,需要實現(xiàn)TaskListener接口2)點擊任務(wù)節(jié)點,選擇Listener而后選擇創(chuàng)立的TaskListenerImpl
選項卡,點擊實
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度汽車零部件采購合同范本(含質(zhì)量保證)4篇
- 2025年新型環(huán)保材料采購與物業(yè)保潔服務(wù)合同3篇
- 2025年度個人貸款合同范本集錦與金融科技創(chuàng)新應(yīng)用4篇
- 2025年度新型環(huán)保材料研發(fā)與應(yīng)用項目合作合同4篇
- 2025年度個人企業(yè)全額承包經(jīng)營合作協(xié)議書范本7篇
- 二零二五年度工業(yè)模具長期租賃合作協(xié)議4篇
- 二零二五年度新型農(nóng)村合作醫(yī)療資金管理合同4篇
- 2025年度個人網(wǎng)絡(luò)課程訂購服務(wù)合同3篇
- 弱電設(shè)計合同(2篇)
- 工程后期保潔協(xié)議書(2篇)
- 春節(jié)英語介紹SpringFestival(課件)新思維小學(xué)英語5A
- 進度控制流程圖
- 2023年江蘇省南京市中考化學(xué)真題
- 【閱讀提升】部編版語文五年級下冊第四單元閱讀要素解析 類文閱讀課外閱讀過關(guān)(含答案)
- 供電副所長述職報告
- 現(xiàn)在完成時練習(xí)(短暫性動詞與延續(xù)性動詞的轉(zhuǎn)換)
- 產(chǎn)品質(zhì)量監(jiān)控方案
- 物業(yè)總經(jīng)理述職報告
- 新起點,新發(fā)展心得體會
- 深圳大學(xué)學(xué)校簡介課件
- 校園欺凌問題成因及對策分析研究論文
評論
0/150
提交評論