0 引言
隨著經濟的迅速發展,制線企業生產規模不斷擴大,通過采用先進的生產設備,極大地提高了生產力。面對生產過程中大量訂單數據和生產統計數據處理要求和客戶對交貨期、產品質量的要求,企業的生產管理必須具有高效性、嚴謹性和可控性才能保證生產的效率和產品質量。
然而,落后的企業信息化管理現狀并不能滿足這種生產管理需求,給企業的進一步發展和提升帶來了極大的阻礙。究其原因,大致有3點:①制線業作為傳統的人力密集型制造業,信息化管理起步較晚,信息化程度低;②企業發展速度較快,管理流程仍處于一個不斷優化調整的階段,而傳統的信息管理系統或者ERP由于其工作流程和業務流程的緊密耦合,缺乏靈活性和可擴展性,因而對于此類企業不夠適用;③企業已經采用的一些管理系統,如倉庫管理系統、工藝配方管理系統等,只能滿足本部門的管理需求,缺乏統一的標準和規劃,在企業內部缺乏信息流通,造成了一個個“信息孤島”。在這類企業的信息化建設中引入靈活的、可擴展的基于工作流的業務流程管理就很有必要。
針對上述問題,本研究設計基于BPM的生產管理系統,以實現工作流程的自動化,通過業務流程管理保證企業生產流程的執行,支持業務流程的快速修改升級,并通過企業應用集成增進管理系統間的信息交流,以滿足企業發展的需求。
1 BPM和jBPM
業務流程管理BPM的注重點是:通過建模、自動
化、管理和優化流程,來優化企業業務的運行效率和效果,以構造規范化的業務流程為中心,推進跨部門、跨系統和跨用戶的信息流通與整合。從管理的角度看,BPM是將業務流程看作一種新的抽象數據類型,以流程實例作為直接操作和管理的基本對象,并在流程實例中結合業務數據。BPM具有以下兩個特點:
(1)工作流管理。
BPM采用工作流技術,以工作流的方式組織控制企業的業務流程,完成不同部門和工作人員之間的信息交換和協同工作,對業務流程和活動進行監控和分析,從而實現工作流程的自動化。
(2)企業應用集成。
通過將一系列的方法、技術和工具組織在一起,實現各異構應用系統之間的無縫集成。這樣既保證了原有管理系統的正常運行,又實現了與新的管理系統的整合,促進了企業內部部門之間、管理系統之間的數據流通和信息交互。
jBPM是基于JavaEE的輕量級工作流管理系統,是一個能夠可擴展、靈活地實現工作流/業務流程管理的企業級開發框架,為開發人員提供了流程定義、流程部署、流程執行、流程管理等功能。它不但支持業務流程執行語言BPEL,還提供了面向圖形編程的流程定義語言(jBoss Process Definition Language,jPDL)。jBPM小巧且易于擴展,它可以很方便地部署到各種系統中,采用標準的Java API調用方式,可以由Java程序直接調用,也可以通過EJB組件調用。
2 基于BPM的生產管理系統設計
在傳統的管理系統開發架構下,業務流程和業務邏輯緊密耦合地散布在代碼中,缺乏提煉,因而造成了系統的僵化和復雜化。基于BPM的設計采用面向服務架構(Service Oriented Architecture,SOA),通過基于標準的開放接口和松耦合的方式,將較小粒度的服務組合成復雜的服務和應用程序,實現業務流程的構建。本研究針對生產管理系統的設計,把生產管理過程中的業務活動抽離出來,按照一定的定義格式存儲,用BPM的方法對業務流程進行管理、分析和優化;贐PM的生產管理系統的設計框架圖如圖1所示,系統總體架構分4層,詳細功能說明如下:
圖1基于BPM的生產管理系統設計框圖
(1)數據支持層。
這一層主要為系統運行提供資源數據支持,通過對企業已有的管理系統與生產管理系統進行資源整合集成,提供了流程運轉所需的基礎數據。本研究采用數據引擎進行數據操作,在保證對各個不同管理系統數據的正確存取的前提下,實現對這些不同數據源的統一的訪問管理。該層是實現不同管理系統應用集成的關鍵,也是生產管理系統運行的基礎。它涉及到一個或多個存儲企業管理數據的數據源,數據交換和處理都要保證數據安全,既要求數據傳輸的安全,也要求數據處理過程的安全。
(2)BPM平臺層。
這一層主要對基于BPM的應用提供流程運行時的核心支撐。工作流引擎是BPM系統的核心部件,實現業務流程的定義和管理,負責業務流程安全、可靠地制定和有效的執行。對外提供業務流程、活動的查詢、控制和管理功能。規則引擎針對業務規則進行定義與管理。應用程序通過向規則引擎傳遞參數數據來觸發規則引擎,由規則引擎來調用相應的業務規則,觸發相應的應用處理程序進行響應。通過規則引擎可以實現對業務規則的靈活控制和修改,提高管理系統的靈活性和適應性。服務適配器是實現SOA的關鍵工具,它將某些通用功能封裝成可重用的服務組件提供給不同的應用調用,通過Web服務以消息的形式實現了系統與其他企業業務系統的信息交流和業務互動。上層服務也可以通過服務適配器將業務過程中的信息修改傳遞到各個下層服務進行相應的處理。本研究通過這種SOA原理,實現了對企業各個不同管理系統的應用集成的消息通信支持。
(3)流程處理層。
這一層主要對生產管理系統的所有業務流程和規則進行建模、定義、管理和維護。在工作流引擎和規則引擎的支持下,本研究結合企業生產管理的實際業務管理需求,創建工作流模型和規則模型。工作流模型是從企業的日常生產管理活動中提取出基本的業務流程,并通過流程建模使用流程定義語言進行描述,從而能夠被計算機所理解。規則模型是從業務邏輯中提取出的業務規則,并且以特定的格式在基于業務流程管理的環境中表達出來。規則模型存儲了業務規則以及與規則相關的屬性,如業務權限要求、業務時間信息等。在流程執行過程中,流程判定節點通過業務規則來選擇下一個流程節點并執行相應的業務邏輯。Web服務主要處理由服務適配器接收不同系統之問的消息,或者向其他應用系統傳遞消息服務,實現應用系統的集成。
(4)應用表示層。
這一層根據企業各個業務部門工作需要提供系統功能應用,系統模塊結構如圖2所示。生產管理系統主要由以下5個模塊組成:
圖2系統模塊結構
①系統管理:包括用戶信息、權限管理、系統基礎數據管理。對系統用戶信息、角色信息進行管理,并負責用戶權限的分配;對基本的供應商、車間信息、部門信息、客戶信息、色號信息等基礎數據進行維護。
②訂單管理:包括訂單錄入、訂單審核、訂單通知、訂單發貨等。這一模塊主要針對客戶的訂單進行處理,由業務員錄入客戶訂單,提交到業務主管進行審批,審批通過后即可安排生產或者發貨。
③生產管理:包括生產計劃、工藝產能中心、生產調度、生產監控等。這一模塊主要是生產部根據客戶訂單進行生產計劃,制定生產任務單,并安排調度生產任務的執行,在生產過程中監控生產任務的執行進度。在制定生產計劃時,若庫存原料供給不足,可新建采購申請,發起采購流程。此外,還包括對生產工藝路線和產能數據的設定和維護。
④車間管理:包括車間任務、車間物料、車間進度管理等。這一模塊主要是車間對所接受的生產任務的管理,包括任務查詢、任務確認、任務安排等,同時記錄車間物料的進出情況,通過車間員工的產量統計數據匯總車間的生產進度。
⑤倉庫管理:基本物料管理功能。這一模塊主要是針對物料(原料、絞線、色線,零頭線、成品)進、存、出進行臺帳管理。主要業務過程包括物料接收質檢處理、合格后入庫、退貨、庫存轉移、調整,分類處理,以及庫存分類賬查詢等作業。當庫存原料不足時,倉管員可以新建采購申請,發起采購流程。
除了以上系統功能模塊,這一層還提供了業務流程監視功能。業務流程監視是將BPM系統中正在運行的流程實例呈現在管理者面前,使管理者能查看流程的執行情況。將流程執行過程中的一些關鍵參數(如流程運行時間等)反映出來,使得管理者能清楚地了解到業務流程的執行效率,也能發現業務流程在執行過程中遇到的一些瓶頸,從而可以及時地對業務流程做出修改優化的決定。
這一層是基于BPM的生產管理系統直接與企業用戶進行交互的界面。業務流程的發起、結束、流程節點任務的執行、流程的監控等操作都是在這一層進行。通過嚴密設計的用戶角色和權限控制,結合業務流程中的任務分配機制,可以使用戶登錄后在操作界面直接看到所需處理的待辦事項,提高工作效率。
3 基于BPM的生產管理系統的實現
3.1 數據支持層
數據支持層采用數據持久化框架Hibernate完成對不同管理系統數據源的整合。Hibernate作為Java應用程序和關系數據庫數據交流的接口,它對JDBC進行了輕量級的封裝,通過封裝數據庫底層的操作細節,屏蔽了不同數據庫語言的差異,實現了對不同數據源的透明訪問。在該系統的實現中,通過Hibernate的訪問配置,實現了對企業已有的工藝配方管理系統、用友財務管理系統的數據庫與生產管理系統數據庫的整合,促進了信息的流通,初步達到了企業應用集成的目的。
3.2 BPM平臺層
BPM平臺層中流程引擎采用jBPM。jBPM流程引擎的工作機制如下:在流程部署階段,流程引擎加載XML格式的流程定義文件,解析之后持久化到工作流相關的數據庫中,形成流程檔案;流程開啟后,jBPM流程引擎根據流程檔案進行流程實例化,負責推動流程實例的遍歷,執行流程中定義的動作,維持流程狀態,并記錄所有流程事件。
規則引擎采用JBoss Rules。JBoss Rules是一個基于Rete算法的由數據驅動的規則引擎,它包括規則、事實和推理機3部分。規則存在規則庫中,事實存在服務器工作內存中,由業務流程提供,兩者通過推理機來實現匹配,規則被激活后由Agenda安排執行。
3.3 流程處理層
流程處理層由jBPM流程引擎和JBoss Rules規則引擎對提煉和建模完善的業務流程模型和規則模型進行管理維護。這一層的實現主要是使用系統能識別的語言定義各個業務流程模型和規則模型。
業務流程建模使用jBPM提供的流程定義語言jPDL。jPDL以圖形化的方式描述業務流程。一個業務流程在BPM系統中表達為一個由模型元素(節點和連接弧)所組成的有向圖。節點代表活動,連接弧代表活動間的順序傳遞關系。
本研究針對本研究討論的生產管理系統,采用自上而下的層次建模方法。首先對整個生產管理系統進行流程建模,確定總的業務流程,其次對各個大業務流程內部的子業務流程建模,最終實現整個生產管理系統的業務流程建模。根據企業的實際需求,生產管理過程中涉及到的業務流程主要有訂單處理流程、生產主流程、采購流程等。這里以采購流程為例說明業務流程定義的方法,采購流程圖如圖3所示。
圖3采購業務流程模型圖
采購業務流程描述為:首先,請購人員(包括生產部調度員、倉庫管理員等)根據物料需求狀況新建采購申請單,提交后自動流轉到采購部門主管;采購主管對采購申請的內容、金額等情況進行審核,若采購金額較大則須提交到高級主管審核;審核通過后,即托付到采購員創建采購訂單,聯系供應商,進行采購活動;采購到貨后,質檢部門進行質量檢驗,若檢驗合格則進行倉庫入庫登記;否則,進入特例采購申請,由主管進行審查,如果同意則進行倉庫入庫登記;否則執行退貨程序;入庫完畢后將采購收貨單、采購發票提交到財務部門進行結算;退貨或者入庫活動結束后,采購流程完成。
本研究針對上述流程使用jPDL建模時,使用到了幾種流程節點:①人工任務節點,如審批、修改節點,通過任務分配機制確定這些任務節點的參與者;②判定節點,如對審批流程、特例申請的判定,這類節點實現了流程的分支功能;③普通流程節點,在這類節點流程自動執行設置的任務。流程定義模型的本質是XML格式的配置文件。在配置文件中,針對不同的流程節點,可以設置各個流程節點需要處理的事件,分配每個流程節點對應的操作人員,也可以設置判定節點的判定方法。
采購流程中涉及到的業務規則主要是根據采購金額的數目控制審批流程,而這個金額的限定值是隨著企業管理制度的變化而變化的。本研究使用JBoss Rules進行規則提取,能快捷地對業務規則進行修改,從而適應這種變化。本研究對提取出的JBoss Rules以drl格式的規則定義文件進行描述,如下所示:
在流程運行過程中,規則引擎以流程變量中的采購申請單對象作為事實,推理機結合規則運行規則匹配算法,實現規則的觸發,從而控制業務流程的走向。
其他的業務流程以及對應的業務規則建模與采購流程大致相同,生產主流程模型如圖4所示。這樣,本研究通過業務流程建模和規則建模,將業務流程控制和具體的業務處理功能分開,對于可能出現的流程變化和規則變化,只需要修改流程配置文件和規則定義文件,即可完成對流程的更新升級,快捷方便。
圖4生產主流程模型圖
3.4應用表示層
該層采用JSF框架實現任務處理和頁面跳轉,使用XHTML實現Web頁面。JSF是典型的MVC框架。視圖層主要實現Web頁面顯示,將待處理的任務、需要查看的業務數據或者其他業務操作內容呈現在用戶面前。模型層定義了生產管理系統需要處理的實體對象和具體的應用程序,負責業務邏輯和業務數據的處理,在這一層實現了對業務流程的發起、執行和結束等管理活動的調用。一個模型可以被多個視圖重用,從而提高了應用程序的可復用性。控制器主要控制數據流向,通過接收用戶界面的請求,并將請求分配給對應的模型,最后以經過模型處理后的視圖響應用戶的請求。本研究使用JSF能實現表示層界面和功能代碼的松耦合,有利于開發人員的分工協作和提高組件的重用性,易于擴展和維護。
為了增強用戶界面的交互性,本研究在Web頁面采用了動態的語言編程,如Ajax、Javascript等,既能輔助用戶完成業務處理工作,又能通過這種“富客戶端”技術減輕用戶訪問對數據庫和服務器的壓力”“。系統界面如圖5所示。
圖5 系統運行界圖
4 結束語
本研究在分析制線企業的信息化管理需求現狀的基礎上,設計實現了基于BPM的生產管理系統,既滿足企業正常的業務流程管理需求,也便于在使用過程中對生產流程不斷優化升級,同時系統通過數據引擎實現不同管理系統的應用集成,推動了企業內部信息的共享。浙江競宏線業公司在應用基于BPM的生產管理系統的一段時間里,解決了信息不暢通、流程不清晰、責任不明確等問題,建立了規范可控的生產管理流程,實現了整個企業內部資源共享、協同合作和效益提升的目標。后繼工作是將企業的生產管理流程更加精細化、全面化.增強流程對于復雜多變情況的適應性。同時不斷提高應用程序的安全性和運行效率,使流程的控制、任務的分配更加科學、更加合理、更加安全,切實將BPM的理念和技術融合到企業管理系統之中。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:基于BPM的企業生產管理ERP系統研究
本文網址:http://www.guhuozai8.cn/html/consultation/1082067640.html