TeamCenter歷史數(shù)據(jù)導(dǎo)入_第1頁
TeamCenter歷史數(shù)據(jù)導(dǎo)入_第2頁
TeamCenter歷史數(shù)據(jù)導(dǎo)入_第3頁
TeamCenter歷史數(shù)據(jù)導(dǎo)入_第4頁
TeamCenter歷史數(shù)據(jù)導(dǎo)入_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Teamcenter(UA)中實(shí)現(xiàn)歷史數(shù)據(jù)導(dǎo)入發(fā)表時(shí)間:2009-12-31  特約通訊員: 郭宇 來源:e-works關(guān)鍵字:Teamcenter Item 二次開發(fā) 歷史數(shù)據(jù)導(dǎo)入 PDM本文闡述了在Teamcenter(UA)上實(shí)現(xiàn)的一個(gè)比較通用的歷史數(shù)據(jù)導(dǎo)入工具的實(shí)現(xiàn)方法。通過Java Eclipse和POI技術(shù)實(shí)現(xiàn)了對歷史數(shù)據(jù)的分批導(dǎo)入。    PDM(Product Data Management)最重要的功能之一是實(shí)現(xiàn)企業(yè)業(yè)務(wù)流程的電子化,為了實(shí)現(xiàn)這個(gè)目標(biāo),我們必須保證各種

2、數(shù)據(jù)能夠存儲(chǔ)到PDM系統(tǒng)并且能很好得共享。其中包括了文檔、設(shè)計(jì)資料(二維三維圖紙)的存儲(chǔ)和共享。同時(shí)我們還需要實(shí)現(xiàn)企業(yè)業(yè)務(wù)流程的電子化乃至核心研發(fā)流程優(yōu)化再造,以規(guī)范企業(yè)的研發(fā)流程,幫助企業(yè)提高核心競爭力。    Teamcenter(UA)有良好的架構(gòu)和開發(fā)接口,我們可以通過客戶化為企業(yè)量身定做適合企業(yè)自身的業(yè)務(wù)工作流,滿足客戶的特殊需要。在PDM實(shí)施過程中系統(tǒng)上線前,企業(yè)歷史數(shù)據(jù)必須有步驟分批導(dǎo)入到一個(gè)全新的PDM系統(tǒng)以支持日常業(yè)務(wù)流程。本文闡述了在Teamcenter(UA)上實(shí)現(xiàn)的一個(gè)比較通用的歷史數(shù)據(jù)導(dǎo)入工具的實(shí)現(xiàn)方法。通過Java Eclipse和PO

3、I技術(shù)實(shí)現(xiàn)了對歷史數(shù)據(jù)的分批導(dǎo)入。一、實(shí)現(xiàn)原理    Teamcenter(UA)中的基本數(shù)據(jù)結(jié)構(gòu)是Item結(jié)構(gòu): 圖1. Item結(jié)構(gòu)    Item是系統(tǒng)最基本的業(yè)務(wù)對象,Item Revision是版本對象,用來管理各個(gè)版本的數(shù)據(jù)。其中屬性表保存了版本的詳細(xì)屬性,包括了客戶化屬性;數(shù)據(jù)集(用DS縮寫)封裝了物理文件。Item對象還可以通過各種關(guān)系關(guān)聯(lián)其他的Item對象。    在實(shí)施過程中,我們通常會(huì)幫助企業(yè)整理一部分有價(jià)值的歷史數(shù)據(jù)作為PDM系統(tǒng)上線時(shí)的基礎(chǔ)和參考,比如標(biāo)準(zhǔn)件庫,有代表性

4、的機(jī)種等等。一般情況下,我們會(huì)把整理數(shù)據(jù)整理成Excel格式。所以要求歷史數(shù)據(jù)導(dǎo)入工具需要能夠分析Excel文件,并且在Teamcenter(UA)系統(tǒng)中創(chuàng)建上(圖1)中的數(shù)據(jù)結(jié)構(gòu)。對于最常用的數(shù)據(jù)導(dǎo)入要求,我把它分為三個(gè)主要的功能模塊進(jìn)行設(shè)計(jì):·  Item對象:逐個(gè)導(dǎo)入Item對象結(jié)構(gòu),包括Item、Item Revision、數(shù)據(jù)集以及他們的關(guān)聯(lián)關(guān)系圖2. 導(dǎo)入Item程序框圖· BOM對象:在導(dǎo)入Item對象結(jié)構(gòu)的基礎(chǔ)上再創(chuàng)建Bom結(jié)構(gòu),表達(dá)零部件Bom關(guān)系;圖3. 導(dǎo)入Bom程序框圖· Relation對象:導(dǎo)入若干Item對象之間的關(guān)系圖4.

5、 導(dǎo)入關(guān)系程序框圖    對于上述三種業(yè)務(wù)邏輯,可以把程序劃分為“Excel讀取”“數(shù)據(jù)創(chuàng)建”“驅(qū)動(dòng)引擎”“導(dǎo)入日志”等模塊進(jìn)行設(shè)計(jì):圖5. 模塊劃分二、關(guān)鍵技術(shù)1. 通用性設(shè)計(jì)    面對各個(gè)不同的類,如何把各種具有不同屬性的類導(dǎo)入到系統(tǒng)是導(dǎo)入工具設(shè)計(jì)的首要問題。為了解決這個(gè)問題,導(dǎo)入工具必須能讀取具有可變列的Excel表格。下面是導(dǎo)入程序應(yīng)有的一些重要邏輯:· 每個(gè)屬性都有標(biāo)示符,表示它屬于(圖1)中哪個(gè)類的屬性,是Item的還是DS的?· 當(dāng)讀取屬性名稱列,遇到空白列時(shí),標(biāo)記這是列結(jié)尾。· 當(dāng)讀取到

