秦 健,李 軍,錢 進,牛宏睿,白 麗
(1. 中國鐵道科學研究院 電子計算技術研究所,北京 100081;2.廣州市地下鐵道總公司,廣州 510030)
隨著網絡時代的到來,各城市軌道交通公司利用信息技術,打造“數字化系統”,從而推進信息化建設的步伐。城市軌道交通安全生產表單流轉審批系統可使企業各部門工作人員方便地共享信息、高效地協同工作。然而,傳統的辦公自動化系統仍存在著一些問題,如公司組織機構、業務流程改變時,系統不能滿足變化后的辦公需求,而工作流技術正好適應了這種需求。工作流技術是計算機支持協同工作的一部分,通過將業務流程分解成良好定義的活動、角色和過程規則,結合計算機和網絡技術來實施流程管理、流程分析和流程再造。它可以實現對業務管理的過程控制以及決策支持,并實現業務流轉和控制的要求,可解決信息復雜、人員眾多、崗位變動及煩瑣流程處理等一系列問題。根據軌道交通行業的業務特點,結合實際應用,本文開發了一套基于工作流技術的城市軌道交通安全生產表單流轉審批辦公自動化系統,可以實現業務和公文信息的自動流轉。
工作表單流轉系統的業務處理流程如圖1。企業在對業務活動進行標準化管理分析后,會總結出一定數量的工作表單,每張表單都會設置特定格式的具體項目和填寫內容,在使用過程中這些表單會發生數量調整和結構修改。因此,需要設計一個方便的工作表單設計工具,能夠保證用戶自己靈活地定義和修改。

圖1 工作系統業務執行過程
定義工作流時需要參考員工或崗位數據,引用外部應用程序的編程接口。在設計好的工作表單上,將每一步流轉過程與具體項目對應起來。一般在辦公類流程中,每一步流程填寫的內容沒有嚴格的形式限制。用于業務流程的工作表單則有所不同,表單中會包含具備特定格式的文字項、復選項和網格項等,流程設計時要求每步流程一定要精確到包含表單中的哪些具體項目,這些項目需要按特定的格式填寫,還要通過精確的權限控制設定,保證每項內容與填寫人有準確的對應關系,避免填寫或修改自己沒有權限的內容、發生填寫責任不明確的情況。員工按權限從定義好流程的工作表單中選定具體的某個表單,填寫第一步流程,提交后就啟動了流轉過程。流轉處理中需要參考崗位和權限數據,通過對工作流數據的控制操作,生成工作列表。通過權限控制要求每個人可以在界面中只對自己負責的部分進行填寫和審批操作,確保工作流程準確、流暢、快速地進行。
通用表單工作流管理系統模塊結構如圖2。
1.2.1 工作表單定義

