基于WF設計業務流程平臺-權限體系
基于WF設計業務流程平臺-權限體系
在業務流程平臺中,權限體系是我最看重的,
業務流程平臺的權限設計與門戶類平臺的設計完全不同,業務流程平臺的權限設計最忌諱做成太監當政模式(也就是系統管理員最大,管理一且)
現在的一些業務流程平臺的權限使用[組],[角色]這種方式,早期我做系統也是用這種方式,對這種方式我不加評價
現在我設計的權限體系嚴格的按企業組織織構,人事關系,業務關系創建.
另外三權分立思想,扁平管理思想對我的應響很大,我的很多理論都來自這些思想
還有,在業務數據的共享,隔離,透明度上,不同的企業文化有不同的要求
比如東方與西方的上下級關系是:
西方:從屬的從屬不必然從屬
東方:下級的下級一定是下級
其實光是西方也有很多不同,比如德國,美國就有很大區別
即使在中國家,不同行業或不同體制的同一行業都有很大區別,在中國有些單位的員工管理竟然還在實行奴隸制,幫會制
當然,本文的目的不是討論管理體制的好壞,以上我表述我只是想說,一個業務流程平臺如果不能與企業的管理文化相對應,那么這個平臺沒有存在的意義.
舉個例子,比如一個請假流程,在有些單位無論怎樣設計都是無法讓人滿意,因為這些單位的很多崗位很難看到有人在崗,即使在崗也是在玩游戲
再舉個例子,比如一個請假流程,在有些單位是不需要的,因為這種單位的員工在被zhua進單位后,只有死了以后才能出來.
所以系統要適應企業文化,所謂企業文化就是管理文化,所謂管理文化就是權限體系(當然企業文化中還有一部分是思想上的奴化/煽情教育,這部分是我們系統邊界以外的,就不討論了)
下面我用一個例子來簡單介紹一個權限體系如何與流程結合:
現在的工作流理論有兩個主要來源:
一個是WfMC,
一個是Petri網
我對WfMC不加評論,Petri網中沒的關于權限的理論,當然這不是Petri網的錯,因為Petri網本身就不是為業務流程設計的,只是后來的學者將Petri網的理論用到了業務流程上.
這些年也看了不少工作流的理論資料,并沒發現對權限體系有比效深層次的介紹.不過沒有也好,可以自已發揮,下面看一個例子:
還是請假:
如果我的需求經理坐飛機去客戶哪里,花幾千元錢請客戶吃飯,再坐飛機回來給我帶我這么一張圖,我會殺了他…..
我對這張圖不滿意不是因為這張圖流程,活動,狀態都不是,而是因為沒有權限信息.
我需要這樣一張圖:
說明:
1.這張圖的連線我沒畫箭頭,用什么樣的箭頭表示什么樣的流轉方式,我會在后面的文章中會具體說明,
2.有些職能與狀態的交差區域的附加信息,我也會在后面的文章中會具體說明
3.這張圖沒的開始與結束結點,我也會在后面的文章中會具體說明
我還需要在不同的階段,與該流程有利害關系的涉眾都有什么權力,通常這部份信息我會讓需求經理在基本路徑定版后,做二次需求時提交
根據上面這張圖我們可以得到如下信息:
1.[X類請假流程],除了[部門領導]企業中的所有人都可以啟動
2.當[X類請假流程]的某個實例啟動后,只有該實例[啟動人(申請)]所在部門的領導才具有該實例的審批權
3.當[審批]完成后,只有該實例[啟動人(申請)]才能查看結果
注意:
上圖不能畫成這樣,這兩種畫法的語意區別我會在后面的文章中會具體說明
現在我們為上面的業務圖建立工作流模型
先看員工身份信息部分
不管數據庫中的表結構如何建,我們至少需要得到如下信息
[身份表]
用戶編號 | 所在部門 | 所屬職能 |
lzm | 甲部門 | 部門領導 |
wxd | 甲部門 | A職能 |
lmm | 甲部門 | A職能 |
wxwinter | 乙部門 | A職能 |
wdd | 乙部門 | 部門領導 |
再看[X類請假流程]啟動權限
不管數據庫中的表結構如何建,我們至少需要得到如下信息
[啟動權限表]
流程模板 | 可啟動流程的部門 | 可啟動流程的職能 | 權限 |
X類請假流程 | 所有 | 所有 | 允許 |
X類請假流程 | 所有 | 部門領導 | 不允許 |
預定義的規則是:
1.[權限]否定高于肯定
2.其他的組合與擴展會在后面的文章中會具體說明
上表中的兩條數據的邏輯運算得到:[X類請假流程],除了[部門領導]企業中的所有人都可以啟動
下面是工作流模板設計
最后是業務狀態表
不管數據庫中的表結構如何建,我們至少需要得到如下信息
[業務狀態表]
流程編號 | 結點編號 | 流程辦理部門 | 流程辦理職能 | 流程辦理人 | 狀態 |
預定義的規則是:
1.[流程辦理人]不為[空]時,該流程屬于[流程辦理人]
2. [流程辦理部門][流程辦理職能]為[空],[流程辦理部門][與流程辦理職能]者不為[空]時,該流程屬于[流程辦理部門][與流程辦理職能]身份的所有人
3.其他的組合與擴展會在后面的文章中會具體說明
最后我描述一下流程運行的狀態
我們以[wxd]要請假為例說明:
1.[wxd]登錄,跟據[身份表]得到[甲部門][A職能]
2.[wxd]加載可啟動的流程列表,以[A職能]得到[X類請假流程]啟動權限
3.[wxd]填寫[請假單],以[wxd][甲部門][A職能]的身份啟動[X類請假流程]
4.[X類請假流程]啟動后,[審請休假]得到[wxd][甲部門][A職能],并自動進入[審批]
5.[審批]是一個等待結點,激活后將通過綁定得到[審請休假]的[甲部門],在進入等待前將[甲部門],[部門領導],[等待]寫入[業務狀態表]
流程編號 | 結點編號 | 流程辦理部門 | 流程辦理職能 | 流程辦理人 | 狀態 |
000001 | 1 | 甲部門 | 部門領導 | 等待 |
6.[審批]進入等待
7.[lzm]登錄,跟據[身份表]得到[甲部門][部門領導]
8.[lzm]加載任務列表,跟據[業務狀態表]得到[000001]流程的[1]結點辦理權限
9.[lzm]填寫[審批單],提交流程,觸發[審批]
10.[審批]被觸發,在關閉前,將[完成]寫入[業務狀態表],并自動進入[通知結果]
流程編號 | 結點編號 | 流程辦理部門 | 流程辦理職能 | 流程辦理人 | 狀態 |
000001 | 1 | 甲部門 | 部門領導 | 完成 |
11..[通知結果]是一個等待結點,激活后將通過綁定得到[審請休假]的[wxd],在進入等待前將[wxd],[等待]寫入[業務狀態表]
流程編號 | 結點編號 | 流程辦理部門 | 流程辦理職能 | 流程辦理人 | 狀態 |
000001 | 1 | 甲部門 | 部門領導 | 完成 | |
000001 | 2 | wxd | 等待 |
12.[通知結果]進入等待
13.[wxd]登錄,跟據[身份表]得到[甲部門][A職能]
14.[wxd]加載任務列表,跟據[業務狀態表]得到[000001]流程的[2]結點辦理權限
15.[wxd]提交流程,觸發[通知結果]
16.[通知結果]被觸發,在關閉前,將[完成]寫入[業務狀態表]
流程編號 | 結點編號 | 流程辦理部門 | 流程辦理職能 | 流程辦理人 | 狀態 |
000001 | 1 | 甲部門 | 部門領導 | 完成 | |
000001 | 2 | wxd | 完成 |
總結
本文只是權限體系的一篇概念性文章,并沒涉及到
- 任務接件,
- 任務分配,
- 任務授權,
- 任務取回,
- 任務退回,
- 子部門,
- 臨時項目組,
- 一人多部門,
- 一人多職能,
- 流程的制定權,
- 流程的辦理權,
- 流程的監督權,
- 流程的知情權
等基本權限模型,這些內容我會在后面的文章中具體描述.
浙公網安備 33010602011771號