activiti是基於bpmn4.0進行開發的,我們可以界面化的進行流程的定義,之後將其進行發佈。那麼一個流程就可以進行流程的實例化了。
在eclipse先安裝activiti editor插件利於我們圖形化的進行操作,如下圖所示,我使用AE圖形化的創建了一個流程,命名爲:test.bpmn,如下圖所示。
這樣一個流程就定義好了。在activiti中如果我們要使用這個流程,那麼首先我們就需要將其部署到對應的activiti中。這樣我們才能通過其提供的接口查詢到這個流程定義(ProcessDifinitaion),之後根據流程定義去實例化一個流程(ProcessInstance)
流程的發佈:
流程發佈前我們得先配置好數據庫等,從而獲得流程配置引擎(再次不再累述,很多地方都能知道怎麼配置),如下圖所示:
如上圖所示,流程的發佈其實就是一個資源的存儲,當我們存儲的資源是bpmn或者bpmn20.xml的時候,它默認爲這是一個流程定義資源,存儲的時候回去解析,之後在流程定義表中也去插入數據。
流程發佈之後(如上發佈了test.bpmn流程),即可使用流程
(1)查詢流程定義(ProcessDefinition)
使用的還是activiti的RepositoryService組件來查詢出我們的實例:
這是根據流程定義的key值來獲取ProcessDefinition,當然還有根據流程定義的ID等等來獲取流程定義實例的,請自行參考接口。
(2)獲得流程實例(ProcessInstance)
使用activiti另一個組件runtimeService即可開啓一個流程實例:
當流程實例開啓的時候,其默認已經在執行了其第一個任務。
結束語:
activiti:activiti就是一種工作流引擎,他又自身對工作流程的管理,它使得我們只需要去關心每一個task需要做什麼業務邏輯,而流程如何處理、執行則交由activiti自身管理。它是一個抽象、零散的東東。如上所示:
task1-->task2-->task3,有1-->3則有activiti自身管理,task1要幹什麼(具體的業務邏輯)由我們來完成,當完成一個任務的時候我們只需要告訴activiti,這個任務完成了,它自然到了下一個任務去。。。
下篇將講解activiti中task的流程。