Пример использования 9. Генерирование дочерней структуры путем пропуска детали на основе двух атрибутов
Обратите внимание, что в преобразователе вед. материалов присутствует следующая структура:
• Связь эквивалентности существует между Upstream Parent Part (Design) и Downstream Parent Part (Manufacturing).
• Детали Part C1 (Design), Part C4 (Design), Part C5 (Design), Part C6 (Design) и Part C7 (Design) имеют атрибут Attribute1 с значением true.
| Attribute1 является атрибутом логического типа. В Windchill значениями этого атрибута являются Yes и No. true и false являются синонимами для Yes и No соответственно. |
• Все детали в структуре имеют тип детали wt.part.WTPart.
Чтобы создать дочернюю структуру путем пропуска детали на основе двух атрибутов, можно указать правила преобразования и реструктурирования, используя файл правил или файл свойств.
Использование файла правил
{
"transformRules": [
{
"sourceType": "wt.part.WTPart",
"newAttributeMappings": [
[
"source.part.Attribute1:true",
"target.part.CustomAttribute1:String1"
]
],
"doAndValidationForAttr": "true",
"targetType": "wt.part.WTPart",
"transformOption": "newPart",
"skipAttributes": [
"source:buy",
"Attribute2:true"
]
}
]
}
Использование файла свойств
1. Откройте файл associativity.properties.xconf в папке Windchill/codebase/com/ptc/core/foundation/associativity.
2. Добавьте следующие правила реструктуризации в файл Windchill/codebase/com/ptc/core/foundation/associativity:
<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=newPart"/>
<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=Attribute1:true:CustomAttribute1:String1"/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" value="skipAttribute.source=buy"/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" value="skipAttribute.Attribute2=true"/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" value="doAndValidationForAttr=true"/>
После инициирования действия

с выбранной деталью в родительской структуре система Windchill проходит по структуре ниже выбранной детали. Эта конфигурация обеспечивает следующее:
• Если система Windchill находит деталь в родительской структуре с атрибутом детали Attribute1 с заданным значением true, она преобразуется в дочерней структуре под деталью, у которой атрибут CustomAttribute1 имеет значение String1. Она преобразуется как новая деталь.
• Если система Windchill обнаруживает в родительской структуре деталь с атрибутом детали Attribute2, имеющим значение true, а атрибуту Source задано значение buy, деталь пропускается и не добавляется в дочернюю структуру. Однако будет выполнен проход по структуре под обнаруженной деталью.
В преобразователе вед. материалов появится следующая структура:
• Part C2 (Design) пропускается, поскольку удовлетворяет указанным критериям:
◦ <AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" value="skipAttribute.source=buy"/>
◦ <AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" value="skipAttribute.Attribute2=true"/>
◦ <AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" value="doAndValidationForAttr=true"/>
Однако система выполняет обход структуры под этой деталью.
• Для объектов Part C1 (Design), Part C4 (Design), Part C5 (Design), Part C6 (Design) и Part C7 (Design) существует атрибут детали Attribute1 с заданным значением true. Поэтому они добавляются как новая деталь под Part T1 (Manufacturing). Part T1 (Manufacturing)имеет атрибут детали CustomAttribute1 со значением String1.
• Детали под Part T2 (Manufacturing) не добавляются. Это обусловлено тем, что для атрибута детали CustomAttribute1 задано значение String2.