版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、ERP系統(tǒng)開發(fā)中BOM結(jié)構(gòu)模型的研究及應(yīng)用陳琦 劉杰(同濟(jì)大學(xué)經(jīng)濟(jì)與管理學(xué)院,上海 200092)摘 要:BOM是ERP系統(tǒng)中重要的基本數(shù)據(jù).本文首先從數(shù)據(jù)庫設(shè)計(jì)和算法實(shí)現(xiàn)兩方面分析了兩種典型的BOM結(jié)構(gòu)模型,通過比較總結(jié)出BOM設(shè)計(jì)中的關(guān)鍵問題;然后針對該問題提出改進(jìn)的BOM結(jié)構(gòu)模型;最后給出運(yùn)用此模型實(shí)現(xiàn)某BOM管理模塊的實(shí)例。關(guān)鍵字:企業(yè)資源計(jì)劃;物料清單;BOM結(jié)構(gòu)模型1 引言制造業(yè)信息系統(tǒng)從上個(gè)世紀(jì)50年代起至今經(jīng)歷了MRP(Material Requirements Planning)、閉環(huán)MRP(Closed-loop MRP)、MRP (Manufacturing Resour
2、ce Planning)及ERP等四個(gè)階段,后一個(gè)階段都是建立在前一階段基礎(chǔ)之上.ERP的核心仍然是解決企業(yè)根據(jù)市場需求“生產(chǎn)什么”、 “生產(chǎn)多少”、“什么時(shí)候生產(chǎn)”等問題,而這些問題的有效解決都是建立在MRP運(yùn)算,即根據(jù)BOM(Bill of Materials)分解MPS(Main Production Schedule)的基礎(chǔ)之上。所謂BOM就是產(chǎn)品結(jié)構(gòu)在ERP系統(tǒng)中的一種數(shù)據(jù)表現(xiàn)形式,換句話說為了方便計(jì)算機(jī)識別并做分解運(yùn)算處理,把用圖表達(dá)的產(chǎn)品結(jié)構(gòu)轉(zhuǎn)換成數(shù)據(jù)格式,這種用數(shù)據(jù)格式來描述產(chǎn)品結(jié)構(gòu)的文件就是BOM.從概念中可以看出,BOM的主要作用包括:1.存貯作用,即存儲產(chǎn)品結(jié)構(gòu)信息;2.
3、計(jì)算依據(jù),即為MRP分解運(yùn)算提供邏輯依據(jù)。BOM是ERP的核心數(shù)據(jù)之一,BOM的設(shè)計(jì)與實(shí)施是ERP的基礎(chǔ),所以選用合理得BOM結(jié)構(gòu)模型是保障ERP順利實(shí)施得重要環(huán)節(jié)。2兩種典型的BOM結(jié)構(gòu)模型2.1樹狀結(jié)構(gòu)模型對于制造型企業(yè)中生產(chǎn)的單個(gè)產(chǎn)品,其結(jié)構(gòu)呈現(xiàn)出一種樹狀結(jié)構(gòu),反映出該產(chǎn)品所需的原材料,零件,部件及總裝件之間的從屬關(guān)系和數(shù)量。如圖1中產(chǎn)品A,是由B,C,D構(gòu)成的,而B又是由C,D構(gòu)成的,括號里的數(shù)字表示父子之間的數(shù)量關(guān)系,依此類推,其中不能再分解或處于產(chǎn)品結(jié)構(gòu)樹底部的零部件就是需要制造或采購的零部件,有了這種產(chǎn)品結(jié)構(gòu)才能進(jìn)行分解運(yùn)算得到物料需求計(jì)劃。圖1。產(chǎn)品A的結(jié)構(gòu)圖為了把這種產(chǎn)品結(jié)構(gòu)
4、存儲在關(guān)系型數(shù)據(jù)庫中(以sqlserver2000為例,下同),其數(shù)據(jù)庫設(shè)計(jì)如表1所示:字段名稱類型含義RootidVarchar(10)產(chǎn)品代碼ChildidVarchar(10)子件代碼Layerint層次碼Usagefloat零件間用量關(guān)系表1樹狀結(jié)構(gòu)模型的數(shù)據(jù)字典其中Rootid, Childid分別表示產(chǎn)品和該產(chǎn)品包含的零部件代碼,如該零部件不可再分解就用一個(gè)特殊的符號“L”來表示。圖1中A產(chǎn)品的結(jié)構(gòu),在數(shù)據(jù)庫中存儲為以下記錄:RootidChildidLayerUsageAmountAB11AC12ADL3AC22ADL1AEL6AFL8AEL6AFL8表2 產(chǎn)品A在樹狀結(jié)構(gòu)模型中
5、的表示這種數(shù)據(jù)庫設(shè)計(jì)由于模擬了產(chǎn)品結(jié)構(gòu)的樹狀特征(如圖2),稱之為“樹狀結(jié)構(gòu)模型”,它的優(yōu)點(diǎn)是直觀的刻畫了產(chǎn)品結(jié)構(gòu),不同產(chǎn)品間的數(shù)據(jù)相互獨(dú)立的,因而編寫分解算法非常簡單、高效。缺點(diǎn)主要是數(shù)據(jù)冗余度大,不同產(chǎn)品中包含的相同結(jié)構(gòu)特征在此模型中仍然要存儲多次,例如:產(chǎn)品A包含的部件C為通用件,即可以用在其他產(chǎn)品中。因而當(dāng)增加或修改這些結(jié)構(gòu)特征時(shí)也要重復(fù)多次,容易造成BOM數(shù)據(jù)不一致,或者在數(shù)據(jù)庫設(shè)計(jì)時(shí)需要增加額外的觸發(fā)機(jī)制保證其一致性。另一方面由于這種結(jié)構(gòu)模型只存儲了產(chǎn)品與零部間的關(guān)系從而抹煞了部件與零件的關(guān)系,破壞了BOM數(shù)據(jù)的完整性。ParentidChildidUsageAB1AC2AD3BC
6、2BD1CE3CF4 圖2.BOM的樹狀結(jié)構(gòu)樹狀結(jié)構(gòu)模型可以直接采用較為簡單的SQL語句來實(shí)現(xiàn)產(chǎn)品結(jié)構(gòu)的查詢。例如對圖1中A產(chǎn)品查詢需要制造或采購的所有零部件清單時(shí),SQL語句為:select Childid from 表2 where Rootid=A and Layer=L;需要查詢A產(chǎn)品所包含的第n層零部件清單時(shí),SQL語句為:select Childid from 表2 where Rootid=A and Layer=n;22網(wǎng)狀結(jié)構(gòu)模型 對于制造多品種產(chǎn)品的企業(yè),產(chǎn)品與零部件的關(guān)系不再是簡單的一對多而是多對多關(guān)系。由于大量通用件在不同產(chǎn)品間的相互借用,在樹狀結(jié)構(gòu)中表現(xiàn)為不同的結(jié)點(diǎn)可
7、以有相同的子樹;即使在同種產(chǎn)品內(nèi)部,由于一些標(biāo)準(zhǔn)件的重用,同樣使零部件關(guān)系呈現(xiàn)出復(fù)雜的交織,所以圖2可以轉(zhuǎn)化為圖3所示的網(wǎng)狀結(jié)構(gòu)。 圖3.BOM的網(wǎng)狀結(jié)構(gòu)這種產(chǎn)品結(jié)構(gòu)在數(shù)據(jù)庫中的設(shè)計(jì)如表1所示:字段名稱類型含義ParentidVarchar(10)父件代碼ChildidVarchar(10)子件代碼Usagefloat父子件間用量關(guān)系表3 網(wǎng)狀結(jié)構(gòu)模型的數(shù)據(jù)字典圖1中A產(chǎn)品的結(jié)構(gòu)在數(shù)據(jù)庫中可以存儲為以下記錄: 表4 產(chǎn)品A在網(wǎng)狀結(jié)構(gòu)模型中的表示這種數(shù)據(jù)庫設(shè)計(jì)模擬了多品種產(chǎn)品的結(jié)構(gòu)特征(如圖2),稱之為“網(wǎng)狀結(jié)構(gòu)模型”,它的優(yōu)點(diǎn)是對每一種父子結(jié)構(gòu)關(guān)系只存儲一次,從而消除了冗余數(shù)據(jù),另外當(dāng)這些通用
8、件或標(biāo)準(zhǔn)件的結(jié)構(gòu)發(fā)生變化時(shí),在數(shù)據(jù)庫中也只用修改一次,同樣以部件C為例,當(dāng)修改其結(jié)構(gòu)特征時(shí)只需在修改數(shù)據(jù)庫中字段Parentid為“C”的記錄。因而網(wǎng)狀結(jié)構(gòu)模型易于保證BOM數(shù)據(jù)的完整性和一致性。這種模型雖然能清晰的反映產(chǎn)品結(jié)構(gòu),但要編寫較為復(fù)雜的算法來實(shí)現(xiàn)對BOM的遍歷,常用的算法有: 1.遞歸算法。利用數(shù)據(jù)庫的臨時(shí)表來保存遞歸運(yùn)算中的臨時(shí)信息,通過特定變量控制程序的執(zhí)行.2.分層查找法。就是從被查找的根結(jié)點(diǎn)開始,按層次一層一層的往下遍歷,類似于數(shù)據(jù)結(jié)構(gòu)中樹的層次遍歷過程。3改進(jìn)的BOM結(jié)構(gòu)模型3.1 BOM設(shè)計(jì)中的關(guān)鍵問題綜合上面兩種模型的設(shè)計(jì)方法,在BOM設(shè)計(jì)過程中需著重考慮的兩要素是:
9、1.合理的BOM結(jié)構(gòu)模型,即在數(shù)據(jù)庫中設(shè)計(jì)合理的方式存儲BOM數(shù)據(jù),保證BOM數(shù)據(jù)的完整性、一致性、可靠性和無冗余;2.高效便捷的算法完成對產(chǎn)品結(jié)構(gòu)的遍歷和分解,滿足MRP運(yùn)算及各種對產(chǎn)品結(jié)構(gòu)的查詢、匯總等。前者關(guān)系到BOM的易維護(hù)性,后者是關(guān)系到BOM的易使用性,以下簡稱為BOM“設(shè)計(jì)的兩要素”。然而,當(dāng)今流行的數(shù)據(jù)庫大多采用基于關(guān)系模型的關(guān)系型數(shù)據(jù)庫。在數(shù)據(jù)庫發(fā)展歷史中較以前的層次模型或網(wǎng)狀模型,關(guān)系模型對這種樹狀結(jié)構(gòu)的存儲和處理有先天性的不足,如果采取冗余度小的數(shù)據(jù)庫設(shè)計(jì),會使算法比較復(fù)雜,反之亦然。例如前面的兩種模型,樹狀結(jié)構(gòu)模型的數(shù)據(jù)庫設(shè)計(jì)冗余度大但算法簡單、執(zhí)行效率高,實(shí)際上以較差
10、的易維護(hù)性來換取較好的易使用性;而網(wǎng)狀結(jié)構(gòu)模型在保持低數(shù)據(jù)冗余的情況下卻使算法復(fù)雜,降低查詢分析的效率,與前者正好相反。這導(dǎo)致了BOM設(shè)計(jì)中兩要素間的矛盾,而這種矛盾往往是無法避免的。BOM設(shè)計(jì)的主要問題就是在滿足ERP功能的前提下,如何在BOM兩要素之間需求最優(yōu)均衡。為了解決這個(gè)問題,筆者綜合兩種典型BOM結(jié)構(gòu)模型的特點(diǎn),提出以下改進(jìn)的BOM結(jié)構(gòu)模型。3.2 改進(jìn)后的混合結(jié)構(gòu)模型這種模型的設(shè)計(jì)思路是考慮到在產(chǎn)品生命周期的不同階段有不同的BOM,其內(nèi)容和作用各不相同。所以整個(gè)產(chǎn)品結(jié)構(gòu)可再細(xì)分為銷售BOM,制造BOM,采購BOM等。銷售BOM列舉出制造最終產(chǎn)品所必需的可選物料,它僅僅是為了滿足客
11、戶訂單把相對獨(dú)立的部件匯總起來的BOM;制造BOM是根據(jù)產(chǎn)品結(jié)構(gòu)和工藝流程特點(diǎn),把銷售BOM中的獨(dú)立部件作為“最終項(xiàng)目”來構(gòu)建的,用于幫助制定并簡化主生產(chǎn)計(jì)劃;采購BOM是采購部門根據(jù)制造BOM中部件需求制定的外購件、外協(xié)件清單,是進(jìn)行MRP運(yùn)算的邏輯基礎(chǔ)。這種劃分把整個(gè)產(chǎn)品結(jié)構(gòu)分解為粒度大小不同得BOM,銷售BOM包含的數(shù)據(jù)項(xiàng)對應(yīng)的產(chǎn)品結(jié)構(gòu)粒度最大,接下來依次為制造BOM、采購BOM。然后根據(jù)這幾種BOM的結(jié)構(gòu)選擇不同的BOM結(jié)構(gòu)模型。一般來講,銷售BOM的結(jié)構(gòu)簡單且相對固定,對其主要做查詢、匯總等簡單操作,需要較好的BOM易使用性,故采用樹狀結(jié)構(gòu)模型,采購BOM的結(jié)構(gòu)復(fù)雜且需要經(jīng)常修改,而
12、且數(shù)據(jù)存儲量大,對其完整性、一致性要求較高,即需要較好的BOM易維護(hù)性,故采用網(wǎng)狀結(jié)構(gòu)模型,制造BOM視企業(yè)的具體情況,同樣按照其他BOM的選型方法選取合適的BOM結(jié)構(gòu)模型。這樣對整個(gè)產(chǎn)品結(jié)構(gòu)綜合兩種BOM結(jié)構(gòu)模型的優(yōu)點(diǎn),而且能滿足ERP系統(tǒng)各模塊的功能需要,所以稱之為“混合結(jié)構(gòu)模型”。4 應(yīng)用實(shí)例在某壓縮機(jī)生產(chǎn)企業(yè)的ERP系統(tǒng)實(shí)際開發(fā)中,運(yùn)用混合結(jié)構(gòu)模型開發(fā)了其中的BOM管理模塊.該系統(tǒng)采用基于Web的三層B/S架構(gòu),主要運(yùn)用JSP技術(shù),開發(fā)環(huán)境為:服務(wù)器端的操作系統(tǒng)采用Window NT;Web服務(wù)器為AparchTomcat;數(shù)據(jù)庫采用SQL Server 2000。4.1 BOM結(jié)構(gòu)設(shè)
13、計(jì)該企業(yè)是典型的多品種大批量的制造型企業(yè),在BOM設(shè)計(jì)前首先對物料進(jìn)行了編碼,保證每種物料有唯一代碼標(biāo)識,然后參考混合模型把整個(gè)產(chǎn)品結(jié)構(gòu)劃分(如圖4示意)。 圖4 BOM結(jié)構(gòu)劃分l 銷售BOM壓縮機(jī)全代碼標(biāo)識交付客戶使用的商品,包括壓縮機(jī)、附件及包裝等。在ERP中這部分BOM主要供銷售部門使用,使其能夠根據(jù)客戶需要迅速查詢相應(yīng)的配件,或使客戶按照自身需要挑選并自由組合各部件。該部分采用樹狀結(jié)構(gòu)模型,數(shù)據(jù)庫中Rootid字段存放壓縮機(jī)全代碼,Childid字存放壓縮機(jī)裝配碼、附件代碼或者附件包裝代碼。l 制造BOM壓縮機(jī)裝配碼標(biāo)識裝配線上最終裝配出的產(chǎn)品,包括壓縮機(jī)本體、本體包裝和標(biāo)識銘牌。這部
14、分主要供生產(chǎn)部門的總裝配線使用,使其能夠按照主生產(chǎn)計(jì)劃計(jì)算各部件的投料量。該部分同樣采用樹狀結(jié)構(gòu)模型,數(shù)據(jù)庫中Rootid字段存放壓縮機(jī)裝配碼,Childid字段存放壓縮機(jī)本體代碼,本體包裝代碼及標(biāo)識銘牌代碼。l 采購BOM采購BOM用來存儲壓縮機(jī)本體的結(jié)構(gòu)信息,由于不同型號的壓縮機(jī)本體僅存在細(xì)微的結(jié)構(gòu)差異,如果采用樹狀結(jié)構(gòu)模型,必然會產(chǎn)生大量的冗余數(shù)據(jù)。此外,由于所有產(chǎn)品的技術(shù)資料需要與國外母公司保持同步并且隨客戶需求變化頻繁更換,因而對BOM數(shù)據(jù)的維護(hù)是經(jīng)常性的,所以最終采用網(wǎng)狀結(jié)構(gòu)模型,數(shù)據(jù)庫中僅存在具有父子關(guān)系的零部件數(shù)據(jù),然后編寫算法實(shí)現(xiàn)其查詢、匯總等功能。4.2 關(guān)鍵算法實(shí)現(xiàn)對采用
15、樹狀結(jié)構(gòu)模型的客戶BOM和制造BOM,可以直接用SQL查詢語句實(shí)現(xiàn)所需功能,而采購BOM需要對網(wǎng)狀結(jié)構(gòu)模型實(shí)現(xiàn)遍歷等功能,算法較為復(fù)雜,以下給出用于實(shí)現(xiàn)對給定的任一物料查詢其包含的所有子件,并按層次關(guān)系排列的算法。1.在sqlserver2000下先建立兩個(gè)臨時(shí)表work和result,前者用于存儲運(yùn)算的中間數(shù)據(jù),后者存儲運(yùn)算結(jié)果。字段名稱類型含義Lv1int層次碼itemidVarchar(20)物料代碼usageFloat(10)用量表5.臨時(shí)表#work字段名稱類型含義SeqInt identity序號Lv1int層次碼itemidVarchar(20)物料代碼usageFloat(10
16、)用量表6.臨時(shí)表#result2.實(shí)現(xiàn)BOM遍歷查詢的SQL語句為:/聲明變量declare lvl int,curr varchar(20),usage float(10)/從BOM表中選取需要分解的物料信息,并存入#work表等待運(yùn)算select top 1 lvl=1,curr=”根節(jié)點(diǎn)物料代碼”,usage=”用量” from “BOM表”insert into #work (lvl,itemid,usage) values (lvl,curr,usage)/循環(huán)開始,當(dāng)分解層次碼為0時(shí)循環(huán)終止while (lvl0) beginif exists (select * from #w
17、ork where lvl=lvl) begin/從#work表中選取層次碼為lvl的首條記錄A,保存在變量中并插入表#result,然后將該記錄從#work表刪除select top 1 curr=itemid,usage=usage from #work where lvl=lvlinsert #result (lvl,itemid,usage) values (lvl,curr,usage)delete #work where lvl=lvl and itemid=curr/以記錄A為父節(jié)點(diǎn)在BOM表中選取其所有子節(jié)點(diǎn),并插入表#workinsert #work select lvl+1
18、,cid,usagefrom “BOM表” where pid=curr and pidcid/如記錄A有子結(jié)點(diǎn)集B,則層次碼加1,否則減1.然后跳至循環(huán)開始if(rowcount0) set lvl=lvl+1endelseset lvl=lvl-1end/從表#result中選取最終遍歷結(jié)果select * from #result;實(shí)踐證明,采用混合結(jié)構(gòu)模型的BOM設(shè)計(jì)無論是在數(shù)據(jù)庫結(jié)構(gòu)還是運(yùn)算效率上都能滿足企業(yè)需要,為該ERP的順利實(shí)施奠定了基礎(chǔ)。4 結(jié)束語本文分析比較了兩種典型的BOM結(jié)構(gòu)模型,從中總結(jié)BOM設(shè)計(jì)的主要問題并提出相應(yīng)的改進(jìn)BOM結(jié)構(gòu)模型。在筆者參與的ERP系統(tǒng)開發(fā)過程中,這種方法得到了很好的應(yīng)用和證實(shí),希望能給其它ERP系統(tǒng)開發(fā)者以參考?;痦?xiàng)目:上海市浦東新區(qū)科技發(fā)展基金信息化應(yīng)用推進(jìn)專項(xiàng)資金資助項(xiàng)目參考文獻(xiàn):1程控,革楊.MRPII/ERP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024銅門制安工程賠償合同
- 2025年度不銹鋼板材行業(yè)綠色制造與可持續(xù)發(fā)展合同范本2篇
- 2024藥品研發(fā)項(xiàng)目合作開發(fā)與成果轉(zhuǎn)讓合同3篇
- 2025年度智能倉儲物流服務(wù)合同范本二零二五年度4篇
- 《銀伯爵珠寶培訓(xùn)》課件
- 2024版商鋪轉(zhuǎn)讓協(xié)議書范本
- 中國魔芋素食品行業(yè)發(fā)展前景預(yù)測及投資方向研究報(bào)告
- 2025年水電工程安裝與智能化改造合同范本
- 2025年鞍鋼集團(tuán)工程技術(shù)有限公司招聘筆試參考題庫含答案解析
- 2025年中咨工程管理咨詢有限公司招聘筆試參考題庫含答案解析
- 導(dǎo)尿及留置導(dǎo)尿技術(shù)
- 情人合同范例
- 建筑公司勞務(wù)合作協(xié)議書范本
- 安徽省合肥市2023-2024學(xué)年高一上學(xué)期物理期末試卷(含答案)
- 《基于杜邦分析法的公司盈利能力研究的國內(nèi)外文獻(xiàn)綜述》2700字
- 儒家思想講解課程設(shè)計(jì)
- 2024年個(gè)人汽車抵押借款合同范本(四篇)
- 2024-2025學(xué)年九年級化學(xué)上冊 第二單元 單元測試卷(人教版)
- 軌道交通設(shè)備更新項(xiàng)目可行性研究報(bào)告-超長期國債
- 2024-2030年中國一氧化二氮?dú)怏w行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報(bào)告
- NB/T 11446-2023煤礦連采連充技術(shù)要求
評論
0/150
提交評論