工作流起源于制造業和辦公自動化領域。它是針對日常工作中具有固定程序的活動而提出的一個概念,目的是通過將工作分解成定義良好的任務、角色,按照一定的規則和過程來執行這些任務并對它們進行監控,提高辦公效率、降低生產成本、提高企業生產經營管理水平和企業競爭力。在現代企業的各個業務領域,工作流程發揮著關鍵的作用。比如,在業務操作層,工作流程實現了在業務操作層面諸多復雜環節的標準化和自動化;在企業事務層,為組織機構龐大、制度復雜的企業提高管理效率,提升管理水平,減少人為因素。
企業工作流服務現狀
目前,絕大多數已經上線運行的或處于建設期的企業應用系統均有自己的工作流服務模塊,企業用戶通過參與應用系統中與業務流程相符的流程應用來完成工作。工作流服務已經成為企業業務應用中不可缺少的基礎服務,用于滿足不同業務流程的不同需求。例如,通過中間件與應用系統的集成,對企業內應用系統的身份管理與認證功能進行集成整合,從而替代原有系統中用戶存儲、管理及認證的功能,實現對企業用戶身份信息統一管理和認證。
如今,隨著企業應用的不斷深入,跨系統的流程應用越來越多,而現有的分散于各個應用系統的工作流服務與數據、資源等周邊模塊耦合緊密,甚至有些工作流系統只是在業務數據上進行流程標識,并不具備完全獨立的工作流服務引擎,例如在工作流概念還不成熟、企業信息化初期設計建設的一些應用系統很是如此。還有一些應用系統中的工作流把流程視為動作組件的集成編排,每個動作組件對應實際業務流程的每個環節,通過動作組件的開發部署滿足業務需求變更。雖然這類工作流服務使用了裝配件的思想來適應業務流程的變化,在實施過程中有動態適應業務的優勢,但它使用環節驅動流程,無法滿足一些復雜流程的特殊需求。
在企業應用的某些含有工作流功能的套裝軟件,則無法滿足多分支、非對稱流程等復雜需求。例如,基于SAP軟件實現的企業ERP系統,在業務流程功能方面,往往需要借助其他應用系統的工作流服務來完成數據流轉。還有一些基于軟件開發平臺的工作流產品,例如微軟提供的Workflow Foundation開發平臺,雖然能夠滿足靈活的流轉需求,但流程變更需要小范圍的開發工作,要求企業信息維護人員具備一定的代碼閱讀和開發能力,維護難度加大。
工作流服務基本要素
為滿足企業辦公流程需要,企業可建立相對于業務數據、資源數據、應用調用獨立的工作流服務,這樣才能夠真正適應企業辦公流程業務繁雜、應用靈活多變的特點。
工作流服務應至少包含三個主要功能模塊:
1.流程定義管理:負責把業務流程包含的數據編排成工作流引擎能夠識別和工作的信息,包括過程的開始和結束條件、組成活動、在活動間進行導航的規則、需執行的用戶任務、所有工作流相關數據的定義等,并建立和維護流程與機構的隸屬關系。
2.工作流引擎:以流程定義為輸入,負責系統所有流程的有序流轉、用戶任務的分發和歸并,記錄流程的層次和嵌套關系,保留流轉痕跡及任務前驅和后繼信息。
3.用戶任務管理:負責用戶申請經流程信息和用戶權限過濾后的活動文檔,并將活動文檔解析為可操作的活動入口;在用戶提交任務后,將流程回執文檔打包返回工作流引擎,同時觸發業務數據更新。
在企業辦公應用系統中,工作流服務至少應提供三類對外接口:
1.基礎數據接口:負責與資源數據交互,調用資源數據所維護和管理的機構、角色、人員等企業基礎數據。
2.業務數據接口:負責在業務數據中提取數據標識給工作流引擎,用戶提交任務通知業務數據更新及提取用戶對數據的操作權限。
3.應用交互接口:負責用戶或應用程序與工作流服務間的交互調用。
配置流程定義
工作流定義文件應采用一種跨平臺、跨網絡、跨語言數據描述方式,例如XML語言,它具備很強的可讀性、易用性和可擴展性,同時,可以解決異構平臺之間的無縫連接和互操作性問題。
企業辦公流程本質上是一個有序、有控制、有審計的業務過程,流程間存在分支、主輔和銜接關系,橫向存在相同或相似環節比對,縱向存在業務流程分類。因此,工作流定義除預置流轉環節、流轉規則、操作入口、任務分發等基本要素以外,還應考慮過程控制、權限分配、環節分類、流程嵌套、通知傳閱等因素,以共同構造和描述企業辦公流程。
在流轉模式方面,工作流引擎需要到達一定粒度。工作流引擎所支持的流轉模式主要表現在流程定義當中,流程定義中一般包含環節和活動入口兩個基本要素:環節定義了流程流轉的步驟;活動入口定義了用戶參與流程的過程,它包含于流程環節中。活動入口定義的流轉方向將環節連接在一起,描述了流程的流轉過程,從而構成了完整的流程框架。
在較早的工作流服務設計和應用中,往往是把環節作為流程流轉的關鍵因素,驅動邏輯存在于每個環節當中。這樣,用戶被限制在環節當中,這種設計只適用于流轉軌跡規則簡單清晰的流程。而建立顆粒度細化到用戶的流轉模式,環節只作為用戶活動中具備標識作用的屬性,驅動邏輯被統一定義在活動入口內,從而能夠在很大程度上提升對復雜流程的兼容性。
建立任務分發和歸并機制也是工作流設計中的重要環節。流程的流轉過程是任務通過一個用戶流轉至另一個或多個用戶,實際上總是一個由單點到多點的分發過程,而一對一的流轉應作為一對多流轉中的特例。用戶任務分發后,總是需要把它們有規則地歸并起來,歸并方式包括局部和全局歸并兩種:局部歸并能夠適應流程內某些環節的小范圍并發,如部門內部發文的會簽環節,而全局歸并能夠將流程所有分支聚合起來,滿足流程整體歸并和最終結束的要求。
值得一提的是,任務歸并時應按照業務需求所對應的歸并規則自動完成,如流轉業務中常見的少數服從多數、多數服從少數、單一任務優先、任務數量優先等規則,這些規則也能夠極大地提高流程的靈活性和適應性。
建立異常處理機制
任何應用程序被執行的過程中都可能因為各種各樣的原因引發異常,健壯的程序代碼都會包含異常處理的邏輯,便于快速定位和處理。而工作流作為一種基礎服務,應更為重視對異常的處理和響應。常見的工作流服務異常有:
1.工作流服務內部異常。這類異常由工作流服務本身觸發,發生在流程實例的生命周期過程中,如流程定義與解釋程序不匹配等情況,是流程定義過程中無法預知的異常。
2.對外接口調用異常。這類異常發生在工作流服務與其他應用功能模塊之間相互調用過程中,如接口調用函數不匹配、調用參數傳遞錯誤,或接口發布不可用等。
3.任務異常。這類異常實際包含工作流服務和其他模塊所觸發的兩種異常,主要是由于未通過應用數據的完整性和合法性校驗、資源數據不可用、活動文檔解析錯誤等原因而觸發。
異常觸發后,工作流服務一方面應將異常信息和相關幫助信息提示給用戶;另一方面,應記錄異常的環境信息,如程序調用堆棧的完整異常信息(包括調用的函數或過程的名稱、傳遞的參數名稱和內容)和流程環境信息。
工作流服務還應提供一套異常處理機制,支持根據異常記錄,通過人工分析或自動處理或兩者相結合的方式,使流程實例重新恢復到正常流轉或預期狀態。
另外,工作流服務還應保存完備的流程日志。工作流服務由設計到投入運行,企業業務部門對流程日志的統計分析需求通常會不斷增加和細化,統計分析應主要圍繞業務數據、機構層次、流程環節、用戶等幾個維度,所以工作流服務應記錄每一次用戶參與流程活動的日志信息,主要包括用戶選擇的活動入口、本次活動關聯的前驅活動、活動入口所激活的后繼活動等,這些信息描述了流程實例的完整生命周期。在記錄這些流程日志的同時,還必須記錄與其相關的資源數據、業務數據等擴展信息,以備關聯分析和統計,流程日志與擴展信息最終被保存在任務記錄列表內。
另外,還應針對企業的流程日志的統計分析功能建立相對獨立的格式化存儲,從而既能夠優化工作流服務性能,又可以為定制個性化統計分析提供擴展空間。
工作流技術標準化組織WFMC(工作流管理聯盟)關于工作流的定義:工作流是一類能夠完全或者部分自動執行的經營過程,它根據一系列過程規則、文檔、信息或任務能夠在不同的執行者之間進行傳遞與執行。其中有三個要點:有多人參與;能夠完全或部分自動執行;根據過程規則或其他信息進行傳遞。