天天看點

開源工作流HYAppFrame來了

說到工作流,大家很容易想到JBPM,筆者也是。筆者是通過SharePoint工作流開始的,因為SharePoint過于龐大,後來選擇了JBPM。由于JBPM的Demo系統很簡陋,後續開發也比較繁瑣,在了解到其資料庫僅有數張表後,筆者就有了自己寫工作流的想法。當年,公司正在考慮上OA系統,前後調研和測試了約20多家知名OA,對OA的工作流功能有了深入了解。為了造福更多人,筆者發起了MiniOA項目,本來隻是打算介紹OA應用程式架構,誰知大家對工作流表現出濃厚興趣。

以前的OA産品為适應市場對工作流的需求,幾乎一夜之間全部更名成BPM。的确,一套應用系統有了工作流引擎,幾乎可以做任何事。筆者在實際項目中需要處理N多業務表單,涉及多個業務部門和崗位,一個業務流程順暢走下來,如果沒有工作流支援,單靠修改表單狀态幾乎不可能。在定制開發過程中,需求的多樣性要求工作流引擎有較高的靈活性。在過去工作中,筆者工作上獲得的成功有一半可歸功于長期積累的應用程式架構和工作流引擎,如果不是它們,筆者很難在短時間内滿足老闆和業務部門的需求。

筆者總結,管理系統工作流引擎通常需具備以下功能:

  • 可定義流程審批節點,可設定節點過期時間,并設定節點事件, 
  • 過期節點任務即時提醒,實作任務推送
  • 節點完成或建立時可提醒,包括郵件、站内短信或手機短信,可以同時抄送審 批流程外的人。
  • 支援節點分支和合并,例如條件分支下的審批金額的判斷 
  • 可隐藏審批意見 
  • 支援自由流程和固定流程 
  • 支援流程挂起、終止 
  • 支援流程版本管理 
  • 可在手機上進行審批 
  • 支援子流程 
  • 流程統計和報表
  • 流程圖動态顯示流程執行情況 
  • 流程設計器
  • 審批權限授權,例如出差代理 
  • 支援競争執行
  • 支援 M<=N 的節點處理。例如,同時啟動了 N 個任務,隻要其中的 M 個任

HYAppFrame工作流截圖,流程定義

開源工作流HYAppFrame來了

HYAppFrame工作流截圖,節點定義

開源工作流HYAppFrame來了

HYAppFrame工作流截圖,審批

開源工作流HYAppFrame來了

HYAppFrame工作流開發指南:http://wenku.baidu.com/view/443f8ca6312b3169a551a4e6.html

開源項目HYAppFrame雖然是WinForm, C/S架構,但其背景資料庫可完全适用于Web程式,也就是說,如果将HYAppFrame工作流改造成Web工作流,隻需要在前台開發ProcessEntity.aspx頁面用于審批,背景Workflow.cs适當修改,資料庫表結構和腳本不需要任何修改。HYAppFrame的工作流引擎最早是基于JSF + Javabean+ MySQL的,是以掌握其設計思想,它也一定能改造成Oracle資料庫。