通常我们直接从产品结构树仅能获得零部件的名称,在企业数以千计的零部件中,存在相同名称的零部件是不可避免的。因此仅从名称上来辨别零部件是不可能的。怎样准确的找到零件,以便准确获取我们所需要的信息是使用产品结构树必需要解决的问题。我们采用一种循环比较的方法来实现对产品结构树的遍历,准确地找到零部件。图3是遍历产品结构树的流程图,首先获取该节点文字信息,以该节点为基点,逐层获取父节点名称,并顺序压入堆栈TextString。通过该节点名称为起点在数据库中查询,通过“零件名-零件ID-父零件ID一父零件名称”的顺序依次递推,将零部件名称压入堆栈DatabaseString。比较两个堆栈中的数据,如果两个堆栈数据相同,则证明在数据库中找的零件即与节点对应的记录,否则,继续进行循环查询,直到找到对应的记录为止。一个产品中可能存在某些零件名称相同,但是不存在整个部件乃至整个产品所有名称完全相同,父子关系完全相同,所以采用该方法可以准确地找到零部件对应的记录,准确的找到节点对应的信息。
图3 遍历产品结构树
产品结构树的每个节点表示一个产品、部件、组件或零件,那么每个节点需要关联相应的属性信息以及图文档,以方便查询、修改等的操作。图文档包括CAD文档、工艺文档等等,并且每个文档可能存在多个版本。这就引出一个问题,一个节点可能需要关联多个文档,即“一对多”的问题。那么怎样准确找到对应文档呢,这里提供一种方法供参考:PDM一般都是基于数据库开发的,节点信息和文档信息都存储于数据库中,节点信息与文档信息保存在不同的数据表里。节点信息表与文档信息表采用“一对多”方式,即节点信息表中一条记录对应文档信息表的多条记录,这在数据库中可以实现。如图4所示,PartAttribute表中的Partld是唯一的,对应一个唯一的KeyWord,而FileAttribute表中对应的KeyWord却可以有多个,多个Keyword对应多个文件,从而实现了一个零件对应多个文件。
图4 Part Attribute表与File Attribute表的对应关系
2.4 权限问题
PDM系统为企业提供了信息共享平台,使得不同的人、部门甚至其他相关企业都能方便的共享数据和信息,以提高设计效率和品质,那么PDM系统在共享数据同时必须保证数据的安全,PDM系统是通过权限管理来完成,即具有一定权限的人,才可以在适当的条件下,对对应范围内的数据进行访问[3]。
产品结构树实现了对产品零部件信息及对应图文档的管理,那么是否每一个人都可以对产品结构树进行操作,是否需要限制,限制什么,怎么限制,这就涉及到权限的问题。
PDM平台中DM、PM、WFM和PSM都涉及到产品结构树的问题,不同的功能模块中产品结构树的权限有所不同。
WFM通常是针对某项目进行的,产品结构树只是针对某项目的管理。这里我们采用个人产品结构树和项目结构树分别管理个人设计产生的零部件和已经完成的任务产生的零部件,设计人员只能操作自己的产品结构树,而无法对项目产品结构树进行操作,当自己任务完成之后,个人产品结构树消失,而零部件挂接到项目结构树下,当前设计人员无权再进行操作。如果设计存在问题。文档被退回,重新生产个人产品结构树时才可以重新进行操作。这是一动态过程,随着任务的推进对任务负责人设置不同的权限。整个项目完成提交之后。将由PM、PSM管理取代WFM管理,产品结构树将无法再在WFM中浏览。具有PSM权限的人员可以在PSM中实现对所有产品的浏览,普通设计人员如需浏览则需要申请权限,经批准后才能浏览。
而PSM、PM和DM采用角色设置来进行功能限制。根据不同用户角色所执行任务不同,为用户配置不同的权限。企业可以对拥有某角色的人设置权限,是否有权进入该模块进行管理,而没有授权的角色是无权进行操作的。这是一种静态权限,一般在PDM使用之初进行该设置。企业的部门、人员等信息不是一成不变的,随着人员的调动,系统管理人员可以重新设置、添加角色信息。
如图5所示,系统为用户分配角色,角色与权限联系。例如,如果某角色拥有PSM权限,该用户即可在PSM模块中对产品结构树进行操作,如果没有该权限。
该模块菜单将灰显,无法实现操作。采用动态权限与静态权限结合的混合型方式实现对产品结构树权限的管理,可以满足中小企业的需求。
图5 用户、角色与权限
2.5 树节点状态显示
在产品结构树的配置过程中经常遇到这样的问题,节点的设计等工作是否完成、该节点是部件还是零件等状态要通过信息查询来完成,有时产品结构过于复杂,零部件过多,这样的查询结果不直观。特别是零部件过多时查询时间比较长,我们可以通过设置节点状态来解决这个问题。常用的解决方法有两种:
(1)节点关联位图区分。为节点关联不同位图是区分节点状态常用的一种方法,该方法实现程序较为简单,只需为不同状态的节点关联不同位图即可,如图6(a)所示。 (2)节点文字颜色区分。利用节点的颜色来区分节点状态效果更为直观,但实现程序略为复杂,需要对树控件进行重画,如图6(b)所示。
图6 节点 (a)关联位图区分 (b)文字颜色区分
两种方法也可以同时使用,可以产生更多的组合,显示更多不同的状态。通过直接显示节点的不同状态更加直观地区分零部件的状态,并且通过直接显示节点状态节省了查询时间,提高了系统效率。
3 结论
产品结构树是企业信息管理系统常用的一种工具,为用户提供了一种可视化的树形结构。提供了基于产品全局结构的图形浏览功能。
本文针对开发PDM系统过程中遇到的一些有关产品结构树的问题作了研究.针对每个问题提出了我们的实现方法,有效地解决了PDM产品结构树生成和操作过程中遇到问题。
参考文献:
[1] 张炜,邓世祥,等.基于产品结构树多视图的企业应用集成研究[J].武汉理工大学学报(信息与管理工程版),2006,1.
[2] 李天盟,曹宝香,等.PDM产品结构树的一种权限管理方法[J].信息技术与信息化,2005,5.
[3] 洪小丽,张国忠.PDM权限管理的设计与实现[J].机械制造与研究,2007,36