工作流的書現在不少了,規範也不少了,開源專案更不少了,學起來要好久了。但是到底乙個工作流系統要有什麼用呢?記得看過一篇文章,還列了100多點功能,看著頭大。能不能簡單的說明,工作流是做什麼的?用了乙個工作流後,乙個系統應該有什麼樣的效果呢?
在我這個土包子看來,乙個好的工作流有這三個功能:
第乙個最大的功能是流程控制。簡單的說,就是消滅if-else和switch-case語句。乙個使用工作流的系統,在頁面和業務類都不應該有太多的if-else和switch-case。這兩者都是控制業務流程流轉的,而這項工作,是工作流的天職。所以如果系統用了工作流,還是有大量的這種語句,那麼這個系統就是失敗而毫無意義的。其實二和三都是這個功能的子功能。
第二個功能是狀態控制,簡單的說,就是消滅對業務表的getstatus和setstatus,無論pestinet比fsm的理論先進多少,狀態控制始終也是工作流最大好處之一。伴隨著流程的流轉,在某個點狀態都是定好了,我們無須操心,直接列印出來就ok了,這個是對於有乙個主業務資料,並關心其狀態的業務模型,這個是重中之重。就好像無論你吹噓社會主義比資本主義先進多少倍,保證人民的溫飽才是最重要的。如果我用了工作流,還整天要去關心和update乙個唯一主業務表的狀態,那無疑是悲哀的。當然,多業務資料狀態是另外一回事。
第三個功能是角色控制。簡單的說,就是消滅if (user == ***) || (roles == ***))這種語句。角色或者使用者所能獲得的任務,所能進行的操作,都是在工作流引擎裡面返回出來的時候,都已經做了過濾判斷了,上層**,無須關心。
為了有效的完成這三個功能,乙個工作流引擎,無論基於那種理論進行內部流轉,都還應該提供足夠的支援,能夠靈活的插入業務判斷和執行點,根據業務,進行原子業務邏輯判斷和操作,角色處理。
這三個功能的實現,是乙個工作流系統成功應用的標準,如果乙個工作流引擎,不能滿足這樣的需求,那麼無論它的核心理論是多麼先進的,那麼它也始終是學院派的乙個玩具而已,而不是乙個對於企業應用系統真正有用的產品。
工作流專案實施經驗總結(二) 系統基本功能討論
由於工作流審批系統設計企業管理的細節,並且企業流程都有其自身的特點及複雜性,因此,流程定義與執行,是工作流系統最基本的功能。以下詳細討論各個部分的功能,本人在今後在進行工作流選型時也會著重考慮,因為他關係著系統的生死,系統也可以給大家做乙個參考。作為完善的工作流系統,系統交付後,全部應交由甲方公司管...
Bash基本功能
history 選項 歷史命令儲存檔案 c 清空歷史命令 w 把快取中的歷史命令寫入命令儲存檔案 歷史命令預設儲存1000條,可以在環境變數配置檔案 etc profile中進行修改 必須重新登陸,歷史命令可以儲存檔案 歷史命令的呼叫 使用上,下箭頭呼叫以前的歷史命令 使用 n 重複執行第n條命令 ...
Nginx基本功能
1 靜態http伺服器 首先,nginx是乙個http伺服器,可以將伺服器上的靜態檔案 如html 通過http協議展現給客戶端。配置 plain view plain copy server 2 反向 伺服器 什麼是反向 客戶端本來可以直接通過http協議訪問某 應用伺服器,管理員可以在中間加上乙...