Activiti使用者任務分配

2021-08-08 14:13:39 字數 2473 閱讀 7482

原始出處 、作者資訊和本宣告。否則將追究法律責任。

一、前言

上篇博文《**activiti工作流引擎使用者管理》中已介紹了如何自定義自己的使用者管理模組。然而困惱大多數新手的另乙個問題:如何將任務分配給有層級關係的組織結構使用者呢?例如,我只想把任務分配給我上級部門的領導審批,而上級部門的任務又只分配給指定的上級審批。而按activiti的使用者(user)、組(group)來平級關係來操作的話,則需要設計多個組、多個配置來實現,這顯然不合適。

二、需求分析

一般公司的組織結構:

再看看我專案中的部分審批流程截圖:

所以,我申請人的申請當然是給我上級部門領導審批,別的領導無權審批。而部門經理審批完後要相對應的上級中心領導來審批。就是這種層級關係。

三、配置檔案

用過activiti的都知道,流程定義的配置檔案為.bpmn,在eclipse中可以檢視或xml格式開啟。上面已經看了流程圖,那下面則看看其xml中是如何配置的:

首先,我用的是動態表單配置,而每個節點允許簽收任務的使用者分配如上圖紅色框。

2、activiti:candidateusers屬性:此節點允許簽收任務的使用者。

例:3、activiti:candidategroups屬性:此節點允許簽收任務的組。

例:4、activiti:assignee屬性:此節點指定使用者簽收任務。例:

大家應該注意到了,我的配置檔案中,不是確定某個人或某個組而是個表示式。沒錯,關鍵點就在於此,應為用了spring,所以可以用service表示式來動態指定誰能簽收此節點任務。若沒用spring的話,解決辦法還是有的,可以在此節點上設定***啊,監聽此任務是誰申請的來判斷受理人。

so,廢話不多說。看看表示式中我所呼叫的方法吧:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

/**

* fms系統流程指定受理人目錄業務介面

* @author linhy

*

*/

publicinte***cefmsldapservice

看介面,大家應該知道什麼意思吧,我根據啟動例項流程的人,然後通過自己的使用者管理系統去查詢符合要求的受理任務者。要注意的是,這些方法查詢出來的返回值必須是string或list。

恩,這樣就解決了如何去指定有層級組織結構的任務分配問題。無需去多配置,多分組。完全可用自己的使用者管理系統組織架構去動態查詢。這就是activiti的動態表單最大的特點,靈活。

四、結語

兩篇文章,介紹了下自己對於activiti工作流引擎,使用者和任務分配模組的見解。並不是很深入,也不是很嚴謹,只是純粹的分享與交流。接下去將還會陸續寫些關於activiti工作流引擎的使用心得,感謝閱讀,本文若有不足之處,還望諒解指正。

分享是種快樂,堅持是種精神!

本文出自 「學而思」 部落格,請務必保留此出處

activiti5使用者任務分配

使用者任務分配辦理人 1.使用者任務可以直接分配給乙個使用者,這可以通過humanperformer元素定義。humanperformer定義需要乙個 resourceassignmentexpression 來實際定義使用者 eg kermit 任務只有乙個使用者的時候在activiti中,使用者...

任務分配問題

任務分配問題是在加權 二分圖中尋找最大 或最小 加權匹配的問題。隱藏 分為以下幾類 這些問題都是組合優化的研究物件。有一些員工要完成一些任務。各個員工完成不同任務所花費的時間都不同。每個員工只分配一項任務。每項任務只被分配給乙個員工。怎樣分配員工與任務以使所花費的時間最少?婚配問題 有一些男人和一些...

任務分配問題

題目要求 輸入 第一行是操作員的人數n 4 輸出 完成所有任務的最短時間。測試用例 test input expected output time limitation memory limitation extra process number test case 1 view plain 4 3...