高级自定义 > 业务逻辑自定义 > 包自定义 > 降级交付的自定义 > Windchill 降级交付的相关性筛选器
  
Windchill 降级交付的相关性筛选器
相关性筛选器是基于 Java 的筛选器,用于筛选对交换无效的任何依存对象集,如果其所需的任何对象已由基于 xpathproperty 的筛选器排除。本节提供了高效自定义相关性筛选器的指南。
指导原则
不建议直接实现 DependencyFilter 接口。DependencyFilter 自定义必须涉及扩展 DefaultDependencyFilter 并为其中的 execute 方法提供实现。
如果相关性筛选器取决于多个对象,则必须定义多个 FilterIdentity 注释。
自定义的 DependencyFilter 必须定义 DependencyFilterPriority,如下所示:
package com.ptc.transformation.filter;
public final class DependencyFilterPriority {
private DependencyFilterPriority() {
// This is not be instantiated. Should be used for static references only
}
public static final int BUFFER = 25;
public static final int PRIMARY_OBJECT_PRIORITY = BUFFER;
public static final int LINK_OBJECT_PRIORITY = PRIMARY_OBJECT_PRIORITY + BUFFER;
public static final int SECONDARY_OBJECT_PRIORITY = LINK_OBJECT_PRIORITY + BUFFER;
public static final int ACTIVITY_PRIORITY = SECONDARY_OBJECT_PRIORITY + 2;
public static final int WORKITEM_PRIORITY = ACTIVITY_PRIORITY + 2;
public static final int VOTING_EVENT_AUDIT_PRIORITY = WORKITEM_PRIORITY + 2;
public static final int ASSIGNMENT_EVENT_AUDIT_PRIORITY = ACTIVITY_PRIORITY + 2;
}
必须根据对象获取筛选器进行定义,以避免递归。相关性筛选器优先级定义如下:
PRIMARY_OBJECT_PRIORITY - 这些是按优先级将最先执行的相关性筛选器。建议使用此优先级来筛选主要业务对象,这通常为包成员。
LINK_OBJECT_PRIORITY - 这些是按优先级第二个执行的相关性筛选器。建议使用此优先级来筛选主要业务对象的二进制链接对象
SECONDARY_OBJECT_PRIORITY - 这些是最后执行的相关性筛选器。建议针对依赖于包成员和链接的次要对象使用此优先级。
* 
您可以根据对象模型和关系提供自身的筛选器优先级定义。
建议使用通过 XMLLookUpService 来呈现的 APIXML 执行查询,以获取相应的 XMLFilterEntries
有关详细信息,请参阅“API 支持的 XMLLookUpService”一节。
标记为受支持的方法必须用于自定义。
API 支持的 XMLLookUpService
方法
自变量
返回
用法
getXMLFilterEntries
字符串 rootTag - 要筛选的 XML 根标记
FilterEntries 的映射,它由作为键的 XPATH 和作为值的值集合组成。
返回 XMLFilterEntries 的集合。这些 XMLFilterEntries 不包括已过滤的 XML
在相关性筛选器自定义中使用以执行数据库查询。
getXMLFilterEntries
字符串 rootTag - 要筛选的 XML 根标记
FilterEntries 的映射,它由作为键的 XPATH 和作为值的值集合组成。
removeFiltered 标志
返回 XML 筛选器条目的集合。返回的 XML 筛选器条目可能会返回已根据 removeFiltered 标志筛选的 XML 条目
在相关性筛选器自定义中使用以执行数据库查询
getInstance
TransformationContext
针对给定的 TransformationContext 初始化的 XMLLookUpService 实例。
始终使用此方法获取 XMLLookUpService 实例。这样可确保所有操作都在一个降级交付下执行,而相应的基本交付称为 XML