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