Activiti工作流之流程變數

2021-08-30 19:17:17 字數 1853 閱讀 1560

以請假單為例, 流程變數的意義在於將請假單跟這個流程繫結在一起, 流程走到**, 請假單的狀態就跟到**, 相當於定義了乙個流程變數來儲存相對應的狀態.

流程變數存在兩個級別位置, 一是流程例項級別的的流程變數(在流程例項啟動時就將流程變數放入), 二是流程任務級別的流程變數(在執行當前任務時將流程變數放入)

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 執行時...