以請假單為例, 流程變數的意義在於將請假單跟這個流程繫結在一起, 流程走到**, 請假單的狀態就跟到**, 相當於定義了乙個流程變數來儲存相對應的狀態.
流程變數存在兩個級別位置, 一是流程例項級別的的流程變數(在流程例項啟動時就將流程變數放入), 二是流程任務級別的流程變數(在執行當前任務時將流程變數放入)
10張表:
select * from act_re_deployment; -- 一 流程部署表
select * from act_ge_bytearray; -- 二 流程二進位製表
select * from act_re_procdef; -- 三 流程定義表
select * from act_ru_execution; -- 四 流程正在執行表
select * from act_hi_procinst; -- 五 流程例項歷史表
select * from act_ru_task; -- 六 流程當前任務表
select * from act_hi_taskinst; -- 七 流程歷史任務表
select * from act_hi_actinst; -- 八 流程歷史活動節點表
select * from act_ru_variable; -- 九 流程變數表
select * from act_hi_varinst; -- 十 流程變數歷史表
先決條件:
//定義乙個成員變數
repositoryservice repositoryservice;
runtimeservice runtimeservice;
taskservice taskservice;
/*** 獲取流程引擎
*/@before
public void setup() throws exception
/*** 新增流程例項級別的流程變數並啟動流程
*/@test
public void startprocessinstancewithvariables()
① 流程例項級別的流程變數(流程例項範圍大, 能被範圍小的流程任務獲取到)
流程任務物件/流程正在執行物件查詢流程變數測試**:
/**
* 根據辦理人查詢任務並找出流程變數
*/@test
public void querytaskbyassignee()
小結: 在流程例項級別上的流程變數, 當流程任務物件所有節點都執行完成之後, 整條流程例項就已經結束了, 此時的流程變數就消失了, 也就無法再根據流程任務物件來拿流程變數了
② 流程任務級別的流程變數
/**
* 在特定的任務下放入流程變數
*/@test
public void setvariablesintask()
/*** 取出流程變數
*/@test
public void getvariablesintask()
還有一種通過物件的方式新增流程變數的, 具體用法跟上面差不多, 就不貼出**了, 但是注意要在類進行序列化, 並且提供uid.
小結: 在流程任務物件級別上的流程變數, 當前任務以及之後的任務能夠通過當前正在執行的物件(因為該流程變數掛載在當前正在執行的物件上)來獲得到流程變數, 但是在當前任務之前的則無法獲取該流程變數.
activiti系列回顧:
activiti工作流之簡介與環境搭建
activiti工作流之流程部署和相關操作
activiti工作流之任務的執行/查詢/完成
Activiti工作流概述
一 概述 工作流 workflow 就是 業務過程的部分或整體在計算機應用環境下的自動化 它主要解決的是 使在多個參與者之間按照某種預定義的規則傳遞文件 資訊或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現 工作流管理系統 workflow management system,...
Activiti工作流課程
activiti5是由alfresco軟體在2010年5月17日發布的業務流程管理 bpm 框架,它是覆蓋了業務流程管理 工作流 服務協作等領域的乙個開源的 靈活的 易擴充套件的可執行流程語言框架。activiti基於apache許可的開源bpm平台,創始人tom baeyens是jboss jbp...
Activiti 工作流框架
1 什麼是工作流,工作流的核心物件是什麼,activiti共運算元據庫多少張表 工作流就是多個參與者,按照某種預定義的規則,傳遞業務資訊,進行審核的功能乙個框架 activiti processengine,呼叫service,從而運算元據庫的表 23張表 大致分為 1 資源庫流程規則表 2 執行時...