Jbpm 4 4學習筆記 二

2021-06-18 23:32:10 字數 1816 閱讀 1279

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提供的方法進行訪問。

舉個例子

@test//建立流程例項時放入變數

public void testvariable()

@test//讀取流程例項中的相關變數

public void testreadvariable()

5.jbpm中使用executionservice來控制對state的signal操作。

使用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

classpath:jbpm.hibernate.cfg.xml

②jbpmhelper 配置,通過這個類,我們可以獲取 service api

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 有時我們需要在乙個列表中顯示該使用者的所有任務,...