Activiti任務參數的設置方式和作用域

前言

Activiti的參數有兩種類型,一類是流程參數,一類是任務參數;流程參數是通過RuntimeService服務組件設置,在設置的過程中需要傳入執行流ID;任務參數是通過TaskService服務組件設置,在設置的過程中需要傳入任務ID;所以我們可以形象的認爲流程參數是和執行流綁定到了一起,任務參數是和任務綁定到了一起。流程參數可以查看這篇文章《Activiti流程參數的設置方式和作用域》

一:任務參數的設置方式

流程啓動之後,當走到某個任務節點時,用taskService.setVariable(任務Id,參數名,參數值)或者taskService.setVariableLocal(任務Id,參數名,參數值)的方式設置任務參數;

二:任務參數的作用域

1:通過setVariable和setVariableLocal設置參數的作用域不同,按兩種情況分開介紹:

(1)如果在某個任務中通過setVariable方式設置參數,則在同流程的所有任務中都可以通過getVariable方式獲取到;

(2)如果在某個任務中通過setVariableLocal方式設置參數,則在當前任務中可以通過任何方式(getVariable或者getVariableLocal)獲取到,在同流程的其他任務中不可以獲取到;因爲參數的作用域僅僅侷限於當前設置的任務中,而且任務被刪除,或者執行結束之後,參數就會失效。

2:任務參數作用域的個人理解

(1)在一個流程實例中,任務參數的作用域可以理解爲有兩類區域,一類共有區域(只有一個共有區域,所有任務共享),一類私有區域(每個任務都有自己的私有區域);

(2)任務通過setVariable和getVariable操作共有區域,通過setVariableLocal和getVariableLocal操作自己的私有區域;但是getVariable也可以操作自己的私有區域;

(3)任務通過setVariable設置的參數,被設置到了共有區域;任務通過getVariable方式是從共有區域裏獲取參數(也會從自己的私有區域獲取參數);

(4)任務通過setVariableLocal設置的參數,被設置到了自己的私有區域裏;任務通過getVariableLocal從自己的私有區域裏獲取參數。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章