6、行號為空的行時(shí),標(biāo)記這是最后一行數(shù)據(jù)· 提供多種可選選項(xiàng),配置導(dǎo)入后的一些后續(xù)動(dòng)作。如:若同名DS存在是否覆蓋,若對象存在是否覆蓋?· 標(biāo)記Bom關(guān)系上的屬性,例如:單位、數(shù)量等等2. POI讀寫Excel技術(shù)· 導(dǎo)入必要的包    import org.apache.poi.hssf.usermodel.*;·  定義Workbook對象:    public HSSFWorkbook wb = null;·  打開Excel工作簿  

7、0; public boolean open(File in)            FileInputStream filein = null;        try             filein = new FileInputStream(in);      catc

8、h (FileNotFoundException e)      e.printStackTrace();     return false;          try      wb = new HSSFWorkbook(filein);     filein.close();     catch (IOExcept

9、ion e)      e.printStackTrace();     return false;          return true;    ·  讀取單元格    讀入字符串使用語句:    cellval = wb.getSheetAt(isheet).getRow(iline).getCell(short)iro

10、w).getStringCellValue();    讀入數(shù)字使用語句:    celldval = wb.getSheetAt(isheet).getRow(iline).getCell(short)irow).getNumericCellValue();·  寫入單元格(按格式寫入)    寫入字符串:    wb.getSheetAt(isheet).getRow(iline).getCell(short)irow).getStringCellVa

11、lue(字符串);    寫入數(shù)字:    wb.getSheetAt(isheet).getRow(iline).getCell(short)irow).setNumericCellValue(數(shù)字);·  保存Excel工作簿    只需要保存新建workbook時(shí)輸入的FileInputStream就能保存文件:    filein.close();3. 基于Eclipse Plugins的兩層Richclient二次開發(fā)  &#

12、160; Teamcenter(UA)兩層Richclient是架構(gòu)在Eclipse平臺(tái)上的應(yīng)用系統(tǒng)。各部件是按照Eclipse Plugins插件方式嵌入到整個(gè)系統(tǒng)的。我們所要開發(fā)的歷史數(shù)據(jù)導(dǎo)入工具也作為一個(gè)插件被加載和運(yùn)行的。·  準(zhǔn)備好Eclipse開發(fā)環(huán)境·   Eclipse的版本要求是3.2以上,推薦使用3.3        Jre版本要求在1.5.2.06以上        在Eclipse中新建一個(gè)插

13、件工程并導(dǎo)入必要的Teamcenter開發(fā)包(一些Jar文件)    在Eclipse中新建一個(gè)Plug-in Project圖6. 創(chuàng)建插件項(xiàng)目對話框    配置目標(biāo)平臺(tái),指向Teamcenter(UA)安裝目錄的portal文件夾圖7. 配置Eclipse plug-in目標(biāo)平臺(tái)對話框·  在工具欄添加按鈕    修改plugin.xml文件,添加按鈕圖8. 加入工具欄菜單按鈕·  按鈕命令啟動(dòng)歷史數(shù)據(jù)導(dǎo)入對話框    對于典型的二

14、次開發(fā),一個(gè)命令按鈕需要包括以下層次的類調(diào)用:命令按鈕動(dòng)作位于CustomToolAction類(動(dòng)作類)中,按鈕按下,觸發(fā)CustomToolCommand類(命令類),然后會(huì)啟動(dòng)一個(gè)對話框(有些情況下不需要對話框),完成對話框UI的交互后,可能觸發(fā)一個(gè)后臺(tái)的動(dòng)作,由CustomToolOperation類負(fù)責(zé)執(zhí)行。圖9. 對話框類的啟動(dòng)·  用Java抽象類實(shí)現(xiàn)“驅(qū)動(dòng)引擎”模塊中三種不同的業(yè)務(wù)類型    驅(qū)動(dòng)引擎有很多相似的功能,零部件結(jié)構(gòu)是在Item導(dǎo)入完成后才導(dǎo)入到系統(tǒng)的,所以,ManagerBom繼承在ManagerItem之下。Ab

15、stractManager定義了三個(gè)抽象方法幫助分析數(shù)據(jù):    public abstract boolean validateContent();對該行數(shù)據(jù)內(nèi)容進(jìn)行驗(yàn)證    public abstract void initOptions();讀取導(dǎo)入選項(xiàng)    public abstract void getLine();讀取單行數(shù)據(jù)并格式化    AbstractManager還有一個(gè)Run()方法發(fā)起整個(gè)導(dǎo)入循環(huán)操作。圖10. 導(dǎo)入引擎抽象設(shè)計(jì)三、應(yīng)用實(shí)例1. 基本應(yīng)用 導(dǎo)入數(shù)據(jù)舉例:圖11. 導(dǎo)入數(shù)據(jù)格式· 導(dǎo)入工具界面:圖12. 導(dǎo)入工具界面· 導(dǎo)入效果舉例:圖13. 導(dǎo)入效果2. 壓力測試    本工具已經(jīng)通過了一定的壓力測試,在某國企重型機(jī)械單位,曾經(jīng)成功批量導(dǎo)入過最

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論