本文的主要思想是建立主任務與子任務,會簽分配給多個人,即建立了多個子任務,子任務要與主任務繫結,根據指定的會簽人完成子任務,每次到完成子任務時要判斷主任務的子任務個數有幾個,當所有子任務都完成,主任務沒有子任務時,就讓主任務指向下一節點。
1.新建jbpm.xml檔案,**如下:
<?xml version="1.0" encoding="utf-8"?>
流程圖如下:
2.其中commercialtripassignment,需要實現assignmenthandler,重寫它的assign方法,**如下:
package cn.edu.zust.itee;
import org.jbpm.api.configuration;
import org.jbpm.api.processengine;
import org.jbpm.api.taskservice;
import org.jbpm.api.model.openexecution;
import org.jbpm.api.task.assignable;
import org.jbpm.api.task.assignmenthandler;
import org.jbpm.api.task.participation;
import org.jbpm.api.task.task;
import org.jbpm.pvm.internal.task.opentask;
@suppresswarnings("serial")
public class commercialtripassignment implements assignmenthandlerelse
if("end".equals(end)) }
/**建立子任務
* @param task
*/
private void createsubtask(task task)
} }
}
3.發布流程
3.1 新建processengine
processengine processengine = new configuration().setresource("jbpm.cfg.xml").buildprocessengine();
3.2 jbpm.cfg.xml內容如下:
<?xml version="1.0" encoding="utf-8"?>
3.3 發布
@test
public void deployprocessdefinition()
4.啟動流程@test
public void startprocessinstance()
//test4-2為jbpm4_deployprop表中的stringval_字段值
5. 提交部門經理審批階段,也就是發起會簽的環節@test
public void completetask()
6.根據會簽人查詢代辦任務,完成會簽(部門經理審批)//查詢我的未辦理的任務列表
@test
public void findmytasklist()
}/**
* 完成子任務
* @param task
*/public void completechildtask(task task)
/*** 判斷主任務的子任務的個數,如果子任務個數==0,完成主任務
*/@test
public void findmaintask()
}
至此,就完成會簽(部門經理審批)的流程了,任務指向了下一節點(總經理審批) JBPM4 獲取任務
示例 1 xml version 1.0 encoding utf 8 23 process name test key test xmlns 4 start name start1 g 255,35,48,48 5 transition name 提交到科長 to 科長審批 g 63,25 6st...
jbpm4 引數設定
task test 2 xmlns description 測試型別 這樣是無法取到 description的 正確寫法是這樣的 task test 2 xmlns 測試型別 流程 xmlns 發布到資料庫中的時候會變成 流程 key process xmlns 這樣發布到資料 庫中,流程名稱就是中...
jbpm4流程服務介紹
1 流程引擎processengine的構建方式如下三種 2 流程引擎提供的主要服務介面如下 2.1 流程資源repositoryservice rs包含了管理流程定義的所有方法 發布 刪除 掛起和恢復 檢視 2.1.1 發布流程 2.1.2 刪除流程 2.1.3 掛起和恢復流程 2.1.4 檢視流...