3 基于映射表的多BOM一致性维护方法
以上针对不同应用领域,获得了BOM数据的多视图特性, 并且各视图随用户需求、设计、工艺的更改,生产条件的改变而处于不断变化之中,研究多视图之间的映射关系,对于保证BOM之间的数据一致性极为重要。以下是基于离散理论给出的几个映射定义:
定义1 : 设集合{BOM( A) , BOM( B) , f} 是一由BOM( A) 到BOM( B) 的关系,如果对于每个a ∈BOM( A) ,存在唯一b ∈BOM( B) ,使得afb ,则称关系f 是BOM( A) 到BOM( B) 的一个映射关系, 记为f : BOM( A) →BOM( B) , 其中b 称为a 的像, 用f ( a) 表示,而b 称为a 的像源。
定义2 : 设有映射f : BOM( A) →BOM( B) , g :BOM( B) →BOM( C) , 则f 和g 的复合函数是一个BOM( A) →BOM( C) 的映射,记为g ·f 。
定义3 : 设有映射f : BOM( A) →BOM(B) 和h :BOM(A) →BOM( B) , 如果BOM(A) ABOM( A) , 所有a ∈BOM(A) , 有h ( a) = f ( a) , 则称h 是f 在BOM(A) 上的限制, 并称f 是h 在BOM( A) 上的扩充, 记为h = f ∩(BOM(A) ×BOM( B) ) 。
根据注射模各类BOM之间的转换关系,将BOM的映射关系定义为以下几种:
(1) 合成: 像BOM视图的属性和数据由其他若干源视图的属性和数据组合而成, 如CBOM可由MBOM、OBOM、SBOM和BBOM组成,表示为CBOM=MBOM + OBOM + SBOM + BBOM, SBOM 可表示为SBOM= MBOM+ OBOM。
(2) 分解:合成的反操作,源BOM视图的属性和数据可以拆分成其他若干个像视图的属性和数据,如PBOM 可以拆分成MBOM 和OBOM,表示为MBOM= PBOM- OBOM或OBOM= PBOM- MBOM。
(3) 镜像:映射前后源BOM与像BOM的属性与数据没有发生改变,如各BOM关于EBOM的映射就是一个典型例子。
(4) 派生: 像BOM的某些属性数据是依赖源BOM的数据计算得来, 如MBOM中的工艺文件数据就是在EBOM基础上通过工艺决策生成的, PBOM的计划数据又是根据MBOM的工时定额综合生产能力数据计算出的。基于以上分析,各BOM的映射关系如图1 所示。

可以看出, 注射模BOM与其它产品BOM的一个主要区别就在于绝对源BOM是注射件,而不是设计BOM。注射模产品的映射起源于注射件, 模具型腔通过注射件特征映射产生, 接着型腔通过装配关系, 映射出模架, 最后型腔与模具通过组成关系映射出整个产品的EBOM。此外,从图1 可以看出,各BOM之间是一种组合映射关系,根据定义2、3 ,这种组合可以用组合约束函数进行表达。以下给出了一种基于映射表的多BOM数据一致性维护方法,映射表结构如表1 所示。

映射表是一个对称结构, 表中行元素为源视图,列元素为像视图。表1 所反映的映射关系为A →B →C →D , m 为镜像映射, i 为派生映射, d 为分解映射, h 为限制条件。映射表可用1 个矩阵R = ( rij)n ×n 表示, 若A 发生变化, 各BOM视图映射的算法如下:
①置i = 1 ;
②i = i + 1 ;
③i > n ?是, 输出“映射不存在”, 结束; 否, 转④;
④ri = A ?是,转⑤;否,转②;
⑤置j = i ;
⑥j = j + 1 ;
⑦j > n ?是,输出映射结果,结束;否,转⑧;
⑧mh ( A) ∈aij ?是,运行aij ,转⑥;否,转⑥;
从上述算法可以看出, 只要源BOM进行了修改, 相应所有的像BOM也都进行了相应的修正, 从而自动完成了数据一致性的维护。