武 鵬,凌海風(fēng),肖毅鴻,楊煒辰
(解放軍理工大學(xué),南京 210007)
軍區(qū)修理所維修業(yè)務(wù)管理的重點和核心是修理的質(zhì)量,同時要兼顧修理的成本和效益。為了解決修理質(zhì)量能保證、修理成本和修理進度可控、修理責(zé)任能追溯、修理工復(fù)退后修理力量影響減小、維修管理干部崗位交替維修管理影響減小等核心問題,需要有要規(guī)范軍區(qū)級修理機構(gòu)的大(中)修修理業(yè)務(wù),明確各部門、各人員在維修業(yè)務(wù)管理中的職責(zé),在整個修理過程中落實修理責(zé)任制和質(zhì)量管理的理念,圍繞裝備修理全過程,建立集維修信息管理與質(zhì)量成本控制與一體的裝備維修業(yè)務(wù)管理信息系統(tǒng),以切實提升工程裝備大(中)修的質(zhì)量、效率和效益。
工作流是一種反映業(yè)務(wù)流程的計算機化模型,將其引入到工程裝備維修業(yè)務(wù)管理系統(tǒng)中可以靈活設(shè)置業(yè)務(wù)流程、縮短業(yè)務(wù)處理周期、及時監(jiān)控流程相關(guān)業(yè)務(wù)動態(tài)等[1]。本文將以修理流程業(yè)務(wù)為例,從修理業(yè)務(wù)流程的定義、部署、調(diào)用與執(zhí)行等方面詳細介紹工作流技術(shù)在工程裝備維修業(yè)務(wù)管理系統(tǒng)中的應(yīng)用[2]。
工作流的概念起源于生產(chǎn)組織和辦公自動化領(lǐng)域。它是針對日常工作中具有固定程序的活動而提出的一個概念。提出的目的是通過將工作分解成定義良好的任務(wù)、角色,按照一定的規(guī)則和過程來執(zhí)行這些任務(wù)并對他們進行監(jiān)控,從而提高辦事效率、降低生產(chǎn)成本、提高企業(yè)生產(chǎn)管理水平和競爭力。工作流管理聯(lián)盟給出的工作流定義是:工作流是一類能夠完全或部分自動執(zhí)行的經(jīng)營過程,它根據(jù)一系列過程規(guī)則,文檔、信息或任務(wù)能夠在不同的執(zhí)行者之間進行傳遞與執(zhí)行。簡單地說,工作流就是用一個個有序的任務(wù)點(活動點)來抽象表示業(yè)務(wù)流的處理過程。工作流管理系統(tǒng)是一個軟件系統(tǒng),它完成工作流的定義和管理,并按照在計算機中預(yù)先定義好的工作流邏輯推進工作流實例的執(zhí)行。目前已形成以JBPM、Shark 和Osworkflow 為代表的3 大主流的工作流管理系統(tǒng)[3]。
工作流管理系統(tǒng)主要需要滿足4 大功能:工作流建模、工作流運行、流程的管理和監(jiān)控、業(yè)務(wù)過程的分析[4]。
JBPM 是覆蓋了業(yè)務(wù)流程管理、工作流、服務(wù)協(xié)作等領(lǐng)域的一個開源的、靈活的、易擴展的工作流管理系統(tǒng)。JBPM 沒有采用BPEL 或WfMC 標準去實現(xiàn)流程引擎,而是采用一種輕量級的XML 結(jié)構(gòu)的流程描述語言JPDL(JBMP Process Definition Language)。相比WfMC 和BPEL 兩種標準而言,JPDL 語言更加簡單,也更容易讀懂[5]。
JBPM 的另一個特色是使用Hibernate 來管理數(shù)據(jù)庫。Hibernate 是目前Java 領(lǐng)域中最好的一種數(shù)據(jù)存儲層解決方案,只要Hibernate 支持的數(shù)據(jù)庫,JBPM 也就支持。通過Hibernate,JBPM 將數(shù)據(jù)的管理職能分離出去,專注于商務(wù)邏輯的處理。因此,JBPM 非常適合基于J2EE 的B/S 系統(tǒng)[6]。
本系統(tǒng)共分基礎(chǔ)數(shù)據(jù)維護、裝備數(shù)據(jù)維護、維修業(yè)務(wù)管理、器材收發(fā)管理、維修資源管理以及系統(tǒng)管理6 個功能模塊,如圖1 所示。
圖1 系統(tǒng)總體功能模塊
其中,維修業(yè)務(wù)管理模塊是本系統(tǒng)的核心模塊,可以查看待處理的修理計劃和修理流程的進行狀態(tài)(包括修理任務(wù)執(zhí)行時間、執(zhí)行人以及修理流程進行中所涉及的文檔和報表等諸多信息)。要實現(xiàn)這一直觀實時的列表顯示需求,需要引入JBPM 技術(shù),接下來將以此模塊為例詳細介紹。
維修業(yè)務(wù)系統(tǒng)采用B/S 結(jié)構(gòu),利用JavaWeb、Hibernate等JAVA 技術(shù)開發(fā)。該系統(tǒng)采用Tomcat 6.0 應(yīng)用服務(wù)器,開發(fā)工具為Eclipse,后臺數(shù)據(jù)庫為Oracle 10g。
軍區(qū)級修理所一般設(shè)有修理所所長辦公室、業(yè)務(wù)處、技術(shù)室、器材倉庫、總裝組、各專業(yè)分工修理組、機加作業(yè)組等機構(gòu)。具體修理業(yè)務(wù)流程如圖2 所示。
3.2.1 JBPM 編碼組織結(jié)構(gòu)
1)JBPM 的通用配置文件。格式一般為. xml 的配置文件,承擔(dān)著控制整個工作流運行流轉(zhuǎn)的功能,包括觸發(fā)和結(jié)束節(jié)點以及狀態(tài)、陣列實例、泳道的創(chuàng)建與分配、任務(wù)控制、日期記錄和更新、與數(shù)據(jù)庫的連接等。
2)完成特定功能所需的3 個配置文件(gpd. xml、processdefinition.xml、processimage. jpg)。光有通用配置文件是無法正常實現(xiàn)所需的工作流功能的。其中processdefinition.xml 和gpd. xml 文件定義開始狀態(tài)(start-state)、結(jié)束狀態(tài)(end-state)、節(jié)點(task-node)、泳道(swimlane)、轉(zhuǎn)換(transition)等工作流運轉(zhuǎn)必須的定量和變量。這其中start-state 和end-state 是流程必需的,分別代表流程的開始狀態(tài)和結(jié)束狀態(tài),swimlane 代表流程角色并且用于任務(wù)分配,task-node 代表需被用戶執(zhí)行的一個或多個任務(wù),transition 代表流程轉(zhuǎn)換離開,action(全局定義動作)是可以從事件和轉(zhuǎn)換中被引用的java 代碼片段,fork 分開一個執(zhí)行路徑成為多個并發(fā)的執(zhí)行路徑。processimage.jpg 是節(jié)點流程圖。
3)Hibernate 的配置文件jbpm. cfg. xml。它與JBPM 的接口JbpmContext 共同實現(xiàn)流程定義的部署。
3.2.2 修理業(yè)務(wù)流程定義
根據(jù)工程裝備維修業(yè)務(wù)流程,利用JBPM 提供的圖形化設(shè)計器,將其流程設(shè)計如圖3 所示。
圖2 維修業(yè)務(wù)處理流程
圖3 維修業(yè)務(wù)流程
文件processdefinition.xml 定義了維修業(yè)務(wù)流程,其主要代碼如下:
2)利用JBPM 自身方法獲取待處理任務(wù)列表。
由于有些修理任務(wù)比較單一只需修理工本人完成,現(xiàn)根據(jù)登陸用戶id 獲取本人修理任務(wù)
有些只擅長某一或某幾工種的修理人員,比如發(fā)動機修理工,他需要查看所有涉及發(fā)動機修理的相關(guān)任務(wù)。
3.2.4 修理業(yè)務(wù)流程的調(diào)用與執(zhí)行
1)前臺jsp 頁面獲取修理任務(wù)列表:
2)循環(huán)顯示修理任務(wù)列表信息:
3)相關(guān)修理業(yè)務(wù)處理問題的解決。
在維修業(yè)務(wù)的具體過程中,很多步驟都有相關(guān)的業(yè)務(wù)處理過程,比如在修理開始階段會需要查看修理作業(yè)計劃;在有修理更換標外件產(chǎn)生的修理過程中需要登記標外件的具體信息。對于這些涉及到有業(yè)務(wù)流程處理的任務(wù),現(xiàn)設(shè)計判斷后調(diào)用頁面的js 方法進行處理:
3.2.5 器材領(lǐng)用和機加流程處理
在整個修理過程中,除了主流程外還存在器材請領(lǐng)和機加作業(yè)2 個子流程,它們的處理方式與主流程相似,在此不再贅述。以下是2 個子流程的流程圖。
圖4 器材領(lǐng)用申請流程
圖5 機加作業(yè)流程
JBPM 是一種適應(yīng)于各種規(guī)則化流程的工作流引擎,將其引入到工程裝備維修業(yè)務(wù)信息管理中,較好地解決了修理質(zhì)量能保證、修理成本和修理進度可控、修理責(zé)任能追溯等維修業(yè)務(wù)管理中的核心問題。對提升工程裝備大(中)修的質(zhì)量、效率和效益在一定程度上起到了積極作用。
[1]David Hollingsworth. Workflow Reference Model Diagram[EB /OL].[1995-01-25].http://www.wfmc.org.
[2]石遠夏,許青林.基于jBPM 的業(yè)務(wù)流程管理研究[J].現(xiàn)代計算機,2009,11(319):92-94.
[3]吉梅,陳力瓊.JBPM 工作流在教務(wù)管理系統(tǒng)中的應(yīng)用[J].計算機應(yīng)用與軟件,2011,28(6):230-231.
[4]姜賓.基于jBPM 的業(yè)務(wù)流程管理的設(shè)計實現(xiàn)[J].信息系統(tǒng)工程,2010,20(2):48-49.
[5]姜賓.基于工作流的人員培訓(xùn)管理系統(tǒng)[J].兵工自動化,2009,28(2):95-96.
[6]JBPM. JBPM Developer Guider[EB/OL].[2010-07-12].http://jboss.org/jbpm,2010-7.