数据管理功能 > 管理部件结构 > Windchill 选项与变型功能 > 用选项筛选器筛选可配置产品结构 > 标准和备用选项筛选器 > 自定义选项筛选委派的筛选行为 > 配置标准和备用行为
  
配置标准和备用行为
可以通过为每种方法提供配置文件的方式来自定义“标准和备用选项筛选器”的行为。利用配置文件指定模块变型的筛选条件时,需考虑以下条件:
指定的筛选类型:
标准
备用
父项/子项类型组合
分配表达式的位置:
在项上
在使用关系链接上
在具体值上
已分配的表达式的计算结果:
TRUE
FALSE
UNDEFINED
WT_HOME/wt.properties 文件中注册的两个配置文件的特性如下:
ato.filter.strategy.1 - 适用于标准行为
ato.filter.strategy.2 - 适用于备用行为
wt.properties 文件中特性的出厂设置值如下:
ato.filter.strategy.1=$(wt.home)/codebase/com/ptc/windchill/option/filter/StandardFilterStrategy.xml
ato.filter.strategy.2=$(wt.home)/codebase/com/ptc/windchill/option/filter/AlternateFilterStrategy.xml
自定义 XML 解析器
所有“选项”筛选配置文件的根均为 FilterStrategy 元素。其唯一属性是“处理程序”,而“处理程序”的值为用于解析 XML 文件的类的完全限定名,而且它会从 com.ptc.windchill.option.filter 包中生成对象 FilterStrategy 的实例。具体而言,XML 处理程序必须利用已定义的单个方法实现接口 com.ptc.windchill.option.filter.FilterStrategyhandler,并通过 XML 文件的根元素 FilterStrategy 进行解析,如以下示例中所示。
public FilterStretegy loadfilterStrategyHandler(org.w3c.dom.Element e);
此属性使您能够提供用于创建自定义筛选器策略的个性化 XML 格式。但是,在大多数情况下,使用 OOTB XML 格式的标准处理程序 com.ptc.windchill.option.filter.DefaultFilterStrategyHandler 就可以了。标准处理程序的定义为:
com.ptc.windchill.option.filter.DefaultFilterStrategyhandler
标准 XML 配置文件的格式
根元素 FilterStrategyFilterNode (包含对象给定类型的表达式计算策略) 组成。
FilterNode 元素具有下列属性 (借助这些属性可全面说明参与筛选过程的导航单位节点对象):
属性
定义和值
type
可筛选对象或支持对象的类型或类类型。
parentType
可筛选对象的父对象的类型或类类型。
childType
可筛选对象的解析子对象的类型或类类型。
例如,通常情况下,可筛选对象是 WTPartUsageLink 的实例。其父对象是使用关系链接的父项 WTPart,而其子对象是使用关系链接的子项 WTPartMaster 的解析 WTPart。请注意,您必须至少指定 "FilterNode" 元素三个属性中的其中一个属性。筛选器节点将按 XML 文件中指定的顺序与节点对象匹配。这样会返回匹配的第一个策略。
表达式策略
每个 FilterNode 元素都必须具有一个或两个基本和/或高级 ExpressionPolicy 子元素。
ExpressionPolicy 元素具有下列属性,这些属性可说明策略是适用于基本表达式还是适用于高级表达式,以及基于高级表达式的存在情况和值筛选结构节点的条件,如下表所示。
属性
定义和值
advanced
指定策略将被应用至高级表达式 (如果值为 TRUE) 还是应用至基本表达式 (如果值为 FALSE)。
mode
筛除节点的条件列表。模式可列出以下一个或多个常量:
常量
说明
STANDARD
当表达式的值为 FALSE 时筛除节点。
UNDEFINED
当表达式的值为 UNDEFINED 时筛除节点。
基本表达式的模式属性
基本表达式的模式属性如下:
属性
定义和值
STANDARD
选取项 (基本表达式) 的标准筛选不同于基于高级表达式的筛选。在基于选取项的算法中,分配给可筛选对象 (使用关系链接) 的选取项和终止节点 (子部件) 对象进行组合,继而作为组合集合与筛选器中的用户选择集合进行匹配。
UNDEFINED
如果您考虑将选项集合的选取项分配至对象,那么,当且仅当筛选器中包含的本集合中的选项未被任何用户选中时,模式为 UNDEFINED。