1. 程式人生 > >asp.net強大後臺:learun混合工作流框架規範

asp.net強大後臺:learun混合工作流框架規範

工作流


以前,我們對標準工作流進行過簡單梳理,今天,我們再來看一下混合工作流。

了解混合工作流,我們必須要先分清角色、內容、流程之間的關系——即角色與內容是掛在流程節點上的功能點。在實際操作中,我們需要將流程節點控制好,再將不同的角色,以及對應的操作內容掛靠上去即可,這樣一來是可以方便理清關系,另外也可以使系統更有層次。


控制好非標準流程節點,可以由以下幾個方面著手。

1.如果流程配置者有配置SQL的能力,那麽將數據庫流程配置權限開放,讓配置者自行配置,這樣的開發工作壓力會小一些。

2.畫流程圖的方式。一個流程的執行可以通過流程圖來表現,對於產品經理來說是再熟悉不過了。通過流程圖的基本邏輯,可以將流程中遇到的各種情況可視化的展示出來,條理清晰而且操作簡單。缺點即開發難度過大,一般小團隊難以勝任。

3.通過一一配置功能來進行配置,這種方式雖然表面上看起來十分的繁瑣,但是相對於前兩種來說開發難度小,且對於配置者的能力要求不高。

具體來說,要單獨配置每一項功能的流程,先確定流程的主流程有幾個節點,如果碰到判斷的節點選擇是,碰到並發流程或執行的節點選擇最長的一個流程。確定之後,將所有節點的內容操作與角色配置出來,然後再配置該節點是否進行判斷,是否進行或操作,是否進行與操作。

如果有判斷操作時,則分出一個子流程,再將子流程按照上述方式進行配置,最終歸於主流程的某一個節點。如果有與操作時,要確定配置與操作的分支節點時是要配置在單個節點還是多個節點。

單個節點的話則需滿足這兩個節點才往下進行,多個節點時則將這幾個節點作為一個小流程單獨按照上述方式進行配置再合並至主流程,看是否滿足與行為。

如果有或操作判斷時,同樣要確定在哪個節點的或操作至哪個節點可以進行另外的節點流轉。

以上這些情況對於開發團隊來說也是一個巨大的考驗,因為不同的工作流程代表著不同權限的操作,不同狀態的流轉,而可定制化的流程則代表著其中的變化無窮,對於服務器的壓力,數據庫的冗余情況都不容樂觀。

那麽,如何設計高效的混合工作流呢?



設計一個後臺壓力小,操作簡單的高效混合工作流,可以有兩種方式。

第一:將非標準工作流拆分成多個標準工作流。

第二:開辟獨立與配置權限之外的工作流角色模塊。

1. 將混合工作流拆分成多個標準工作流

一個非標準工作流固然麻煩,可是在大多數的情況下,其可以拆分為幾個標準工作流。比如,某個非標準工作流可以線性拆分為多個分支流程,並發流程與執行、並發流程或執行。

將其每一個組合到一起,即可形成完整的工作流,那麽我們就可以在系統中提供組合模板,讓配置者可以進行選擇,組合到一起形成一個非標準工作流。

如果是非線性的,比如可能為分支套分支,並發套並發的情況,我們可以將每一種情況都拆分成一個工作流,然後將生產端入口保持統一,每一步的不同操作可以進入不同的工作流,最終流轉的出口保持一致即可。有點類似於開發中設計模式的工廠模式。

2. 開辟獨立與配置權限之外的工作流角色模塊

一般來說,我們在配置工作流角色的時候,都是使用類似權限控制的角色,比如到這個節點角色為庫管,另一個節點角色為商管。其實換個角度想想,再說設計工作流的時候,完全可以設計一個獨立於權限之外只配置工作流的角色。

比如“分支節點角色1號”“流程角色1號”“並發或角色2號”,然後再通過窮舉法,將所需要用到的使用流程都列出來,把角色放置於節點上。

這樣,一個活的需要配置的流程就變成了一個個的死流程。

再將這些角色賦予權限角色。再定義一些規則:比如若沒有配置此節點的角色則此節點默認通過,將某個工作流角色配置兩個權限角色則為或操作/與操作。這樣也就解決了上述的問題。


工作流可以說是後臺系統中比較復雜的一部分。即便某些系統中一開始沒有工作流,隨著系統功能的增加,也不可避免會用到工作流,所以提前了解下工作流的設計方法,對於產品來說很有幫助,在開始設計的階段也可以考慮將內容設計進去以免後期維護成本過大。

官方:http://www.learun.cn/

免費體驗地址:http://www.learun.cn/Home/VerificationForm

asp.net強大後臺:learun混合工作流框架規範