周彬瀟 中航工業航空動力機械研究所 湖南株洲 412002
?
關于工作流引擎投遞規則的探究
周彬瀟 中航工業航空動力機械研究所 湖南株洲 412002
【文章摘要】
工作流引擎是工作流系統的核心,一個強大的工作流引擎不但對業務系統的運行,提供高效穩定的平臺支撐,而且對軟件開發效率的提高,代碼利用率、移植性、靈活性、健壯性等的增強,具有重要的作用,而節點的投遞規則在工作流引擎中扮演著重要角色,它設計的好壞直接決定了該款工作流引擎的性能強大。本論文結合項目實際,提出幾種重要的工作流引擎投遞規則,工作流引擎具備這幾種投遞規則計算,可以顯著縮短工作流系統的開發周期。
【關鍵詞】
工作流;工作流引擎;投遞規則
眾所周知,各級政府機關都存在著很多的業務流程,例如公文的處理、各種審批、請示、匯報等,這些都是流程化的工作,特別是政府審批。政府審批過程是基于國家或部門法律、法規、規則等制定的政務處理流程,在未使用工作流之前,由于人為對工作程序的刪減、添加等,使得過程控制難度很大,如超越職權的審批(越過了必須的審核步驟)、人為的刁難(增加審核步驟)、無限期的拖延等。
工作流是一類能夠完全或者部分自動執行的經營過程,它根據一系列過程規則、文檔、信息或任務能夠在不同的執行者之間進行傳遞與執行。通過在企業管理中引入工作流技術,監控、審計和管理業務流程的有序執行,可以有效地約束和控制企業審批過程,避免人為因素的干擾,減少推諉扯皮現象的發生,大大提高企業管理效率;同時,基于工作流技術,通過對企業審批業務的統一管理,可以有效整合企業辦公資源,消除信息孤島的產生,提高企業管理的決策支持能力。
工作流管理系統是一個軟件系統,工作流引擎是工作流管理系統的核心部件,它完成工作流的定義和管理,控制業務過程中各種任務發生的先后次序,調度相關的人力或信息資源,按照預定的邏輯次序推進工作流實例的執行,實現業務過程的自動化執行,為企業業務運行提供軟件支撐環境。工作流管理系統的主要功能是通過計算機技術的支持去定義、執行和管理工作流,協調工作流執行過程工作之間以及群體成員之間的信息交互。工作流管理系統將業務流程中工作如何組織協調在一起的規則抽象出來,從而分離了具體工作的邏輯和流程組織的邏輯。實現對業務過程的抽象建模、業務過程仿真分析、業務過程優化、業務過程管理與集成,從而最終實現業務過程的流程自動化管理。
工作流引擎投遞規則,指下一步工作人員的接受人范圍處理的規則。也就是流程從一個節點跳轉到下一個節點的處理人計算規則。下面具體介紹幾種重要的投遞規則:
2.1按執行人所在組織查找崗位計算
節點配置按崗位計算,并設置完成崗位,工作流引擎會自動按照設置的執行人的部門范圍計算當前崗位的執行人,如果該執行人部門下沒有這個工作崗位人員,工作流引擎會把當前執行人的部門級次提高一個級別,然后按崗位依次計算。
該投遞規則就是崗位的權限與部門權限的交叉形成的被投遞的人員集合。崗位表示能做什么事情,部門表示能做那里的事情,崗位和部門表示一個執行人能做那里的那些事情。使用按崗位投遞規則,只限于前后相連的節點。
2.2按節點綁定的部門計算
節點配置按部門計算,并設置完成部門,工作流引擎會自動按照設置的部門計算當前執行人。如果設置了按部門計算,那么流程會將待辦發送給該部門下所有用戶作為執行人。
2.3按指定的人員計算
節點配置成指定人員投遞規則,并設置指定的人員,那么流程引擎自動查找設置的人員作為節點執行人。該投遞規則寫死的方法使用于某個業務辦理人比較固定的場景,如果人員發生調動,就要重新設置人員。
2.4按指定節點處理人計算
該投遞規則的應用場景比較普遍,一個節點要求執行人同它之前某一個節點執行人一致。設置方式只須獲取之前節點的節點編號,當流程跳轉到該節點,流程引擎根據指定的節點編號查找之前節點執行人。
2.5按指定節點人員崗位計算
該投遞規則適用于某個節點要實現其上一個節點之前的某個節點同崗位執行人的場景。兩節點之間并無直接關系。
2.6按發送人選擇計算
對于無法確認,經常變動或沒有規則可循的訪問節點,只有采用發送人自動選擇的方式。該投遞規則對于那種業務復雜,無法確認執行人的流程,是一種最直接、最重要的解決方案。使用了該種投遞規則,必須在接收人選擇器里對接收人進行范圍過濾,同時要求用戶必須熟悉業務,一旦選擇錯誤的人員,整個流程將按照違背正確業務的流程在運轉,流程引擎也不會報錯,流程仍然能夠運行辦結。
2.7按EL表達式計算
對于這樣一類使用場景,業務需要申請人在填寫表單時確定后面某一節點執行人,讓流程按照申請人指定的執行人執行,這就需要EL表達式投遞規則。首先在申請人填寫表單時候,填寫好后面某一節點執行人;其次在后臺編寫代碼創建變量名,獲取表單中的執行人;最后在指定的后面某個節點上的參數配置里選擇EL表達式,并將后臺編寫的變量名作為其參數。當流程運轉到指定節點,流程引擎自動識別EL表達式中變量名作為當前節點執行人,達到業務提前由申請人指定,流經該節點無需發送人選擇的目的。
2.8按SQL計算
該投遞規則是幾個流程投遞規則里面最靈活的一種,通過寫SQL語句來實現計算執行人的目的。這需要設計人員特別熟悉數據庫表結構,能熟練的使用SQL語句。
2.9與開始節點處理人相同計算
當前節點處理人與開始節點一致情況下,設置了該節點訪問方式,流程引擎會自動按開始節點同一個人處理。
2.10按綁定的崗位和部門交集計算
設置該投遞規則,必須配置該節點的崗位和部門,流程引擎會自動計算該部門下具有該崗位的人員,作為該節點執行人。
2.11僅按綁定的崗位計算
按照節點上綁定的崗位來計算接收人,這里去掉了部門維度的過濾,執行人通過綁定的崗位計算。
伴隨著信息化的高速發展,越來越多企業利用電子審批流程來替代傳統的紙質審批,達到提升企業管理水平的目的,一款具有高效計算節點投遞規則的工作流引擎,無不是給企業帶來福音的選擇。
【參考文獻】
[1]蔡昭權,盧慶武,鄭宗暉.基于元數據的快速開發平臺設計與實現[J].計算機工程, 2009, 35(9):60-62.
[2]Ullman J D, Widom J. A First Course in Database Systems[M].[S.l.]:Prentice Hall,1998.