Use Case 5: Generate a Downstream Structure With a Specific Structure Not Traversed Based on the Part
Consider that the following structure is present in the BOM Transformer:
An equivalent link exists between the Upstream Parent Part (Design) and Downstream Parent Part (Manufacturing).
All the parts in the structure, except Part C2 (Design), have the part type as wt.part.WTPart.
Part C2 (Design) has the part type as ElectricalPart.
To generate the downstream structure based on structure traversal, you can specify the transformation and restructuring rules using rules file or properties file.
Using Rules File
{
"transformRules": [
{
"sourceType": "wt.part.WTPart",
"newAttributeMappings": [
[
"source.usage.AttributeNum1:String1",
"target.part.AttributeNum2:String2"
]
],
"targetType": "wt.part.WTPart",
"transformOption": "newPart"
},
{
"sourceType": "com.ptc.ElectricalPart",
"doNotTraverse": "true"
},
]
}
Using Properties File
1. Access the associativity.properties.xconf file located in Windchill/codebase/com/ptc/core/foundation/associativity.
2. Add the following restructuring rules:
<Property name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" multivalued="," default=""/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" value="transformOption=newBranch"/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" value="targetType=wt.part.WTPart"/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" value="attributeMapping.rule1=AttributeNum1:String1:AttributeNum2:String2"/>
* 
In case of properties that involve mapping, the mapping attributes specified for upstream and downstream must not be the same.
<Property name="com.ptc.windchill.associativity.reconciliation.addusage.com.ptc.ElectricalPart" multivalued="," default=""/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.com.ptc.ElectricalPart" value="transformOption=newBranch"/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.com.ptc.ElectricalPart" value="doNotTraverse=true"/>
After you initiate the action on the selected part in the upstream, the Windchill system traverses the structure below the selected part. This configuration ensures that :
If the Windchill system detects a part with the part usage attribute AttributeNum1 set to String1, then the detected part is added in the downstream as a new branch, under the part whose part usage type is wt.part.WTPart and the part usage attribute AttributeNum2 is set to String2.
If the Windchill system detects a part with the part usage type as ElectricalPart, then it is added as a new branch. However, the system does not traverse the structure below the detected part.
In this case, no property related to the mapping of an ElectricalPart is added. ElectricalPart is a subtype of wt.part.WTPart. ElectricalPart inherits the GDS-mapping property from the wt.part.WTPart.
The following structure appears in the BOM Transformer:
No property related to the mapping of an ElectricalPart is added. Still, Part C2 (Manufacturing) is added as a new branch under a downstream part with the part usage type as wt.part.WTPart and the part usage attribute AttributeNum2 set to String2. This is because, ElectricalPart is a subtype of wt.part.WTPart. ElectricalPart inherits the GDS-mapping property from the wt.part.WTPart. GDS-mapping property is defined for wt.part.WTPart.
According to the criteria set in the <AddToPropertyname="com.ptc.windchill.associativity.reconciliation.addusage.com.ptc.ElectricalPart" value="doNotTraverse=true"/>, the structure under Part C2 (Design) is not transformed, as Part C2 (Design) is an ElectricalPart.
Was this helpful?