TeamCenter歷史數據導入_第1頁
TeamCenter歷史數據導入_第2頁
TeamCenter歷史數據導入_第3頁
TeamCenter歷史數據導入_第4頁
TeamCenter歷史數據導入_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

3、I技術實現了對歷史數據的分批導入。一、實現原理    Teamcenter(UA)中的基本數據結構是Item結構: 圖1. Item結構    Item是系統最基本的業務對象,Item Revision是版本對象,用來管理各個版本的數據。其中屬性表保存了版本的詳細屬性,包括了客戶化屬性;數據集(用DS縮寫)封裝了物理文件。Item對象還可以通過各種關系關聯其他的Item對象。    在實施過程中,我們通常會幫助企業整理一部分有價值的歷史數據作為PDM系統上線時的基礎和參考,比如標準件庫,有代表性

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

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

6、行號為空的行時,標記這是最后一行數據· 提供多種可選選項,配置導入后的一些后續動作。如:若同名DS存在是否覆蓋,若對象存在是否覆蓋?· 標記Bom關系上的屬性,例如:單位、數量等等2. POI讀寫Excel技術· 導入必要的包    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();    讀入數字使用語句:    celldval = wb.getSheetAt(isheet).getRow(iline).getCell(short)irow).getNumericCellValue();·  寫入單元格(按格式寫入)    寫入字符串:    wb.getSheetAt(isheet).getRow(iline).getCell(short)irow).getStringCellVa

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

12、160; Teamcenter(UA)兩層Richclient是架構在Eclipse平臺上的應用系統。各部件是按照Eclipse Plugins插件方式嵌入到整個系統的。我們所要開發的歷史數據導入工具也作為一個插件被加載和運行的。·  準備好Eclipse開發環境·   Eclipse的版本要求是3.2以上,推薦使用3.3        Jre版本要求在1.5.2.06以上        在Eclipse中新建一個插

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

14、次開發,一個命令按鈕需要包括以下層次的類調用:命令按鈕動作位于CustomToolAction類(動作類)中,按鈕按下,觸發CustomToolCommand類(命令類),然后會啟動一個對話框(有些情況下不需要對話框),完成對話框UI的交互后,可能觸發一個后臺的動作,由CustomToolOperation類負責執行。圖9. 對話框類的啟動·  用Java抽象類實現“驅動引擎”模塊中三種不同的業務類型    驅動引擎有很多相似的功能,零部件結構是在Item導入完成后才導入到系統的,所以,ManagerBom繼承在ManagerItem之下。Ab

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論