一种基于PDM系统数据库的产品数据筛选方法与流程

文档序号:12550713阅读:376来源:国知局
本发明属于大型复杂产品协同研制产品数据交换
技术领域
,涉及类似直升机等大型复杂产品数据交换环境下的产品数据筛选应用过程,也可广泛适用于其他大型复杂产品(如航天、船舶、兵器、汽车等)的产品数据筛选。
背景技术
:大型复杂产品的研制是一个系统性工程,在其设计制造过程中往往需要多个企业单位协同完成。在协同研制模式下,产品数据交换是实现跨地域的各协同企业间设计制造数据的共享和集成的重要技术。目前,PDM系统被广泛应用于各制造企业,实现对产品数据的管理。该系统以产品为中心,将设计制造协同过程中涉及到设计、工艺、工装、质量等多个环节、多种类型的数据集成统一管理。由于PDM系统中数据类型的多样性和数据结构的复杂性,使得产品数据交换过程中对产品数据的筛选成为关键技术,同时对产品数据的筛选在很大程度上也能够保护企业的知识产权。现有的产品数据筛选方法为“抽取式”筛选法,主要是基于定义数据抽取节点的方式实现,该方式通过利用PDM系统现有的接口功能或扩展开发,实现对产品结构树中单个数据节点的抽取,通过有选择的定义数据抽取节点实现对产品数据的筛选。基于节点定义数据包的筛选方式,势必造成发往某单位的数据中会含有其它单位的数据,而且存在产品结构树不完整,产品配置信息丢失的现象,无法满足协同研制环境下对共享数据正确性和有效性的要求。本发明提出的产品数据筛选方法为基于整体数据集的“清除式”筛选法,对数据的清除基于PDM系统数据库实现。面对大型的PDM系统软件,供应商往 往只提供实施顾问支持,不提供数据字典给用户,使得对大型PDM系统复杂的数据库结构掌握不足。考虑到在PDM系统中,数据对象之间的关联关系不涉及具体数据对象,而且在PDM系统应用层面只要关联的数据对象被清除,其关联关系则随之不体现。故清除时只处理与要清除的具体数据对象相关的数据库表记录,从而实现对要“清除”的数据量的最优化。使用该方法筛选后的产品数据,包含完整的产品结构、产品配置信息和工程设计有效性信息,产品数据的正确性和有效性也得到了保证,同时也能满足实际工程研制环境下的产品数据筛选需求。技术实现要素:本发明提出了一种基于PDM系统数据库的产品数据筛选方法,目的是为了解决异地协同研制单位间产品数据交换过程中对产品数据的筛选问题,该方法弥补了现有产品数据筛选方式存在的不足,该方法脱离传统的“抽取式”方法,采用基于PDM系统整个数据库的“清除式”筛选法,且只清除与具体数据对象相关的数据库表记录,大大减少了清除数据量。另外,该筛选方法能够按具体业务需求对筛选条件进行定制,最大程度地满足了多样化业务环境下企业间协同研制需求与知识产权保护的要求,同时保证了协同研制环境中共享数据的正确性和有效性。本发明提出了一种基于PDM系统数据库的产品数据筛选方法,本方法包括以下步骤:1)准备产品数据筛选中间机,使中间机环境与正式研制服务器环境一致。2)编写程序,获取PDM系统数据库表信息,及各数据库表之间的关联关系。3)记PDM系统中的每个数据库表为网络节点,数据库表之间的关系为网络 中的边,建立数据库表关系网络模型。在该网络模型中,节点包含的信息有数据库表名、主键名称、表中记录的条数和所有字段名称的集合。边表示两个数据库表存在关联关系,同时包含关联的两个字段名称。4)在网络模型上,标记记录产品研制过程中不同类型数据对象ID的数据表。需要标记的数据对象类型包括产品类、产品、组件、零部件和文档。不同类型的数据对象ID记录在不同的数据库表中,在对数据进行筛选时主要根据数据对象ID,从应用层面的数据对象定位到数据库层面。5)根据用户的需求,配置数据筛选参数,包括产品ID、发放单位代码和文档类型等。6)依据筛选参数获取要保留的所有数据对象列表。7)建立数据库表,记录要保留的数据对象的主要信息,如ID,类型和发放单位等8)编写程序,将步骤4)中标记的数据库表与步骤7)中建立的数据库表进行对比,获取所有要清除的数据对象。9)编写数据对象清除类,利用步骤3)构建的网络模型,从步骤7)中标记的节点出发,遍历网络模型中的数据库表,清除不需保留的数据对象在数据库表中的记录。本发明提供了一种基于PDM系统数据库的产品数据筛选方法,该方法脱离传统的PDM系统“抽取式”筛选法,采用基于整个数据库的“清除式”筛选法,且只清除与具体数据对象相关的数据库表记录,使数据清除简化。而且,该方法基于网络建模技术实现对产品数据的按需筛选,筛选粒度可通过筛选参数配置进行控制。本发明提出的产品数据筛选方法在保证了产品结构树、产品配置信 息、产品数据正确性和有效性的基础上,有效地满足了协同研制企业间数据交换应用过程中的产品数据筛选要求,使需要传输的数据量最优化,同时也保护了企业的知识产权。1)大型软件PDM系统数据库结构分析及数据库表关系网络建模技术;2)基于数据库表关系网络模型的数据对象清除技术;3)产品数据筛选的条件和粒度可通过配置控制。粒度稍大的,可按照产品,发放单位的进行数据筛选;粒度小的能够对无效的叠代,如模型文档设计过程中存储的小版本进行清除,对成品设计件下的文档按后缀名进行筛选。附图说明图1为基于PDM系统数据库的数据筛选过程。具体实施方式1)使用数据库备份命令对研制环境下的PDM系统数据库进行备份。2)复制研制环境下的PDM系统电子仓库至中间服务器。3)在中间服务器上构建与研制环境一致的PDM系统环境,使用数据库恢复命令将1)中的数据库备份在中间服务器恢复。4)基于JDBC技术编写数据库表信息类,获取数据库表中记录数大于0的数据库表列表、各数据库表的记录条数、主键以及所有字段名称。5)基于关键字段对比的方法,编写数据库表关系类,获取各数据库表之间的关联关系,以及发生关联的字段名称。6)记数据库表为节点,数据库表之间的关系为边,编写数据库表关系模型类,建立数据库表关系网络模型。7)在网络模型中为每个节点设置标志位,若该节点表示的数据库表记录数 据对象的ID则标志位值为true,否则为false,对应的类型标志位的值为数据对象类型名。8)配置的数据筛选参数。9)编写数据对象列表类,从产品结构树的根节点出发,基于步骤6)构建的网络模型,对产品规格、组件、构型配置项(ICI、VCI)、零部件实例、版本和文档对象进行遍历,获取所有需要保留的数据对象列表。10)使用数据库命令,在PDM系统数据库中新建数据库表。11)记录步骤9)中获取的要保留的数据对象信息。需要记录的数据对象类型包括产品结构树构型管理项(如ICI)、组件、产品规格、零部件和文档。12)基于JDBC技术,结合SQL命令,编写数据对象对比类,将数据筛选表与网络模型中标记为true的数据库表进行比对,获取需要清除的各数据对象列表。13)基于JDBC技术编写数据库表记录获取类。利用步骤6)中构建的网络模型,对不需要保留的数据对象,从网络模型中标志位为true的节点出发,获取与要清除的数据对象相关的数据库表记录。14)基于JDBC技术编写数据库记录清除类,实现对数据表记录的批量清除。实施例1:以某直升机型号协同研制环境下的产品数据筛选为例,某直升机型号的协同研制主要涉及跨地域的一所三厂,为了实现设计与设计、设计与制造单位之间的数据共享,使设计与制造工作并行开展,缩短产品研制周期,需要进行产品数据的交换。在某型直升机研制过程中,采用了达索提供的PDM系统ENOVIAVPMV5R18(以下简称VPM)进行产品数据的管理。然而由于VPM系统中集成了与工程设计相关的所有数据,对产品数据的筛选提出了一系列需求,如①只交换指定 型号的产品数据,其他型号的产品数据均要清除;②只交换产品结构树,不交换组件GCO;③产品结构树(包括ICI、VCI、GCI)均交换,其下挂的文档仅交换构型清单和ECO文档,其他数据均不保留;④VCI上定义“发放单位代码”属性,只有该属性值中有指定的发放单位的VCI才进行交换;⑤VCI下所有结构信息均交换,其下挂的设计件、标准件、材料、假件以及对应的文档均交换,成品只交换CATDrawing、CATPart、cgr格式的数据;⑥更改指令的状态为已批准,且发放单位中包含指定的发放单位代码的,且属于指定产品的才能交换。⑦所有文件夹不进行交换;⑧除结构树上需交换的零部件外,其它均不交换等。按照本发明方法,开发了满足上述需求的产品数据筛选工具,该工具已应用于某型号的产品数据筛选中,现以该场景为例说明该方法的实施过程:1)使用db2dbbackup命令对正式研制环境中VPM系统的数据库进行备份。2)采用拷贝文件夹的方式,将正式研制环境下的VPM系统电子仓库备份至中间服务器上。3)使用db2restore命令将步骤2)中的数据库备份恢复至中间服务器的数据库vpmdb中。4)基于JAVA编程,结合JDBC技术,实现了数据库表信息类。获取到VPM系统数据库表共677个,有数据记录的279个,各数据库表的主键由字段OID唯一标识,且各数据库表包含的字段个数和名称各不相同。如VPMPARTMASTER表包含81个字段,CHDPARTVERSION表包含103个字段等。5)基于JAVA实现数据库表关系类。通过将主键OID的值与其他数据库表各字段的值进行比对,找出数据库表相互之间的关联关系,及关联字段。如数据库表VPMPARTMASTER与VPMASSEMBLYRE0001,关联字段为OID和VPM;数据库表 VPMPARTMASTER与CHDPARTVERSION,关联字段为OID和VMASTER;数据库表VPMPARTMASTER与VPMITEMINSTANCE,关联字段为OID和VPV。6)基于JAVA实现数据库表关系模型类,构建数据库表关系网络模型。网络模型中,节点包含的信息有数据库表名、主键名称、表中记录的条数和所有字段名称的集合。边表示两个数据库表存在关联关系,同时包含关联的两个字段名称。7)对网络模型中节点的标志位RBOFlag和RBOType赋值。如产品标识记录在VPMPRODUCTROO0001表中的VID字段,产品规格标识记录在VPMPRODUCTSPE0001表中的VSPECID字段,零部件实例标识记录在VPMITEMINSTANCE表中的VINSTANCEID字段,零部件标识记录在VPMPARTMASTER中的VID字段,文档标识记录在CHDDOCUMENTMASTER表中的VID字段等,则对应网络节点名为VPMPRODUCTROO0001的标志位RBOFlag=TRUE,RBOType=PRODUCT;节点名为VPMPRODUCTSPE0001的标志位RBOFlag=TRUE,RBOType=PRODUCTSPEC;节点名为VPMITEMINSTANCE的标志位RBOFlag=TRUE,RBOType=INSTANCE;节点名为VPMPARTMASTER的标志位RBOFlag=TRUE,RBOType=PART;节点名为CHDDOCUMENTMASTER的标志位RBOFlag=TRUE,RBOType=DOC;8)根据上述①至⑧的数据筛选需求,配置筛选参数:ProductClass、Product、ToDept、Tree、TreeDoc、PartType、PartDoc、EQUPartDoc、COType、Status。9)根据配置的筛选参数,遍历步骤6)构建的网络模型,获取所有需要保留的产品类、产品、产品规格、组件、产品结构树(包括ICI、VCI、GCI)、零部件实例、零部件版本、文档等数据对象的ID、名称、发放单位和类型信息。10)使用db2creattable命令,在VPM系统数据库中新建五个数据库表ZTREE(PRODUCTID,VCIID,VCIVERSION,PARTID,PARTVERSION,PARTDOMAIN,DEPTID),ZCOMP(PRODUCTID,COMPID,COMPNAME,PARENTCOMPID,HASINS),ZCAT(PRODUCTID,CATID、CATDOMAIN),ZPART(PARTID,PARTVERSION,PARTDOMAIN,DEPTID),ZDOC(PRODUCTID,VCIID,VCIVERSION,PARTID,PARTVERSION,DOCID,DOCVERSION,URL,FILESIZE,ISCGR,DEPTID)。11)利用JDBC技术实现其中将要保留的产品类、产品、产品规格的信息插入到ZTREE表中,产品规格信息插入到ZCAT表中,组件信息插入到ZCOMP表中,零部件实例、零部件版本信息插入到ZPART表中,文档信息插入到ZDOC表中。12)使用JAVA语言编程实现数据对象对比类。将上述五个数据库表中的对象与网络模型中RBOFlag=TRUE的节点对应的数据库表进行比对,不在上述五个数据库表中的数据对象即为在数据筛选时要清除的数据对象。如数据库表VPMPARTMASTER中通过VID标识的零部件对象,若不在ZPART表中,则该零部件在筛选时要清除。13)使用JAVA语言编程实现数据库表记录获取类。实现基于步骤6)中构建的网络模型,获取与不需要保留的数据对象相关的所有数据库表记录。如对零部件对象VID=XXX进行清除,则从网络模型中标志位RBOFlag=TRUE和RBOType=PART的节点出发(VPMPARTMASTER),遍历整个网络获取与VPMPARTMASTER存在关联关系的数据库表VPMASSEMBLYRE0001,CHDPARTVERSION,VPMITEMINSTANCE中的数据库记录。14)最后JDBC技术与JAVA、SQL编程技术相结合实现数据库记录清除类。对步骤13)中获取的数据库表记录进行批量清除。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1