jbpm是面向流程程式設計的框架。
1.key是檔名稱,類似於startprocessinstancebykey這樣的方法就是按照檔名查詢
2.state,狀態節點為典型的等待狀態,它不會向任務列表新增任務。
task節點本質上還是state的一種,只是多了個參與者。當乙個流程執行到任務節點(task)時會生成task instance物件,並新增到參與人的任務列表當中,之後處於等待狀態,直到參與人完成任務。
可以使用assignee、swimelane等把任務分配到某個人或某個組,對應的使用者可以執行completetask結束任務。
3.processengine是乙個工廠類,可以用get方法獲取6大service類。jbpm只包含6個service類。
jbpm的核心
①processengine 流程引擎
②repositoryservice 主要用於發布流程定義
③executionservice 流程執行服務
④taskservice 主要是任務服務,控制task的各項操作。主要目的是體工隊任務列表的訪問途徑。
4.流程變數,更確切的將應該為流程區域性變數,指的是在乙個流程例項中可以共享的資料資訊,也就是指變數的值得作用域。類似於threadlocal
流程變數在流程外部,通過executionservice提供的方法進行訪問。
舉個例子
5.jbpm中使用executionservice來控制對state的signal操作。@test//建立流程例項時放入變數
public void testvariable()
@test//讀取流程例項中的相關變數
public void testreadvariable()
使用taskservice控制task的各項操作。
6.jbpm對於所有的流程執行操作預設都是同步的。比如乙個多個線性的自動執行活動中,預設是乙個活動執行完畢才執行下乙個活動。
活動的非同步屬性continue有三種值可選,sync,async和exclusive
sync:預設值,表示同步執行,使用當前事務
async:啟動非同步執行,當前事務被自動提交,活動在乙個新事物中執行。
exclusive:與async不同的是,此非同步資訊具有獨占性。
當需要流程併發執行的時候,就需要使用fork-join節點的組合。fork活動可以使流程在一條主幹上出現並行的分支,join活動則可以使流程的併發分支聚合成乙個主幹。
7.spring和jbpm整合
jbpm中整合spring目的是將jbpm的事務由spring來管理,這樣可以和業務系統事務結合。需要修改三點:
改為
②在jbpm.cfg.xml中,根節點中加入下面的節點:
③事務管理器的配置,如果事務管理器預設名稱為transactionmanager,那麼此處不用修改,否則需要到jbpm的包中修改
在spring中加入jbpm的service api
①sessionfactory 配置,這樣的話,我們的業務系統和jbpm可以共同使用乙個sessionfactory
②jbpmhelper 配置,通過這個類,我們可以獲取 service apiclasspath:jbpm.hibernate.cfg.xml
③jbpm.cfg.xml
jBPM 4 4 與Spring整合配置
jbpm 4.4與spring整合配置比較容易,這裡我使用的是spring 2.5.6,資料庫連線池使用c3p0,將相關的兩個jar檔案加入到classpath中。jbpm 4.4與spring整合的配置過程說明如下。配置 1 修改jbpm.cfg.xml配置檔案 將jbpm.cfg.xml檔案中一...
JBPM4 4 表結構和介面
1 資料庫設計 jbpm4.4的持久層是採用的hibernate,大大提高了程式了移植性,和資料庫進行了解耦。它通過18張表進行資料處理,我們可以通過powerdesigner進行反向工程,匯出資料物理設計圖,進行檢視這些表之間的結構。表名稱 說明 jbpm4 deployment 儲存部署id j...
jbpm4 4中取的我的任務
jbpm4.4提供兩個介面可以獲取該使用者的待處理任務 乙個是個人的任務 taskservice.findpersonaltasks userid 另乙個是取得該使用者對應的候選任務 taskservice.findgrouptasks userid 有時我們需要在乙個列表中顯示該使用者的所有任務,...