高级自定义 > 业务逻辑自定义 > 包自定义 > 降级交付的自定义 > 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
这对您有帮助吗?