在 BOM 变换器中合并筛选条件与智能集合
名称和分类最佳做法
在 BOM 变换器中合并筛选条件与智能集合
目标
提供在 MASPB 中合并筛选器与智能集合的自定义指南
必备知识
要应用此最佳做法,需要了解以下内容:
• MPMLink 和 BOM 结构的基础知识
• 涉及 Java 的基本开发
• *-actions.xml、*-actionmodels.xml 和 *.xconf 文件自定义的管理
解决方案元素
打开应用了现有筛选器 (例如 saved NavigationCriteria) 的智能集合。现在,在智能集合中应用新的或自定义筛选器,例如,client NavigationCriteria。要将新筛选器条件与现有筛选器条件合并,即合并 saved NavigationCriteria 和 client NavigationCriteria,请执行以下过程:
1. 编写一个用于扩展现有 com.ptc.windchill.associativity.delegate.OpenAMInStructureBrowserDelegate 委派的新自定义委派。
例如,CustomOpenAMInStructureBrowserDelegate。
2. 覆盖以下方法并添加自定义代码:
public NavigationCriteria mergeNC(NavigationCriteria savedNc, NavigationCriteria clientNc)throws WTException;
示例代码格式如下:
import com.ptc.windchill.associativity.delegate.OpenAMInStructureBrowserDelegate;
import wt.filter.NavigationCriteria;
import wt.util.WTException;
public class CustomOpenAMInStructureBrowserDelegate
extends OpenAMInStructureBrowserDelegate{
@Override
public NavigationCriteria mergeNC(NavigationCriteria savedNc, NavigationCriteria clientNc) throws WTException {
// customization code to put filters or configuration specification from savedNc to clienNC
return clientNc;
}
}
3. 更新新类的 xconf 条目。例如,CustomOpenAMInStructureBrowserDelegate。
4. 移除 com/ptc/windchill/associativity/xconfs/associativity.service.properties.xconf 文件中的 OpenAMInStructureBrowserDelegate 委派条目。
示例代码格式如下:
<Service context="default" name="com.ptc.windchill.associativity.delegate.OpenInStructureBrowserDelegate">
<Option cardinality="singleton" requestor="wt.facade.persistedcollection.PersistedCollectionHolder" serviceClass="com.ptc.windchill.associativity.delegate.OpenMCInStructureBrowserDelegate"/>
<Option cardinality="singleton" requestor="wt.fc.util.PersistedProperty" serviceClass="com.ptc.windchill.baseclient.server.delegate.OpenSearchResultInStructureBrowserDelegate"/>
<Option cardinality="singleton" requestor="wt.associativity.accountability.AccountabilityMap" serviceClass="com.custom.delegate.CustomOpenAMInStructureBrowserDelegate"/>
</Service>