高级自定义 > 业务逻辑自定义 > 自定义 MPMLink > 配置和自定义自动 BOM 变换 > 解决方案
  
解决方案
使用预设配置和自定义挂接来实现您的逻辑。
必备知识
要执行此任务,需要了解以下内容:
基本 MPMLink 和 BOM 结构
涉及 Java 的基本开发
资源束文件自定义的管理
Windchill xconfmanager 概念
解决方案元素
用于处理模板流的主类的预设配置位于 <WT_HOME>\codebase\com\ptc\windchill\mpml\xconfs\mpmlink.service.properties.xconf 文件中。
配置如下:
<Service context="default"
name="com.ptc.windchill.associativity.reconciliation.resolver.AbstractAddUsageResolver">
<Option cardinality="singleton" requestor="wt.part.WTPart"
serviceClass="com.ptc.windchill.mpml.reconciliation.resolver.MPMLinkAddedUsageDiscrepancyResolver"/>
</Service>
您可以更新配置以包括自定义委派。
<WT_HOME>\codebase\com\ptc\core\foundation\associativity\xconfs\associativity.properties.xconf 文件中提供了预设特性配置。
下面给出的预设特性配置提供了与在最接近的公用对等上下文中相同的方式执行变换的默认行为:
<Property name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" multivalued="," default=""/>
<Property name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPartUsageLink" multivalued="," default=""/>
这些预设特性允许将 WTPart 的任何实例粘贴到下游结构上的任何位置,这意味着不存在约束。
部件使用关系和部件支持这些特性。始终将部件使用关系指定为优先级。仅当部件使用关系有效时,才会考虑部件的配置。如果您不想控制部件使用关系的变换,请保留部件使用关系的预设特性配置,这将使所有使用关系有效。
特性的格式为:<base_prefix>。<upstream_view>。<downstream_view>。<type_internal_name>。在给定表中对特性的键进行了说明:
元素
类型
说明
base_prefix
特性键组件
前缀 com.ptc.windchill.associativity.reconciliation.addusage
为必需项且保持恒定。添加模板配置仅考虑具有此前缀的特性。
upstream_view
特性键组件
视图的内部名称,用于形成对等链接的上游视图上下文。例如:design
此键还需要相应的 downstream_view 配置。键为可选项。
downstream_view
特性键组件
视图的内部名称,用于形成对等链接的下游视图上下文。例如:manufacturing
此键还需要相应的 upstream_view 配置。 键为可选项。
type_internal_name
特性键组件
对变换有效的类型的内部名称。键不应包含层次结构名称。例如:com.ptc.ElectricalPart
此键支持继承。因此,如果为超级类型定义该项,除非明确定义,否则关联的配置适用于子类型。
键为必需项。
下面给出了使用上述键配置特性的示例:
指定类型:com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart
指定具有上游和下游视图的类型:com.ptc.windchill.associativity.reconciliation.addusage.design.manfacturing.wt.part.WTPart
系统支持以相同的优先级顺序读取使用关系及子项的特性。尽管有些特性在某些情况下可能不适用,使用关系及子项仍然支持所有特性。
对于每个特性键,您可以定义 key=value 对的列表。这些对可自定义,并且可以添加其他选项,这些选项将在委派中可用并可使用自定义逻辑进行处理。下表提供了预设的键值对:
元素
类型
说明
transformoption
属性
介绍应如何在下游结构中变换给定类型。支持的默认有效值为 addSamenewBranchnewPart。这些值等同于界面操作“粘贴”“粘贴为新分支”“粘贴为新部件”。例如,transformOption=addSame
如果存在下游结构,则该服务会在内部对 addExisting 选项进行优先处理。如果未指定,则默认值为 addSame
值要区分大小写。
structureoption
特性
描述要针对正在变换的节点的子项执行的操作。您可以传送子项、以递归方式变换子项,或不传送子项。
有效值为 012。例如,structureOption=0。默认值为 0。这些值如下所述:
0:不复制子项。
1:复制子项但不对其进行变换。
2:复制子项并以递归方式对其进行变换。
在某些情况下,值可能不适用。例如,如果 transformOptionaddSame,则 structureOption 不适用。
attribute.<internal_name>
特性
针对用于控制变换有效性的类型指定属性的内部名称。例如,attribute.lineNumber.value=20,attribute.phantom=true。支持的属性类型为全局、本地、别名和计算属性。
这是一个多值特性,允许指定多个属性。这是可选项,如果未提供,则仅对类型进行变换验证。预设的系统会执行字符串比较。
targetType
特性
标识可在其下使用有效上游部件的下游类型。在层次结构中包含给定类型的路径会标记为有效项。您需要将类型的内部名称指定为值,而不是类型的分层名称。例如,targetType=com.ptc.ElectricalPart
这是可选项。如果未指定,则将最接近的公用对等上下文用作默认目标。
targetAttribute.<internal_name>
特性
指定应在其中粘贴或变换上游节点的目标节点。该节点包含前缀 targetAttribute。例如,targetAttribute.lineNumber.value=20,targetAttribute.phantom=true
这是可选项。如果未提供,系统将使用 targetType。该项会在路径层次结构中的第一个匹配实例处停止,并从叶位置导航至根。
doAndValidationForAttr
特性
指定在定义多个属性以与源或目标匹配时,是执行 AND 还是 OR 操作来查找匹配。
默认值为 true。
forceNewDownstreamCreation
特性
指定当下游分支已存在时,是否应创建新的下游分支或部件。例如,在使用 transformOption=newPart 时。
默认值为 false。
continueNavigationForReusedChildren
特性
指定如果作为变换的一部分重用子项并将其转到下游分支,是否要继续导航结构。该项在使用 addSame 操作变换父项时非常有用,但是在结构中,需要将 newBranchnewPart 操作用于节点。这可能会影响性能。
默认值为 false。
useProcessPlanLogicEnabled
特性
指定如果下游结构不存在,则搜索为部件创建的流程计划,并使用与该流程计划中给定的上游节点关联的下游结构。
下面给出了使用上述键配置特性的示例:
<Property name="com.ptc.windchill.associativity.reconciliation.addusage.org.rnd.CustomPart" multivalued="," default=""/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.org.rnd.CustomPart" value="transformOption=newBranch"/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.org.rnd.CustomPart" value="structureOption=0"/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.org.rnd.CustomPart" value="targetType=wt.part.WTPart"/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.org.rnd.CustomPart" value="targetAttribute.phantom=true"/>