高级自定义 > 业务逻辑自定义 > 包自定义 > 选择文件 - 前向复制排除决策
  
选择文件 - 前向复制排除决策
您可以定义一些规则来协调用户针对包成熟度所采取的排除决策。
背景
由于已定义一部分默认实现规则来协调用户对包成熟度 (如包内容的更新) 所采取的决策,可前向复制显式用户决策内容的“另存为”或“修订”操作存在于目标包中。可对默认实现进行自定义,以扩展符合相应业务需求的行为。提供的默认实现会将用户显式决策从旧包的最新版本复制到更新包中的新版本。
范围/适用性/假设
应该由负责在 Windchill 中配置某些对象信息页面的开发人员或定制者应用此信息。
假设您基本了解有关于包和选择文件功能的基础知识。
预期结果
预期结果取决于根据相应业务需求设定的实现。 
解决方案
将写入自定义 java 类,这将覆盖包更新显式决策前向复制的默认行为。
必备知识
要获得预期结果,需要了解以下内容:
关于包和选择文件的基础知识。
Windchill 中对象版本化的基础知识。
Windchill 中特性文件的管理,包括使用 xconfmanager。
解决方案元素
元素
类型
说明
ContentControlDecisionVersionDelegate
Java 接口
此接口需要由新的自定义类来实现
AbstractContentControlDecisionVersionDelegate
抽象类
这是具有 ContentControlLink 比较运算符的抽象类
contentcontrol-service.properties.xconf
XCONF 文件
此选项用于配置新的自定义类
过程 - 创建用于前向复制显式决策的新自定义类
1. 创建新的自定义 java 类 <自定义类>,用于实现 "ContentControlDecisionVersionDelegate" 并为 "copyExclusionInfoForRevision" API 提供自定义实现。
2. 上述 API 的实现应遵循相应的业务需求。
3. 检查 contentcontrol-service.properties.xconf 文件的条目:
<!-- ContentControlDecisionVersionDelegate -->
<Service name="com.ptc.windchill.contentcontrol.delegates.
ContentControlDecisionVersionDelegate">
<Option serviceClass="com.ptc.windchill.contentcontrol.delegates.
DefaultContentControlDecisionVersionDelegate"
requestor="java.lang.Object"
selector="null"
cardinality="singleton"/>
</Service>
使用新自定义实现类的完全限定名称更改以下 serviceClass 属性。
<Service name="com.ptc.windchill.contentcontrol.delegates.
ContentControlDecisionVersionDelegate">
<Option serviceClass="<custom class>"
requestor="java.lang.Object"
selector="null"
cardinality="singleton"/>
</Service>
4. 运行 xconfmanager -p 以将上述更改传播至 service.properties
5. 重新启动方法服务器以使更改生效。
自定义点
ContentControlDecisionVersionDelegate 接口是单一 API
void opyExclusionInfoForRevision(WTKeyedMap masterToOldCClMap,
WTKeyedMap masterToNewCClMap) throws WTPropertyVetoException ;
各参数如下:
masterToOldCClMap : WTKeyedMap;:此映射包含作为键的主对象和作为值的旧 ContentControlLinks 列表
masterToNewCClMap : WTKeyedMap;:此映射包含作为键的主对象和作为值的新 ContentControlLinks 列表
通过获取相同主数据的新旧 ContentControlLinks 列表,可将排除信息从旧链接复制到新链接。新 ContentControlLinks 列表不包含在旧链接中存在相同版本的 ContentControlLinks。为此,默认情况下将从旧链接复制排除信息。只有先前不存在的版本才会添加到列表中。
示例代码
此功能的默认实现在 com.ptc.windchill.contentcontrol.delegates 包中作为 DefaultContentControlDecisionVersionDelegate 提供。