用例 15:基于部件属性 (相同类型、多个配置) 生成下游结构
假设 BOM 变换器中存在以下结构:
• 下游结构不存在。
• 上游结构中的部件属于 WTPart 的不同子类型。
• PartSubType1、PartSubType2 和 PartSubType3 是 WTPart 的子类型。
PartSubType3_1 是 PartSubType3 的子类型。
要根据具有相同类型和多个配置的部件属性生成下游结构,可以使用规则文件或特性文件指定变换和重构规则。
使用规则文件
在文本文件中,以 JSON 格式添加以下规则:
{
"transformRules": [
{
"sourceType": "wt.part.WTPart",
"sourceAttributes": ["AUA=yes"],
"targetType": "wt.part.WTPart",
"transformOption": "addSame"
},
{
"sourceType": "wt.part.WTPart",
"targetType": "wt.part.WTPart",
"transformOption": "newBranch"
},
{
"sourceType": "org.rnd.PartSubType3",
"doNotTransform": "true"
},
{
"sourceType": "org.rnd.PartSubType2",
"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="attribute.AUA=yes"/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart.rule1" value="transformOption=addSame"/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart.rule1" value="targetType=wt.part.WTPart"/>
<Property name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart.rule2" multivalued="," default=""/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart.rule2" value="transformOption=newBranch"/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart.rule2" value="targetType=wt.part.WTPart"/>
<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="doNotTransform=true"/>
<Property name="com.ptc.windchill.associativity.reconciliation.addusage.org.rnd.PartSubType3.rule1" multivalued="," default=""/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.org.rnd.PartSubType3.rule1" value="doNotTransform=true"/>
执行“生成下游结构”操作后,BOM 变换器中会显示以下结构:
根据规则文件或特性文件中指定的条件,以下列方式生成下游结构:
• Part1 (Design)、Part2 (Design)、Part3 (Design) 和 Part4 (Design) 的类型均为 WTPart,其属性 AUA 均为 Yes。这些部件将按原样添加到相应的部件之下。
• 对于类型为 WTPart 的 SubType1_Assembly (Design)、PartType_Assembly (Design) 和 Sub_Assembly1 (Design),其属性 AUA 不是 Yes。因此,这些部件将作为新分支添加到相应的部件之下。
• 类型为 PartSubType3 的 PartSubType3_Assm1(Design) 以及类型为 PartSubType2 的 PartSubType2_Assembly1 (Design) 和 PartSubType2_Assembly2 (Design) 不会变换。
• PartSubType3_1_Assembly1 也不会变换,因为其类型 PartSubType3_1 是 PartSubType3 的子类型。