圖2 通用表單工作流管理系統模塊結構
在系統初始化時,該部分可以為用戶一次性完成主要表單的設計和導入,在系統使用過程中,該模塊允許用戶根據需要隨時進行現有表單的修改維護,以及補充加入新表單。表單的設計模塊為用戶提供一套可以靈活方便地定義修改表單的工具,該工具有一定的獨立性,設計的結果形成一個表單定義文件。表單輸入項有文本輸入、復選框、網格控件3種類型。表單導入模塊將表單定義文件中的數據導入到數據庫對應的表中。
1.2.2 工作流程定義
表單流程設置模塊將表單中各控件分別定義在不同的流程步驟中,每個流程包含的控件可以是文本輸入、復選框、網格控件3種類型的任意組合。為每步流程指定一個負責崗位,可以指定一個簽名控件,記錄同一崗位中該步流程的實際填寫人員。另外,對流轉可以設置一定的約束條件,比如可以限定該表單適用的部門范圍,使得操作員只需要處理本部門適用的表單,以簡化工作環境。
采用流程設計器進行設計,設計好的流程按包、按流程名保存成xml文件。
1.2.3 工作表單流轉
員工登錄后,系統自動將已流轉到達的表單顯示在流轉處理列表中,該員工打開表單處理后提交到下一流程。同時,系統還設計了自動提示功能,當有新流轉表單時,自動產生畫面或聲音提示。每位員工可以查看和監控權限內的表單及其流轉狀況,需要時可以發出催辦信息以要求加快流轉,或中止已失效表單的流轉。對工作表單,可以按流轉狀態、表單類型、啟動時間、申報人員等不同的條件進行查詢及統計,形成各類統計分析報表。
流程流轉JAVA算法代碼如下:
(1)啟動流程:
// 獲得流轉步驟
String atid = this.getRequest().getParameter("nextStep");
// 獲得執行人員
St ring nextMembers = this.getRequest().getParameter("nextPeoId");
//提交任務項(完成任務項)
ActivityACEMember member = new Act ivity-ACEMember();
member.addUser(nextMembers);
//創建并啟動流程
piid = execut ionService.createAndStar t-ProcessInstance(processName, input, atid, member);
//保存辦理意見
wfOpinionManager.saveWfOpinionByParam(piid,handleOpinion,nextMembers,nul l,status,processName,user);
(2)流程流轉:
// 獲得流轉步驟
String atid = this.getRequest().getParameter("nextStep");
// 獲得執行人員
String nextMembers = this.getRequest().get-Parameter("nextPeoId");
//提交任務項(完成任務項)
ActivityACEMember member = new Act ivity-ACEMember();
member.addUser(nextMembers);
//得到輸入參數對象
Work Item work Item = executionService.get-Work ItemBy Id(wiid);
executionService.updateProcessIns Variable(piid, workItem.getPtid(), "mainDept",department Ids);
1.2.4 崗位與權限管理
定義系統中的員工基本信息,并設置崗位信息以使流程的定義具備相對的靈活性。權限按崗位分配,每個員工可以有多個崗位,其最終的實際權限為這些崗位權限的并集。部門的定義既是組織結構上的分類,也是為表單流轉提供的約束條件之一,可以使員工需處理的工作列表界面得到篩選簡化,以提高管理工作效率。
(1)支持常用的工作流基本流程應用需求。
回退機制:可以逐級回退,流程的相關數據也同時跟著回退。回退的依據是流程流轉的路徑。
取回機制:提供了一個新的API,對后繼活動的工作項可以執行取回操作。
(2)支持多個業務日歷,通過每周工作時間、特殊工作時間和公共假日3種信息構建業務日歷,并對不同的機構或部門提供不同的業務日歷,用于關聯流程、活動的完成時間及超時時間。
支持郵件和短信提醒,包括任務接收提醒、任務預警提醒、任務超時提醒,自定義提醒標題和內容模板。
(3)流程設計工具分為通用流程設計器和專用流程設計器。
通用流程設計器是開發人員設計流程的工具,采用圖形化和拖拉的方式描述流程,采用可視化方式編輯流程屬性、流程執行者、數據結構和調用組件,用戶可自定義圖形元素(開發人員使用)。
專用流程設計器:基于專用流程模板設計業務流程,技術部分已在模板中預先定義,業務人員只需關心業務流程,采用圖形化、拖拉方式描述流程,可視化方式設定流程流轉步驟、步驟執行者、任務工作期限等業務信息(業務人員使用)。
支持工作流事件,可以為事件編寫一系列動作,當事件觸發時動作被同步或異步執行,目的是提高流程主動行為能力與交互能力。
支持多種類型的執行人分配,如支持按人員、角色、部門分配;支持基于指定靜態分配;支持基于變量動態分配;支持基于人員從屬關系分配;支持運行時執行人員直接指定;支持基于客戶系統原有權限機制分配等,靈活的任務分配機制能夠根據用戶的需要進行工作項任務指派,支持靜態或動態綁定的調度策略,具有柔性的角色解析功能。分別從“定義級“和“實例級”2個層面的用戶需求進行角色的解析。
基于工作流的城市軌道交通安全生產考核表單,在城市軌道交通安全預警與應急平臺建設項目中得到了推廣和應用,該方法保證了安全生產考核表單的正確流轉和審批流程,是實施應急安全信息的流轉載體。安全情況自評表上報審核業務流程界面如圖3。
基于工作流的表單審批系統涉及到很多技術,通過這個項目的具體實施和應用,對審批流程的發展趨勢以及基于B/S架構的審批業務管理和應用模式有了更新的了解。隨著計算機網絡、工作流技術的不斷發展和用戶需求變化,會產生更多新的要求,系統還將繼續發展和完善。

圖3 安全情況自評表上報審核業務流程界面圖
[1]范玉順,吳 澄. 工作流管理技術研究與產品現狀及發展趨勢[J]. 計算機集成制造系,2000,16(1):1-7.
[2]史美林,楊光信,向 勇. WfMS:工作流管理系統[J]. 計算機學報,1999,22(3):325-334.
[3]劉 洋,葛 聲. 一種基于Web服務的分布式工作流系統的研究與實現[J].計算機工程與應用,2003(1):208-211.