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

提交评论