部件关系
Px 部件关系数据通过 relatedParts.xml 文件进行处理,其中取代、交叉引用和备用等关系类型将以 Relation 标记上的 role 属性以及对应源和目标属性或子项进行标识。对于 AND 分组,Px 将使用 Relation 中包含的 Source 和 Target 标记。受支持的关系包括一对一、一对多和多对一。此外,还支持 AND 和 OR 关系。
Relation 中包含的 Metadata 标记中提供了部件关系的适用性。默认情况下,Metadata 支持 quantity、date 和 description 属性。如果要变换附加元数据,则需要在自定义 XSL 文件中添加新属性。
要计算前进和后退取代链,需要使用定位 Part Group 并以前进或后退方向相应地进行遍历。如果发现部件的取代组,这意味着正在计算单个部件的链。
relatedParts.xml 文件的根元素为 Relationships。该文件包含以下明显标记:
• Relation 元素
◦ role 属性
◦ src 属性
◦ tgt 属性
• Target 元素
• Source 元素
• Objectref 元素
◦ href 属性
部件关系也可从第三方 SAP 或通过 CSV 文件加载。对于这些输入,Group 元素的 groupID 属性应为对象编号和组织名称的组合。显示的此 groupID 属性用于在部件之间创建定位和弧。
下面是一个部件关系示例。
<Relation id="wt.supersede.SupersedeGroup:6121937"
quantity="2"
role="supersession"
src="x-wc://f03a22d72215f49d:wt.part.WTPartMaster:BRPDL003B"
target="x-wc://52d4a5903feea56:wt.part.WTPartMaster:BRPDL003F"/>
quantity 属性用于定义目标部件的数量。
<Property token="ModifyDate">
<Value>2016-03-29 18:30:00.0</Value>
</Property>
定义部件关系的日期值。
<Property token="Description">
<Value>Case2: 1:N,RC001A superseded by RC Supersede B and RC Supersede C
</Value>
</Property>
定义部件关系的说明值。
部件关系的变换步骤
初始化变换进程期间,将在工作区中生成 IMAN 注册表文件。IMANConfig.xml 文件包含部件关系组的以下条目:
<Type name="GROUP">
<IdentifyingAttributes>
<Property name="uri"/>
</IdentifyingAttributes>
<OtherAttributes>
<Property name="objNumber"/>
<Property name="orgName"/>
</OtherAttributes>
</Type>
变换步骤如下所示:
1. 变换部件关系时,会将所有部件注册表传递至 IMAN。
2. IMAN 将返回两个文件 directRelation.xml (与部件注册表关联的所有关系) 和 IndirectRelation.xml (以 DirectRelation.xml 标识的组的组特定关系)。
3. 变换:
a. 添加束中定义的当前关系集中包含的对象。
b. 通过比较 DirectRelation.xml 和 relatedParts.xml,排除组成员关系,确定要删除的对象。
c. 处理 DirectRelation.xml 中的组成员关系:
对于非公共组成员 (DirectRelation.xml 中包含但 relatedParts.xml 中不含的组),从 DirectRelation.xml 找到组特定注册表 ID,并标记要删除的组。
对于 DirectRelation.xml 和 relatedParts.xml 中的公共组成员关系,从 DirectRelation.xml 和 relatedParts.xml 找到组特定注册表 ID,然后在 Indirect.xml 中进行查找以排除 PR 不含的其他关系。
d. 将要添加或删除的关系发送到 IMAN 和注册表。
e. 将要删除的组发送到 IMAN。
4. IMAN 将删除标识的关系和组。
数据筛选
支持在部件关系上筛选信息。下面是部件关系元素上的数据筛选定义:
<xsl:call-template name="set-calc-applic">
<xsl:with-param name="logicalExpr1" select="apexLE"/>
<xsl:with-param name="logicalExpr2" select="apexSE"/>
<xsl:with-param name="logicalExpr3" select="apexAC"/>
<xsl:with-param name="docTypeValue"/>
</xsl:call-template>
此外,还支持部件关系 anchor 和 arc 筛选。下面是部件关系 anchor 和 arc 的数据筛选定义:
<xsl:call-template name="calc-applic-arc">
<xsl:with-param name="applicRoot" select="apexLE"/>
<xsl:with-param name="docTypeValue"/>
<xsl:with-param name="effRoot" select="apexSE"/>
<xsl:with-param name="arcFiltering" select="'true'"/>
</xsl:call-template>