activiti基礎流量變數

2021-09-02 05:15:05 字數 4628 閱讀 5277

1.流量變數

流程變數在整個工作流中扮演很重要的作用。例如:請假流程中有請假天數、請假原因等一些引數都為流程變數的範圍。流程變數的作用域範圍是流程例項。也就是說各個流程例項的流程變數是不相互影響的。流程例項結束完成以後流程變數還儲存在資料庫中(存放到流程變數的歷史表中)。

①:啟動流程的時候設定

②:任務完成的時候設定

③:runtimeservice設定

④:taskservice設定

獲取流程變數:2種

①:runtimeservice獲取變數

②:taskservice獲取變數

注意:    

1.流程變數應該可以被所有的執行物件獲取(只要流程例項不結束,流程變數可以在任何地方獲取)

2.流程變數是可以覆蓋的

3.如果存放domain實體類的話就需要這個實體類實現序列化介面 serializable

2.部署流程定義

@test

publicvoiddeploytest()

3.啟動流程例項

@test

publicvoidstartprocesstest()throwsexception

4.設定流程變數

@test

publicvoidsetvartest()throwsexception

5.獲取流程變數

// 獲取流程變數的方式:

@test

publicvoidgetvartest()throwsexception

6.模擬流程變數的設定和獲取的場景

/**

* 模擬檢視設定變數和獲取變數的api,目的是整理屬性api

* //設定流程變數:4種

//①:啟動流程的時候設定

//②:任務完成的時候設定

//③:runtimeservice設定

//④:taskservice設定

//獲取流程變數:2種

//①:runtimeservice獲取變數

//②:taskservice獲取變數

*/@test

publicvoidsetvarandgetvartest()throwsexception

7.流程定義語言(bpmn)

7.1什麼是bpmn

業務流程建模與標註(business process model and notation,bpmn) ,描述流程的基本符號,包括這些圖元如何組合成乙個業務流程圖(business process diagram)

eclispse畫出流程,有兩個檔案bpmn

檔案和png檔案,其中bpmn檔案又可以叫做流程定義檔案,它需要遵循bpmn語言規範.png:就是乙個單純的,沒有任何作用.

7.2流程(process)

bpmn檔案乙個流程的根元素。乙個流程就代表乙個工作流。

7.3順序流

順序流是連線兩個流程節點的連線,代表乙個節點的出口。流程執行完乙個節點後,會沿著節點的所有外出順序流繼續執行。 就是說,bpmn 2.0預設的行為就是併發的: 兩個外出順序流會創造兩個單獨的,併發流程分支。

順序流主要由4個屬性組成:

id: 唯一標示,用來區分不同的順序流

sourceref:連線的源頭節點id

targetref:連線的目標節點id

name(可選):連線的名稱,不涉及業務,主要用於顯示。多出口原則要設定。

說明:結束節點沒有出口

其他節點有乙個或多個出口。如果有乙個出口,則代表是乙個單線流程;如果有多個出口,則代表是開啟併發流程。

7.4分支流程-流程圖

8.公共**抽取    

packagecn.itsource.activiti.day02;

importorg.activiti.engine.processengine;

importorg.activiti.engine.processengines;

importorg.activiti.engine.repositoryservice;

importorg.activiti.engine.runtimeservice;

importorg.activiti.engine.taskservice;

importorg.activiti.engine.repository.deployment;

importorg.activiti.engine.repository.deploymentbuilder;

importorg.activiti.engine.runtime.processinstance;

importorg.activiti.engine.task.task;

publicclassbasebpmn

// 啟動流程的定義的key

protectedprocessinstance startprocess(string processdefinitionkey)

/*** 在乙個流程例項中,乙個辦理人只有乙個唯一的任務

*@paramprocessinstanceid 流程例項id

*@paramassignee  辦理人

*@return

*/protectedtask querypersonaltask(string processinstanceid, string assignee)

}

9.分支流程-測試**

@test

publicvoiddeploytest()throwsexception

@test

publicvoidstartprocesstest()throwsexception

//測試駁回

/**

* ①:先完成報銷申請,

* ②:走到審批的時候,設定乙個

flag

的流程變數為

flase

,駁回

* ③:回到①

,在完成報銷申請

* ④:審批人又得到審批審批任務

*@throwsexception

*/@test

publicvoidnotpasstest()throwsexception

/*** 通過

*/@test

publicvoidpasstest()throwsexception {

string

processinstanceid

="2501";

string

assignee="

小剛";

task

= querypersonaltask(

processinstanceid

,assignee);

system.out

.println(

"獲取審批任務:"+

); //

②:走到審批的時候,設定乙個

flag

的流程變數為

flase

taskservice

.setvariable(

.getid(),

"flag"

, "true");

//通過

taskservice

.complete(

.getid());

以上就這些希望對大家有作用,謝

Swift基礎 01常量 變數

定義變數 var i 10 print i i 15 print i let j 20 常量一經定義不能自改數值 j 25 print j 例項化檢視 let v uiview frame cgrectmake 0,0,100,100 設定背景顏色 v.backgroundcolor uicolor...

for 變數 變數 形式 詳解

listlsit content.getheaders get set cookie for string val lsit 即形如 for 變數 變數 形式 for each是jdk5.0新增加的乙個迴圈結構,可以用來以此處理陣列中的每個元素 其他型別的元素集合也可以 而不用為指定下標而分心。集合...

Lua語言基礎 2 變數 變數的型別 注釋

變數 變數不需要在使用前宣告,且不需要指定變數的型別 string,number等 變數都是弱型別,j ascript語言,無需指定變數型別。lua中語句是否分號結尾都可以正常執行。print 是lua中內建的方法。lua中雙引號與單引號都表示引起來的都表示字串string型別。eg 你好 你好 變...