用例 14:基于部件类型生成下游结构
假设 BOM 变换器中存在以下结构:
• 下游结构不存在。
• 上游结构中的部件属于 WTPart 的不同子类型。
• PartSubType1、PartSubType2、PartSubType3 和 PartSubType4 是 WTPart 的子类型。
要基于部件类型生成下游结构,可以使用规则文件或特性文件指定变换和重构规则。
使用规则文件
在文本文件中,以 JSON 格式添加以下规则:
{
"transformRules": [
{
"sourceType": "wt.part.WTPart",
"transformOption": "newBranch"
},
{
"sourceType": "org.rnd.PartSubType2",
"transformOption": "addSame"
},
{
"sourceType": "org.rnd.PartSubType4",
"doNotTraverse":"true",
"doNotTransform":"true"
}
]
}
使用特性文件
1. 访问位于 Windchill/codebase/com/ptc/core/foundation/associativity 的 associativity.properties.xconf 文件。
2. 添加以下重构规则:
<Property name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart.rule1" multivalued="," default=""/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart.rule1" value="transformOption=newBranch"/>
<Property name="com.ptc.windchill.associativity.reconciliation.addusage.org.rnd.PartSubType2.rule1" multivalued="," default=""/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.org.rnd.PartSubType2.rule1" value="transformOption=addSame"/>。
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.org.rnd.PartSubType4.rule1" value="doNotTransform=true"/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.org.rnd.PartSubType4.rule1" value="doNotTraverse=true"/>
执行“生成下游结构”操作后,BOM 变换器中会显示以下结构:
根据规则文件或特性文件中指定的条件,以下列方式生成下游结构:
• 类型为 WTPart 的 SubType1_Assembly (Manufacturing)、PartSubType3_Assm1 (Manufacturing)、PartSubType3_Assm2 (Manufacturing) 和 SubAssembly1 (Manufacturing) 将添加为新分支。
• 类型为 PartSubType2 的 SubType2_Part1(Design)、SubType2_Part2 (Design)、SubType2_Part3 (Design) 和 SubType2_Part4 (Design) 将按原样添加到相应的部件之下。
• 不会变换和遍历 PartType4 的 SubType4_Assm1 (Design) 和 SubType4_Assm1 (Design)。因此,也不会变换子项部件 SubType2_Part5 (Design)。