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