武 鵬,凌海風,肖毅鴻,楊煒辰
(解放軍理工大學,南京 210007)
軍區修理所維修業務管理的重點和核心是修理的質量,同時要兼顧修理的成本和效益。為了解決修理質量能保證、修理成本和修理進度可控、修理責任能追溯、修理工復退后修理力量影響減小、維修管理干部崗位交替維修管理影響減小等核心問題,需要有要規范軍區級修理機構的大(中)修修理業務,明確各部門、各人員在維修業務管理中的職責,在整個修理過程中落實修理責任制和質量管理的理念,圍繞裝備修理全過程,建立集維修信息管理與質量成本控制與一體的裝備維修業務管理信息系統,以切實提升工程裝備大(中)修的質量、效率和效益。
工作流是一種反映業務流程的計算機化模型,將其引入到工程裝備維修業務管理系統中可以靈活設置業務流程、縮短業務處理周期、及時監控流程相關業務動態等[1]。本文將以修理流程業務為例,從修理業務流程的定義、部署、調用與執行等方面詳細介紹工作流技術在工程裝備維修業務管理系統中的應用[2]。
工作流的概念起源于生產組織和辦公自動化領域。它是針對日常工作中具有固定程序的活動而提出的一個概念。提出的目的是通過將工作分解成定義良好的任務、角色,按照一定的規則和過程來執行這些任務并對他們進行監控,從而提高辦事效率、降低生產成本、提高企業生產管理水平和競爭力。工作流管理聯盟給出的工作流定義是:工作流是一類能夠完全或部分自動執行的經營過程,它根據一系列過程規則,文檔、信息或任務能夠在不同的執行者之間進行傳遞與執行。簡單地說,工作流就是用一個個有序的任務點(活動點)來抽象表示業務流的處理過程。工作流管理系統是一個軟件系統,它完成工作流的定義和管理,并按照在計算機中預先定義好的工作流邏輯推進工作流實例的執行。目前已形成以JBPM、Shark 和Osworkflow 為代表的3 大主流的工作流管理系統[3]。
工作流管理系統主要需要滿足4 大功能:工作流建模、工作流運行、流程的管理和監控、業務過程的分析[4]。
JBPM 是覆蓋了業務流程管理、工作流、服務協作等領域的一個開源的、靈活的、易擴展的工作流管理系統。JBPM 沒有采用BPEL 或WfMC 標準去實現流程引擎,而是采用一種輕量級的XML 結構的流程描述語言JPDL(JBMP Process Definition Language)。相比WfMC 和BPEL 兩種標準而言,JPDL 語言更加簡單,也更容易讀懂[5]。
JBPM 的另一個特色是使用Hibernate 來管理數據庫。Hibernate 是目前Java 領域中最好的一種數據存儲層解決方案,只要Hibernate 支持的數據庫,JBPM 也就支持。通過Hibernate,JBPM 將數據的管理職能分離出去,專注于商務邏輯的處理。因此,JBPM 非常適合基于J2EE 的B/S 系統[6]。
本系統共分基礎數據維護、裝備數據維護、維修業務管理、器材收發管理、維修資源管理以及系統管理6 個功能模塊,如圖1 所示。

圖1 系統總體功能模塊
其中,維修業務管理模塊是本系統的核心模塊,可以查看待處理的修理計劃和修理流程的進行狀態(包括修理任務執行時間、執行人以及修理流程進行中所涉及的文檔和報表等諸多信息)。要實現這一直觀實時的列表顯示需求,需要引入JBPM 技術,接下來將以此模塊為例詳細介紹。
維修業務系統采用B/S 結構,利用JavaWeb、Hibernate等JAVA 技術開發。該系統采用Tomcat 6.0 應用服務器,開發工具為Eclipse,后臺數據庫為Oracle 10g。
軍區級修理所一般設有修理所所長辦公室、業務處、技術室、器材倉庫、總裝組、各專業分工修理組、機加作業組等機構。具體修理業務流程如圖2 所示。
3.2.1 JBPM 編碼組織結構
1)JBPM 的通用配置文件。格式一般為. xml 的配置文件,承擔著控制整個工作流運行流轉的功能,包括觸發和結束節點以及狀態、陣列實例、泳道的創建與分配、任務控制、日期記錄和更新、與數據庫的連接等。
2)完成特定功能所需的3 個配置文件(gpd. xml、processdefinition.xml、processimage. jpg)。光有通用配置文件是無法正常實現所需的工作流功能的。其中processdefinition.xml 和gpd. xml 文件定義開始狀態(start-state)、結束狀態(end-state)、節點(task-node)、泳道(swimlane)、轉換(transition)等工作流運轉必須的定量和變量。這其中start-state 和end-state 是流程必需的,分別代表流程的開始狀態和結束狀態,swimlane 代表流程角色并且用于任務分配,task-node 代表需被用戶執行的一個或多個任務,transition 代表流程轉換離開,action(全局定義動作)是可以從事件和轉換中被引用的java 代碼片段,fork 分開一個執行路徑成為多個并發的執行路徑。processimage.jpg 是節點流程圖。
3)Hibernate 的配置文件jbpm. cfg. xml。它與JBPM 的接口JbpmContext 共同實現流程定義的部署。
3.2.2 修理業務流程定義
根據工程裝備維修業務流程,利用JBPM 提供的圖形化設計器,將其流程設計如圖3 所示。

圖2 維修業務處理流程

圖3 維修業務流程
文件processdefinition.xml 定義了維修業務流程,其主要代碼如下:



2)利用JBPM 自身方法獲取待處理任務列表。
由于有些修理任務比較單一只需修理工本人完成,現根據登陸用戶id 獲取本人修理任務

有些只擅長某一或某幾工種的修理人員,比如發動機修理工,他需要查看所有涉及發動機修理的相關任務。


3.2.4 修理業務流程的調用與執行
1)前臺jsp 頁面獲取修理任務列表:

2)循環顯示修理任務列表信息:

3)相關修理業務處理問題的解決。
在維修業務的具體過程中,很多步驟都有相關的業務處理過程,比如在修理開始階段會需要查看修理作業計劃;在有修理更換標外件產生的修理過程中需要登記標外件的具體信息。對于這些涉及到有業務流程處理的任務,現設計判斷后調用頁面的js 方法進行處理:


3.2.5 器材領用和機加流程處理
在整個修理過程中,除了主流程外還存在器材請領和機加作業2 個子流程,它們的處理方式與主流程相似,在此不再贅述。以下是2 個子流程的流程圖。

圖4 器材領用申請流程

圖5 機加作業流程
JBPM 是一種適應于各種規則化流程的工作流引擎,將其引入到工程裝備維修業務信息管理中,較好地解決了修理質量能保證、修理成本和修理進度可控、修理責任能追溯等維修業務管理中的核心問題。對提升工程裝備大(中)修的質量、效率和效益在一定程度上起到了積極作用。
[1]David Hollingsworth. Workflow Reference Model Diagram[EB /OL].[1995-01-25].http://www.wfmc.org.
[2]石遠夏,許青林.基于jBPM 的業務流程管理研究[J].現代計算機,2009,11(319):92-94.
[3]吉梅,陳力瓊.JBPM 工作流在教務管理系統中的應用[J].計算機應用與軟件,2011,28(6):230-231.
[4]姜賓.基于jBPM 的業務流程管理的設計實現[J].信息系統工程,2010,20(2):48-49.
[5]姜賓.基于工作流的人員培訓管理系統[J].兵工自動化,2009,28(2):95-96.
[6]JBPM. JBPM Developer Guider[EB/OL].[2010-07-12].http://jboss.org/jbpm,2010-7.