本發(fā)明屬于大型復(fù)雜產(chǎn)品協(xié)同研制產(chǎn)品數(shù)據(jù)交換
技術(shù)領(lǐng)域:
,涉及類似直升機等大型復(fù)雜產(chǎn)品數(shù)據(jù)交換環(huán)境下的產(chǎn)品數(shù)據(jù)篩選應(yīng)用過程,也可廣泛適用于其他大型復(fù)雜產(chǎn)品(如航天、船舶、兵器、汽車等)的產(chǎn)品數(shù)據(jù)篩選。
背景技術(shù):
:大型復(fù)雜產(chǎn)品的研制是一個系統(tǒng)性工程,在其設(shè)計制造過程中往往需要多個企業(yè)單位協(xié)同完成。在協(xié)同研制模式下,產(chǎn)品數(shù)據(jù)交換是實現(xiàn)跨地域的各協(xié)同企業(yè)間設(shè)計制造數(shù)據(jù)的共享和集成的重要技術(shù)。目前,PDM系統(tǒng)被廣泛應(yīng)用于各制造企業(yè),實現(xiàn)對產(chǎn)品數(shù)據(jù)的管理。該系統(tǒng)以產(chǎn)品為中心,將設(shè)計制造協(xié)同過程中涉及到設(shè)計、工藝、工裝、質(zhì)量等多個環(huán)節(jié)、多種類型的數(shù)據(jù)集成統(tǒng)一管理。由于PDM系統(tǒng)中數(shù)據(jù)類型的多樣性和數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性,使得產(chǎn)品數(shù)據(jù)交換過程中對產(chǎn)品數(shù)據(jù)的篩選成為關(guān)鍵技術(shù),同時對產(chǎn)品數(shù)據(jù)的篩選在很大程度上也能夠保護企業(yè)的知識產(chǎn)權(quán)?,F(xiàn)有的產(chǎn)品數(shù)據(jù)篩選方法為“抽取式”篩選法,主要是基于定義數(shù)據(jù)抽取節(jié)點的方式實現(xiàn),該方式通過利用PDM系統(tǒng)現(xiàn)有的接口功能或擴展開發(fā),實現(xiàn)對產(chǎn)品結(jié)構(gòu)樹中單個數(shù)據(jù)節(jié)點的抽取,通過有選擇的定義數(shù)據(jù)抽取節(jié)點實現(xiàn)對產(chǎn)品數(shù)據(jù)的篩選?;诠?jié)點定義數(shù)據(jù)包的篩選方式,勢必造成發(fā)往某單位的數(shù)據(jù)中會含有其它單位的數(shù)據(jù),而且存在產(chǎn)品結(jié)構(gòu)樹不完整,產(chǎn)品配置信息丟失的現(xiàn)象,無法滿足協(xié)同研制環(huán)境下對共享數(shù)據(jù)正確性和有效性的要求。本發(fā)明提出的產(chǎn)品數(shù)據(jù)篩選方法為基于整體數(shù)據(jù)集的“清除式”篩選法,對數(shù)據(jù)的清除基于PDM系統(tǒng)數(shù)據(jù)庫實現(xiàn)。面對大型的PDM系統(tǒng)軟件,供應(yīng)商往 往只提供實施顧問支持,不提供數(shù)據(jù)字典給用戶,使得對大型PDM系統(tǒng)復(fù)雜的數(shù)據(jù)庫結(jié)構(gòu)掌握不足??紤]到在PDM系統(tǒng)中,數(shù)據(jù)對象之間的關(guān)聯(lián)關(guān)系不涉及具體數(shù)據(jù)對象,而且在PDM系統(tǒng)應(yīng)用層面只要關(guān)聯(lián)的數(shù)據(jù)對象被清除,其關(guān)聯(lián)關(guān)系則隨之不體現(xiàn)。故清除時只處理與要清除的具體數(shù)據(jù)對象相關(guān)的數(shù)據(jù)庫表記錄,從而實現(xiàn)對要“清除”的數(shù)據(jù)量的最優(yōu)化。使用該方法篩選后的產(chǎn)品數(shù)據(jù),包含完整的產(chǎn)品結(jié)構(gòu)、產(chǎn)品配置信息和工程設(shè)計有效性信息,產(chǎn)品數(shù)據(jù)的正確性和有效性也得到了保證,同時也能滿足實際工程研制環(huán)境下的產(chǎn)品數(shù)據(jù)篩選需求。技術(shù)實現(xiàn)要素:本發(fā)明提出了一種基于PDM系統(tǒng)數(shù)據(jù)庫的產(chǎn)品數(shù)據(jù)篩選方法,目的是為了解決異地協(xié)同研制單位間產(chǎn)品數(shù)據(jù)交換過程中對產(chǎn)品數(shù)據(jù)的篩選問題,該方法彌補了現(xiàn)有產(chǎn)品數(shù)據(jù)篩選方式存在的不足,該方法脫離傳統(tǒng)的“抽取式”方法,采用基于PDM系統(tǒng)整個數(shù)據(jù)庫的“清除式”篩選法,且只清除與具體數(shù)據(jù)對象相關(guān)的數(shù)據(jù)庫表記錄,大大減少了清除數(shù)據(jù)量。另外,該篩選方法能夠按具體業(yè)務(wù)需求對篩選條件進行定制,最大程度地滿足了多樣化業(yè)務(wù)環(huán)境下企業(yè)間協(xié)同研制需求與知識產(chǎn)權(quán)保護的要求,同時保證了協(xié)同研制環(huán)境中共享數(shù)據(jù)的正確性和有效性。本發(fā)明提出了一種基于PDM系統(tǒng)數(shù)據(jù)庫的產(chǎn)品數(shù)據(jù)篩選方法,本方法包括以下步驟:1)準(zhǔn)備產(chǎn)品數(shù)據(jù)篩選中間機,使中間機環(huán)境與正式研制服務(wù)器環(huán)境一致。2)編寫程序,獲取PDM系統(tǒng)數(shù)據(jù)庫表信息,及各數(shù)據(jù)庫表之間的關(guān)聯(lián)關(guān)系。3)記PDM系統(tǒng)中的每個數(shù)據(jù)庫表為網(wǎng)絡(luò)節(jié)點,數(shù)據(jù)庫表之間的關(guān)系為網(wǎng)絡(luò) 中的邊,建立數(shù)據(jù)庫表關(guān)系網(wǎng)絡(luò)模型。在該網(wǎng)絡(luò)模型中,節(jié)點包含的信息有數(shù)據(jù)庫表名、主鍵名稱、表中記錄的條數(shù)和所有字段名稱的集合。邊表示兩個數(shù)據(jù)庫表存在關(guān)聯(lián)關(guān)系,同時包含關(guān)聯(lián)的兩個字段名稱。4)在網(wǎng)絡(luò)模型上,標(biāo)記記錄產(chǎn)品研制過程中不同類型數(shù)據(jù)對象ID的數(shù)據(jù)表。需要標(biāo)記的數(shù)據(jù)對象類型包括產(chǎn)品類、產(chǎn)品、組件、零部件和文檔。不同類型的數(shù)據(jù)對象ID記錄在不同的數(shù)據(jù)庫表中,在對數(shù)據(jù)進行篩選時主要根據(jù)數(shù)據(jù)對象ID,從應(yīng)用層面的數(shù)據(jù)對象定位到數(shù)據(jù)庫層面。5)根據(jù)用戶的需求,配置數(shù)據(jù)篩選參數(shù),包括產(chǎn)品ID、發(fā)放單位代碼和文檔類型等。6)依據(jù)篩選參數(shù)獲取要保留的所有數(shù)據(jù)對象列表。7)建立數(shù)據(jù)庫表,記錄要保留的數(shù)據(jù)對象的主要信息,如ID,類型和發(fā)放單位等8)編寫程序,將步驟4)中標(biāo)記的數(shù)據(jù)庫表與步驟7)中建立的數(shù)據(jù)庫表進行對比,獲取所有要清除的數(shù)據(jù)對象。9)編寫數(shù)據(jù)對象清除類,利用步驟3)構(gòu)建的網(wǎng)絡(luò)模型,從步驟7)中標(biāo)記的節(jié)點出發(fā),遍歷網(wǎng)絡(luò)模型中的數(shù)據(jù)庫表,清除不需保留的數(shù)據(jù)對象在數(shù)據(jù)庫表中的記錄。本發(fā)明提供了一種基于PDM系統(tǒng)數(shù)據(jù)庫的產(chǎn)品數(shù)據(jù)篩選方法,該方法脫離傳統(tǒng)的PDM系統(tǒng)“抽取式”篩選法,采用基于整個數(shù)據(jù)庫的“清除式”篩選法,且只清除與具體數(shù)據(jù)對象相關(guān)的數(shù)據(jù)庫表記錄,使數(shù)據(jù)清除簡化。而且,該方法基于網(wǎng)絡(luò)建模技術(shù)實現(xiàn)對產(chǎn)品數(shù)據(jù)的按需篩選,篩選粒度可通過篩選參數(shù)配置進行控制。本發(fā)明提出的產(chǎn)品數(shù)據(jù)篩選方法在保證了產(chǎn)品結(jié)構(gòu)樹、產(chǎn)品配置信 息、產(chǎn)品數(shù)據(jù)正確性和有效性的基礎(chǔ)上,有效地滿足了協(xié)同研制企業(yè)間數(shù)據(jù)交換應(yīng)用過程中的產(chǎn)品數(shù)據(jù)篩選要求,使需要傳輸?shù)臄?shù)據(jù)量最優(yōu)化,同時也保護了企業(yè)的知識產(chǎn)權(quán)。1)大型軟件PDM系統(tǒng)數(shù)據(jù)庫結(jié)構(gòu)分析及數(shù)據(jù)庫表關(guān)系網(wǎng)絡(luò)建模技術(shù);2)基于數(shù)據(jù)庫表關(guān)系網(wǎng)絡(luò)模型的數(shù)據(jù)對象清除技術(shù);3)產(chǎn)品數(shù)據(jù)篩選的條件和粒度可通過配置控制。粒度稍大的,可按照產(chǎn)品,發(fā)放單位的進行數(shù)據(jù)篩選;粒度小的能夠?qū)o效的疊代,如模型文檔設(shè)計過程中存儲的小版本進行清除,對成品設(shè)計件下的文檔按后綴名進行篩選。附圖說明圖1為基于PDM系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)篩選過程。具體實施方式1)使用數(shù)據(jù)庫備份命令對研制環(huán)境下的PDM系統(tǒng)數(shù)據(jù)庫進行備份。2)復(fù)制研制環(huán)境下的PDM系統(tǒng)電子倉庫至中間服務(wù)器。3)在中間服務(wù)器上構(gòu)建與研制環(huán)境一致的PDM系統(tǒng)環(huán)境,使用數(shù)據(jù)庫恢復(fù)命令將1)中的數(shù)據(jù)庫備份在中間服務(wù)器恢復(fù)。4)基于JDBC技術(shù)編寫數(shù)據(jù)庫表信息類,獲取數(shù)據(jù)庫表中記錄數(shù)大于0的數(shù)據(jù)庫表列表、各數(shù)據(jù)庫表的記錄條數(shù)、主鍵以及所有字段名稱。5)基于關(guān)鍵字段對比的方法,編寫數(shù)據(jù)庫表關(guān)系類,獲取各數(shù)據(jù)庫表之間的關(guān)聯(lián)關(guān)系,以及發(fā)生關(guān)聯(lián)的字段名稱。6)記數(shù)據(jù)庫表為節(jié)點,數(shù)據(jù)庫表之間的關(guān)系為邊,編寫數(shù)據(jù)庫表關(guān)系模型類,建立數(shù)據(jù)庫表關(guān)系網(wǎng)絡(luò)模型。7)在網(wǎng)絡(luò)模型中為每個節(jié)點設(shè)置標(biāo)志位,若該節(jié)點表示的數(shù)據(jù)庫表記錄數(shù) 據(jù)對象的ID則標(biāo)志位值為true,否則為false,對應(yīng)的類型標(biāo)志位的值為數(shù)據(jù)對象類型名。8)配置的數(shù)據(jù)篩選參數(shù)。9)編寫數(shù)據(jù)對象列表類,從產(chǎn)品結(jié)構(gòu)樹的根節(jié)點出發(fā),基于步驟6)構(gòu)建的網(wǎng)絡(luò)模型,對產(chǎn)品規(guī)格、組件、構(gòu)型配置項(ICI、VCI)、零部件實例、版本和文檔對象進行遍歷,獲取所有需要保留的數(shù)據(jù)對象列表。10)使用數(shù)據(jù)庫命令,在PDM系統(tǒng)數(shù)據(jù)庫中新建數(shù)據(jù)庫表。11)記錄步驟9)中獲取的要保留的數(shù)據(jù)對象信息。需要記錄的數(shù)據(jù)對象類型包括產(chǎn)品結(jié)構(gòu)樹構(gòu)型管理項(如ICI)、組件、產(chǎn)品規(guī)格、零部件和文檔。12)基于JDBC技術(shù),結(jié)合SQL命令,編寫數(shù)據(jù)對象對比類,將數(shù)據(jù)篩選表與網(wǎng)絡(luò)模型中標(biāo)記為true的數(shù)據(jù)庫表進行比對,獲取需要清除的各數(shù)據(jù)對象列表。13)基于JDBC技術(shù)編寫數(shù)據(jù)庫表記錄獲取類。利用步驟6)中構(gòu)建的網(wǎng)絡(luò)模型,對不需要保留的數(shù)據(jù)對象,從網(wǎng)絡(luò)模型中標(biāo)志位為true的節(jié)點出發(fā),獲取與要清除的數(shù)據(jù)對象相關(guān)的數(shù)據(jù)庫表記錄。14)基于JDBC技術(shù)編寫數(shù)據(jù)庫記錄清除類,實現(xiàn)對數(shù)據(jù)表記錄的批量清除。實施例1:以某直升機型號協(xié)同研制環(huán)境下的產(chǎn)品數(shù)據(jù)篩選為例,某直升機型號的協(xié)同研制主要涉及跨地域的一所三廠,為了實現(xiàn)設(shè)計與設(shè)計、設(shè)計與制造單位之間的數(shù)據(jù)共享,使設(shè)計與制造工作并行開展,縮短產(chǎn)品研制周期,需要進行產(chǎn)品數(shù)據(jù)的交換。在某型直升機研制過程中,采用了達索提供的PDM系統(tǒng)ENOVIAVPMV5R18(以下簡稱VPM)進行產(chǎn)品數(shù)據(jù)的管理。然而由于VPM系統(tǒng)中集成了與工程設(shè)計相關(guān)的所有數(shù)據(jù),對產(chǎn)品數(shù)據(jù)的篩選提出了一系列需求,如①只交換指定 型號的產(chǎn)品數(shù)據(jù),其他型號的產(chǎn)品數(shù)據(jù)均要清除;②只交換產(chǎn)品結(jié)構(gòu)樹,不交換組件GCO;③產(chǎn)品結(jié)構(gòu)樹(包括ICI、VCI、GCI)均交換,其下掛的文檔僅交換構(gòu)型清單和ECO文檔,其他數(shù)據(jù)均不保留;④VCI上定義“發(fā)放單位代碼”屬性,只有該屬性值中有指定的發(fā)放單位的VCI才進行交換;⑤VCI下所有結(jié)構(gòu)信息均交換,其下掛的設(shè)計件、標(biāo)準(zhǔn)件、材料、假件以及對應(yīng)的文檔均交換,成品只交換CATDrawing、CATPart、cgr格式的數(shù)據(jù);⑥更改指令的狀態(tài)為已批準(zhǔn),且發(fā)放單位中包含指定的發(fā)放單位代碼的,且屬于指定產(chǎn)品的才能交換。⑦所有文件夾不進行交換;⑧除結(jié)構(gòu)樹上需交換的零部件外,其它均不交換等。按照本發(fā)明方法,開發(fā)了滿足上述需求的產(chǎn)品數(shù)據(jù)篩選工具,該工具已應(yīng)用于某型號的產(chǎn)品數(shù)據(jù)篩選中,現(xiàn)以該場景為例說明該方法的實施過程:1)使用db2dbbackup命令對正式研制環(huán)境中VPM系統(tǒng)的數(shù)據(jù)庫進行備份。2)采用拷貝文件夾的方式,將正式研制環(huán)境下的VPM系統(tǒng)電子倉庫備份至中間服務(wù)器上。3)使用db2restore命令將步驟2)中的數(shù)據(jù)庫備份恢復(fù)至中間服務(wù)器的數(shù)據(jù)庫vpmdb中。4)基于JAVA編程,結(jié)合JDBC技術(shù),實現(xiàn)了數(shù)據(jù)庫表信息類。獲取到VPM系統(tǒng)數(shù)據(jù)庫表共677個,有數(shù)據(jù)記錄的279個,各數(shù)據(jù)庫表的主鍵由字段OID唯一標(biāo)識,且各數(shù)據(jù)庫表包含的字段個數(shù)和名稱各不相同。如VPMPARTMASTER表包含81個字段,CHDPARTVERSION表包含103個字段等。5)基于JAVA實現(xiàn)數(shù)據(jù)庫表關(guān)系類。通過將主鍵OID的值與其他數(shù)據(jù)庫表各字段的值進行比對,找出數(shù)據(jù)庫表相互之間的關(guān)聯(lián)關(guān)系,及關(guān)聯(lián)字段。如數(shù)據(jù)庫表VPMPARTMASTER與VPMASSEMBLYRE0001,關(guān)聯(lián)字段為OID和VPM;數(shù)據(jù)庫表 VPMPARTMASTER與CHDPARTVERSION,關(guān)聯(lián)字段為OID和VMASTER;數(shù)據(jù)庫表VPMPARTMASTER與VPMITEMINSTANCE,關(guān)聯(lián)字段為OID和VPV。6)基于JAVA實現(xiàn)數(shù)據(jù)庫表關(guān)系模型類,構(gòu)建數(shù)據(jù)庫表關(guān)系網(wǎng)絡(luò)模型。網(wǎng)絡(luò)模型中,節(jié)點包含的信息有數(shù)據(jù)庫表名、主鍵名稱、表中記錄的條數(shù)和所有字段名稱的集合。邊表示兩個數(shù)據(jù)庫表存在關(guān)聯(lián)關(guān)系,同時包含關(guān)聯(lián)的兩個字段名稱。7)對網(wǎng)絡(luò)模型中節(jié)點的標(biāo)志位RBOFlag和RBOType賦值。如產(chǎn)品標(biāo)識記錄在VPMPRODUCTROO0001表中的VID字段,產(chǎn)品規(guī)格標(biāo)識記錄在VPMPRODUCTSPE0001表中的VSPECID字段,零部件實例標(biāo)識記錄在VPMITEMINSTANCE表中的VINSTANCEID字段,零部件標(biāo)識記錄在VPMPARTMASTER中的VID字段,文檔標(biāo)識記錄在CHDDOCUMENTMASTER表中的VID字段等,則對應(yīng)網(wǎng)絡(luò)節(jié)點名為VPMPRODUCTROO0001的標(biāo)志位RBOFlag=TRUE,RBOType=PRODUCT;節(jié)點名為VPMPRODUCTSPE0001的標(biāo)志位RBOFlag=TRUE,RBOType=PRODUCTSPEC;節(jié)點名為VPMITEMINSTANCE的標(biāo)志位RBOFlag=TRUE,RBOType=INSTANCE;節(jié)點名為VPMPARTMASTER的標(biāo)志位RBOFlag=TRUE,RBOType=PART;節(jié)點名為CHDDOCUMENTMASTER的標(biāo)志位RBOFlag=TRUE,RBOType=DOC;8)根據(jù)上述①至⑧的數(shù)據(jù)篩選需求,配置篩選參數(shù):ProductClass、Product、ToDept、Tree、TreeDoc、PartType、PartDoc、EQUPartDoc、COType、Status。9)根據(jù)配置的篩選參數(shù),遍歷步驟6)構(gòu)建的網(wǎng)絡(luò)模型,獲取所有需要保留的產(chǎn)品類、產(chǎn)品、產(chǎn)品規(guī)格、組件、產(chǎn)品結(jié)構(gòu)樹(包括ICI、VCI、GCI)、零部件實例、零部件版本、文檔等數(shù)據(jù)對象的ID、名稱、發(fā)放單位和類型信息。10)使用db2creattable命令,在VPM系統(tǒng)數(shù)據(jù)庫中新建五個數(shù)據(jù)庫表ZTREE(PRODUCTID,VCIID,VCIVERSION,PARTID,PARTVERSION,PARTDOMAIN,DEPTID),ZCOMP(PRODUCTID,COMPID,COMPNAME,PARENTCOMPID,HASINS),ZCAT(PRODUCTID,CATID、CATDOMAIN),ZPART(PARTID,PARTVERSION,PARTDOMAIN,DEPTID),ZDOC(PRODUCTID,VCIID,VCIVERSION,PARTID,PARTVERSION,DOCID,DOCVERSION,URL,FILESIZE,ISCGR,DEPTID)。11)利用JDBC技術(shù)實現(xiàn)其中將要保留的產(chǎn)品類、產(chǎn)品、產(chǎn)品規(guī)格的信息插入到ZTREE表中,產(chǎn)品規(guī)格信息插入到ZCAT表中,組件信息插入到ZCOMP表中,零部件實例、零部件版本信息插入到ZPART表中,文檔信息插入到ZDOC表中。12)使用JAVA語言編程實現(xiàn)數(shù)據(jù)對象對比類。將上述五個數(shù)據(jù)庫表中的對象與網(wǎng)絡(luò)模型中RBOFlag=TRUE的節(jié)點對應(yīng)的數(shù)據(jù)庫表進行比對,不在上述五個數(shù)據(jù)庫表中的數(shù)據(jù)對象即為在數(shù)據(jù)篩選時要清除的數(shù)據(jù)對象。如數(shù)據(jù)庫表VPMPARTMASTER中通過VID標(biāo)識的零部件對象,若不在ZPART表中,則該零部件在篩選時要清除。13)使用JAVA語言編程實現(xiàn)數(shù)據(jù)庫表記錄獲取類。實現(xiàn)基于步驟6)中構(gòu)建的網(wǎng)絡(luò)模型,獲取與不需要保留的數(shù)據(jù)對象相關(guān)的所有數(shù)據(jù)庫表記錄。如對零部件對象VID=XXX進行清除,則從網(wǎng)絡(luò)模型中標(biāo)志位RBOFlag=TRUE和RBOType=PART的節(jié)點出發(fā)(VPMPARTMASTER),遍歷整個網(wǎng)絡(luò)獲取與VPMPARTMASTER存在關(guān)聯(lián)關(guān)系的數(shù)據(jù)庫表VPMASSEMBLYRE0001,CHDPARTVERSION,VPMITEMINSTANCE中的數(shù)據(jù)庫記錄。14)最后JDBC技術(shù)與JAVA、SQL編程技術(shù)相結(jié)合實現(xiàn)數(shù)據(jù)庫記錄清除類。對步驟13)中獲取的數(shù)據(jù)庫表記錄進行批量清除。當(dāng)前第1頁1 2 3