0 引言
企業資源計劃(EntERPrise Resource Planning,ERP)系統是在早期的物料需求(Material Requirement Planning,MRP)和制造資源計劃系統(MRPII)基礎上發展而來的。企業資源計劃系統是一種以生產經營、計劃管理為主線,輔以CAD/CAM,Internet,GUI和EDI功能的當代企業管理方法,它代表了當代最先進的企業經營生產管理模式與技術。物料清單(Bill of Material,BOM)是ERP系統的重要基礎數據,它的組織是否有效直接關系到企業資源計劃系統的性能。
物料清單BOM是ERP系統的重要基礎數據,它產生于產品設計部門,生命周期的各個形態貫穿于各個部門。BOM作用于計算機識別物料、接受客戶定單、編制計劃、配套(裝配)和領料、加工過程跟蹤、采購和外協、成本計算、報價參考、物料追溯、改進產品設計等等。它的組織是否有效直接關系到企業資源計劃系統的性能。對BOM的數據、BOM的特性、BOM的結構研究和分析表明,ERP系統中BOM的有效管理是一項非常重要和困難的工作。現有的BOM管理方式,是在各業務部門的事務處理系統中進行管理和組織,且已有BOM管理體系基本都是基于事務性系統構建。這樣做不利于解決上述BOM管理中的難點,主要存在以下缺陷和不足:
首先,由于各項應用處理的分散性,存在著數據信息相互獨立的缺陷和不足,從而易形成各個“信息孤島”。很顯然,這樣的“信息孤島”將導致企業數據無法有效地支持決策和統計分析,而且,會引起企業中BOM數據“不一致”的問題。其次,企業用戶對原始業務數據庫中的數據的抽取,如不加以控制,制定統一標準,只是按需抽取,將會使系統數據間形成錯綜復雜的網狀結構——“蜘蛛網”問題。再者,從BOM數據的使用者角度考慮。在企業中,針對各級用戶,BOM數據的綜合程度要求不同。而傳統的基于數據庫組織的BOM數據,只是一些實時數據,即使有一些匯總數據也是未經過專門性統計和匯總的數據,當使用者需要或作計劃時才進行加工處理。然而一個企業中日積月累的BOM數據量非常龐大,這樣做,沒有把分析型數據從事務操作中分離出來,將影響系統運行效率。
數據倉庫技術為在BOM系統中建立這種決策分析環境提供了一種有效的數據存儲和組織方式。數據倉庫概念的形成是被譽為數據倉庫之父的w.H.Inmon在1993年于《建立數據倉庫》(Building the Data Warehouse)一書中正式提出的,他對數據倉庫作了這樣的定義:“數據倉庫(Data Warehouse,DW)是90年代信息構架的新焦點,它提供集成化和歷史化的數據;集成種類不同的應用系統;數據倉庫從事物發展和歷史的角度來組織和存儲數據,以供信息化和分析處理之用,是面向主題的、集成的、穩定的、隨時間變化的數據集合,用以支持管理決策的過程”。數據倉庫不是數據的簡單堆積,而是從大量的事務型數據庫中抽取數據,并將其清理、檢驗、加工和重新組織為新的存儲格式,以滿足決策目標。用戶可以按不同的決策主題對已有數據庫進行分類、綜合與存儲,并采用數據挖掘(DM技術和聯機分析(0LAP)技術對決策中所需的數據進行深層挖掘與分析,在已建立的各類數據庫的基礎上構造數據倉庫。
1 BOM數據倉庫的體系結構
BOM數據倉庫系統(BOM Data Warehouse System,BOMDWS)對原BOM管理系統的數據集成抽取,進行不同程度的綜合,為OLAP提供支持。它可分為四層:基礎數據層、當前詳細數據層(全局數據倉庫)、綜合數據層(數據集市)、客戶層。這四層相互作用,共同構成BOM管理系統的事務處理和決策分析處理。
基礎數據層該層主要是基于事務處理,即各原始的數據庫,包含基礎的物料數據和大量的產品設計BOM數據,是其他各層的數據來源。
詳細數據層包括當前詳細數據和歷史詳細數據,數據從基礎層的數據庫中析取和集成后直接導人該層。該層主要進行采集、清理、轉換、集成、裝載等操作,使得原始操作型數據轉變為集成的、一致的數據。該層存儲的主要是大量的細節數據,支持數據的細節查詢,是BOMDWS的核心數據層。
綜合數據層各業務部門可根據業務需求,在全局級DW的基礎上,抽取適合自己所用的數據并進行綜合處理后存人部門級數據倉庫。該層數據用多維模型組織,以支持部門級多維分析。其數據是全局級數據倉庫的匯總數據,面向各部門管理者,以支持決策。
客戶層該層提供用戶接口,用戶在這一層上進行OLAP操作,并生成各種報表。
從BOM數據倉庫體系結構可以看出,數據從基礎層進入全局數據倉庫,而后導入部門數據集市,解決了信息孤島和蜘蛛網問題,更有效的維護了數據的一致性。由于在BOM全局數據倉庫基礎上建立了部門數據集市,因此使得有效的生成和管理BOM的多視圖成為可能,本文在這方面做了初步的探索;由于部門數據集市采用多維模型組織數據,因此可以對部門級的數據進行多維分析,以支持決策。
2 數據倉庫的生成接口
數據倉庫的生成所要做的工作主要是接口編程和數據的裝入。
2.1 設計接口
生成數據倉庫的主要任務是向產品使用外購件、外協件、自制件的信息(product_use)和零部件的用量信息(part_use)這兩個表里導人數據。遍歷產品設計BOM的每個零部件節點,統計每個零部件的用量,一種零部件被該產品用到,useflag數據即為1,作為統計零部件被使用頻率細節數據,匯總每個產品使用外購件、外協件、自制件的數量。通過編寫觸發器和存儲過程實現數據的導人。
2.2數據的裝入
運行接口程序,確定數據裝載次序,先導入part_use數據,接著從part_use中進一步統計數據導入product_use。數據倉庫的數據需要不斷從原系統不斷追加,下面是BOM數據倉庫的數據追加策略:
創建兩個表hasimported和notimport,這兩個表結構相同只有一個字段,記錄產品編號(product_key)。
運行數據導入接口程序時,讀取notimport表里的記錄,裝載對應產品的數據,同時把產品的產品編號移人hasimported表中;若notimport里無記錄,則表示沒有產品數據需要追加。
在原系統中執行保存產品的設計BOM時,查看該產品的產品編號是否存在于hasimported,若存在,表示不能修改產品的設計BOM,因為該產品的數據已經被導人數據倉庫不能再被修改;若不存在,表示該產品的設計BOM還沒有被導人數據倉庫,可以修改并保存,保存的同時,把該產品的產品編號寫入notimport表中。
這樣,在進行數據倉庫的數據追加時,只需要讀取notimport表中的記錄,導入對應的產品數據即可。
3 BOM數據倉庫管理系統的實現
3.1 BOM數據倉庫管理系統的開發環境
系統的開發平臺是Jbuitder 9.0,數據庫服務器采用Oracle9i,應用服務器采用Weblogie 8.1。系統采用Java語言實現,系統中大量的Applet,JSP,Servlet還有JavaBean,EJB,均在Jbuilder上開發完成。Oracle9i數據庫服務器強有力的支持Java,Java通過JDBC連接Oracle,比連接SQL Server表現出來的性能要好,而且Oracle支持對象類型,這給數據表的建立提供了更多的選擇,在系統的標設計中就用到了嵌入表,在存儲過程的設計中,也用到了自定義對象類型和對象數組。另外,為了輔助開發,借助PLSQL Developer和jfreechart。PLSQL Developer是用來開發PL/SQL程序,它不僅可以編輯PL/SQL代碼,還可以進行語法檢查和跟蹤調試,大大彌補了Oracle在這方面的缺點,而且PLSQL Developer還可以作為Oracle客戶端工具使用;jfreechart是一個開源項目,它可以方便地加人Jbuilder開發環境,運行在應用服務器上,方便地生成柱狀圖和餅圖等多種報表。
3.2 BOM數據倉庫管理系統的設計實現
采用J2EE三層模型設計BOM數據倉庫管理系統總體結構可以簡化應用程序的開發,自由選擇J2EE應用服務器,開發代價低,易管理,而且可移植可跨平臺,不限于特定的操作系統和特定的應用服務器。這是其他體系結構無法比擬的。系統的詳細設計主要包括數據庫中表和函數、存儲過程、觸發器的設計、服務器端組件的設計,還有瀏覽器端Applet的設計實現。數據庫端的設計主要是表的設計、存儲過程和觸發器的開發。存儲過程和觸發器直接在數據庫服務器上運算,減少服務端與客戶端的交互,效率更高,可以充分發揮大型數據庫的優勢,尤其在基于Web的應用系統中,更應把和數據密切的操作封裝在數據庫服務器端,減少和服務器端的交互不僅可以提高效率,更能提高安全性,也遵循了低耦合高內聚的設計原則;在針對數據庫編程時,很多復雜的對數據記錄的操作被封裝在存儲過程里,也大大簡化了編程的復雜度,易于開發和維護。在系統的實現中,對BOM的遍歷以及零部件的統計都在存儲過程和函數里完成,數據庫端用到了三個存儲過程和一個自定義函數,還用到了兩個觸發器,用來對數據進行自動分類。
服務器端的設計主要是JavaBean,Servlet,EJB,JSP的設計。
服務器端有兩個JavaBean,DBConnection負責取得連接數據庫的數據源DataSource的一個實例,ChartBean里調用jfreechart組件從外部取得數據集生成報表圖片并輸出圖片的文件名。
在服務器端開發了很多Servlet,結構和功能都相同,向上和Applet交換數據,向下和數據庫交換數據。
JSP主要用來實現對數據的統計分析,并把統計的數據傳給ChartBean,在瀏覽器里先是ChartBean生成的報表圖片,另外也實現對物料數據的查詢。
瀏覽器端的設計主要是Ajax和Applet的設計。通過Ajax在瀏覽器和Web服務器之間使用異步數據傳輸,Applet可以提供復雜的交互功能,它和Servlet的數據交互是關鍵技術,和Servlet的設計類似,也包括發送和接收數據。
3.3 BOM數據倉庫管理系統的主要實現結果
本系統完全基于Web運行,部署簡單,易于維護,而且可以跨平臺;同時易于操作,有很強的交互功能。
系統運行于瀏覽器中,除了在客戶的機器上需要安裝JAVA虛擬機外,幾乎不需要做任何配置,因此系統的運行環境簡單易于維護,界面的設計采用卡片式頁面,充分利用顯示空間,也易于切換,和Windows風格保持一致,BOM結構的展示采用JTree類實現,形象地展示了BOM的樹形結構,而且在樹形結構上可以直接對BOM進行編輯。
多維分析的結果以柱狀圖和餅圖顯示,jfreechart組件在應用服務器端接受多維分析結果,轉換成圖片,傳到客戶的瀏覽器上。主要的界面如圖1~圖4所示。
圖1 產品的設計BOM界面
圖2 產品的多BOM界面
圖3零部件輸入界面
圖4 產品配置界面
4 結語
數據倉庫是數據庫技術的發展,采用傳統的數據組織方式組織管理BOM數據不利于對BOM數據進行分析統計和多維度觀察。針對這些問題,提出了用數據倉庫的理論和思想集成轉換原始BOM數據,構建BOM數據倉庫。BOM數據倉庫的建立解決了數據不一致和“蜘蛛網”等問題,同時為企業的決策分析提供了完整、一致、不同粒度的綜合數據,使得用戶能夠對集成后的數據進行分析統計和多維考察。系統基于J2EE架構實現,具有可跨平臺、可移植、易于管理等優點。本文在數據倉庫的基礎上對BOM的研究也只是針對某些方面的問題,下一步的方向是需要進一步研究多BOM的映射機制,使得BOM的各種視圖為對應的部門提供更為準確詳盡的信息,以及考慮在數據倉庫基礎上對BOM數據進行挖掘(Data Mining,DM),發現產品及零部件之間的關聯規則,以支持產品和零部件的設計。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:ERP中BOMDWS系統的設計研究
本文網址:http://www.guhuozai8.cn/html/consultation/1082068146.html