1 Windchill系统概述
船舶产品设计周期长,技术文件和数据数量庞大,设计阶段设计信息变更频繁,设计过程螺旋前进,需要对产品数据和相关文档进行有效管理。包括数据存取、版本控制、技术状态监控以及产品数据间关联关系的维护。而传统的手工管理已经难以满足实际需要,所以急需将产品数据管理(PDM)实施于船舶行业。
当前,全球商用的PDM软件有近百种,国外比较有影响力的有PTC公司的Windchill,UGS公司的IMAN,MatrixOne公司的eMatrix,IBM公司的ProductManager等。国内也有很多公司开发了相应的PDM系统,如清华同方PDM,武汉天喻PDM,武汉华中软件的IntePDM等。另外,还有上海交通大学正在研制开发的“船舶数字化智能设计系统”(KSHIP),该系统在高度集成现行主流船舶设计制造软件的基础上,构建了一个异地协同设计平台,有效处理设计中的业务流、数据流、信息流,也包含了软件子系统接口开发及PDM方面的内容。
目前,PTC公司的Windchill是国际上应用最广泛的PDM系统。该系统基于Web的3层B/S结构,把服务器的能力与因特网的便捷有效地结合起来,构造出一个分布式的协同产品商务平台。Windchill利用先进的Java2企业版(J2EE)技术进行开发,使系统可以运用于不同的平台,并且具备了更好的开发性和动态更新的功能。此外,Windchill的数据层采用了Oracle关系数据库来有效地管理数据间的关联关系。该系统在我国船舶行业得到了越来越多的应用,上海交通大学KSHIP项目组也引进了该系统,并得到了应用。
2 开发方案概述
研究所、船厂作为船舶设计制造的设计和制造部门,经常需要接收上游单位,或者是合作单位等提供的技术设计结果,如CADDS5模型、AutoCAD图纸、设计文件、生产装配和工艺方面的指导性文件等。
当外来文件数量较少时,可直接在Windchill系统中以创建文档的方式来导入。但是,如果外来文件的数量较大,手动添加的方法耗时耗力,而且容易出错,此时则迫切需要通过批量导入手段来处理。
本文使用PTC公司的Windchill 9.0,对船舶设计制造过程中的外来技术文件批量导入手段进行了开发和研究,为Windchill的有效应用及PDM管理提供了手段与参考。由于Windchill系统庞大,系统Oracle数据库中的数据信息很多,因此采用直接对数据库进行操作上传的方法难度比较大。同时,一旦Windchill系统在版本升级时对数据库结构进行变动,则用这种方法开发的手段很可能失效。本文采用了另外一种方法,以含有上传文件属性信息和路径的Excel表格为载体开发了新的导入手段。我们在Windchill用户界面上添加了下拉菜单操作项,当用户点击操作项时会链接到定制好的JSP页面,在页面处指定Excel表格的路径,继而我们开发的Java程序会自动将Excel表格中所列的批量外来技术文件导入到Windchill中。
3 在Windchill系统的开发
3.1 定义文档属性
文档的属性代表了文档在Windchill中建立和存储的一些信息。外来技术文档在提交入库时需要给出如文件编号、文件名称、所属专业、项目阶段、文件大类、文件小类、提交单位、设计人员、系统、总段、分段、区域、舱、页数等属性信息。当然,这些属性信息可以根据各实际使用部门的情况进行增减。该操作需要在Windchill系统中的“类型和属性管理器”里作相应的定义。
如在类型根“文档>Reference Document”下添加一个“图样和技术文件”类型,并定义添加所需的IBA属性及其约束条件,如表1。
表1 所添加的部分属性及其约束条件
(图片)3.2 添加所需action
在Windchill用户操作界面中,所有操作都对应一个action。这些操作是通过Windchill中成对出现的两类文件进行定义的。其中一类定义了所添加action的显示位置,另一类则定义了所添加action要执行的操作内容。
在定义action显示位置的文件中,所有操作是通过model(类)来组织的。每一个类都对应着用户界面上的一个下拉选项,而该类下的每个action又对应着相应下拉选项中的一个操作。本文添加一个名为“importDesignList”的操作项,其位于“产品”主选项下的“详细信息”页面操作的下拉菜单中。“详细信息”页面操作所对应的类为“product details page actions”。本文设计了名为“importDesignList”的操作项,并将其添加到所属类下。我们添加该操作,将在Windchill系统中创建文档,因此将其类型定义为“document”,如图1所示。
(图片)
图1 定义添加的action 在定义action执行内容的文件中,所有操作的内容都是通过obieettype(对象类型)来组织的。从上一步对操作对象类型的定义中可知,我们所添加的“importDesignList”类型为“document”,故在该对象类型下舔加代码定义importDesignList所执行的内容。
3.3 创建资源绑定
Windchill系统用户界面上的中文显示是通过系统的资源绑定功能实现的。资源绑定用于消息的本地化处理和一些文本信息的本地化处理。本文利用这一功能,将用户界面下拉菜单中所要添加anion的显示名称“设计目录导入”与其在系统程序中所使用的英文名称“importDesignLiEt”进行资源绑定。这样做的好处在于,当想把“设计目录导入”改为其它显示时,只需在资源绑定中修改一处即可,而不必修改应用程序代码。
Windchill默认的是英文显不在进行本地化处理时,需要先写一个英文的资源绑定再跟它对应着写一个中文的资源绑定。上文中我们定义了操作项的类型为document,可根据该对象类型找到其资源绑定的定义位置。然后便可找到相应的.rbInfo文件,在其中添加我们的资源绑定。
最后一步,也是比较容易被遗忘的重要步骤,就是在WindchillShell中运行ResourceBuild命令,对刚修改过的资源绑定文件进行编译。
至此,如进入windchill系统,便可在产品>详细信息下的操作下拉菜单中看到我们添加的“设计目录导入”选项。
因为点击我们添加的操作项后,要弹出一个新的JSP页面,所以为了实现这一功能窗体类型要定义为“popup”。JSP页面的定制将在后文进行,该页面的名称暂且定义为importDesignCatalog.jsp,存放在netmarkets/jsp/ext/sjtu/document目录下。
3.4 定制JSP页面
在Windchill系统中有三种页面:JSP页面、HTML页面和DCA页面。HTML技术主要用来设计静态页面,而DCA技术在Windchill系统中用来设计查询页面。JSP页面是Java中用来设计动态页面的WEB技术,使用JSP技术可以有效地进行基于MVC模式的设计开发。
本文需要利用页面调用系统导入程序,而只有JSP页面能实现这一功能。
4 添加系统定制程序
本文采用了常用的Excel表格文件作为导入文档及其主文件的载体,非常直观,且便于重复利用。只要Excel表格中文档的属性能满足表1中的约束条件,导入文件的数量及其路径可根据上传的实际需要自由选择,如图5所示。
根据Excel表格中的信息,经过由Java代码编写的系统程序完成导入过程。Java源代码通过Eclipse高级开发环境编译后,变为.class可执行文件配置到Windchill系统的特定目录下。重新启动系统,就完成了本导入手段的开发工作。
5 导入功能测试
5.1 实施实例
开发完成后的导入操作非常简单,共3步:填写好上传文件的Excel表格;通过所添加的JSP页面浏览指定第一步中Excel表格的地址:点击JSP页面的“导入”键开始自动导入。
5 导入功能测试
5.1 实施实例
开发完成后的导入操作非常简单,共3步:填写好上传文件的Excel表格;通过所添加的JSP页面浏览指定第一步中Excel表格的地址:点击JSP页面的“导入”键开始自动导入。
5.2 增加属性信息
当需要对属性信息进行增加时,也只需要3步便可以完成:在Excel表格中依次添加属性列;在Windchill系统中的“属性和类型管理器”中定义新属性,并将新属性添加到我们定义的“图样和技术文档”类中:在系统程序中添加相应的Java代码。通过该方法添加属性信息,只需对系统程序中6处添加少量代码即可,简便易于掌握,便于非专业开发人员使用。
本文在上一步所实施实例的Excel表格的基础上,添加了“文件类型”和“编制单位”两个新属性,其中前者的约束条件为“技术任务书|技术计算结果|设计图纸|总结报告|其它文件|”,后者没有约束条件。按照上述3个步骤作相应修改后,填写完整Excel表格,删除原有文档重新导入,在文档的详细信息中便可看到新添加的属性及其值。
6 结论
本文开发的导入手段可根据上传文件属性信息的不同,建立多种文件导人表格模板.可重复使用。文档主文件的位置可以自由填写,上传过程更加直观,便于所有普通操作人员进行数据导入。对文档属性信息进行增加时,所要添加修改Excel表格及处理表格程序的工作量小,便于企业内部人员进行后续开发完善。这些特点将避免过度依赖软件提供商的后续服务,减小客制化开发实施成本。
该方法的思想不仅可以运用到Windchill系统中,也可以用到其他PDM系统的开发中,我们也将该方法运用到了KSHIP系统的开发中去,虽然应用于不同的PDM系统所使用的技术手段不同,但该方法的直观性和易用性仍可为其它PDM系统的开发研究提供借鉴。
但是,使用本文中的导入方法,一个Excel文件只能导入有相同属性信息的文件,而当文件的属性信息数量或种类不同时,则要建立不同的Excel表格模板分别进行导入工作。所以本文中的方法仍可进行更深一步的开发完善。我们计划下一步将所有的模板集中到一个Excel文件中,用不同的sheet来进行分类,这样将Excel模板文件数量减少到一个,更加简化了导入过程。
2/17/2012
|