自定义服务有效性
使用以下步骤将服务有效性对象的自定义类型和属性添加到在“管理适用性”对话框的“类型”下拉菜单以及“编辑筛选器”对话框的“服务有效性”选项卡中所显示的列表内。
1. 请参阅配置文件:
codebase/com/ptc/arbortext/windchill/serviceEffectivityFilter
/server/serviceEffectivityConfig.xml
此文件定义与特定对象列表相对应的属性列表,这些对象可在“类型”菜单中进行选择以供设置和筛选服务有效性之用。
* 
编辑此文件前,请将其添加至自定义文件的“安全区域”以确保在后续升级/安装期间不会将其覆盖。
2. 有关要包括的属性的内部名称信息,请参阅“类型和属性管理”实用程序。您需要在此实用程序中创建所有新的自定义属性。有关信息,请参阅使用“类型和属性管理”实用程序
3. serviceEffectivityConfig.xml 中,通过创建如下格式的 ServiceEffectivtyType 条目来声明属性:
<ServiceEffectivityType name="seLotNumber" renderer="com.ptc.arbortext.windchill.serviceEffectivityFilter.client.ui.
renderers.configTypes.DefaultCustomConfigType" effectivityType="com.ptc.arbortext.windchill.siscore.serviceeff.
ServiceEffectivity"/>
在本例中:
name 是“服务有效性”属性的内部名称。其必须与在“类型和属性管理”中定义的属性内部名称相匹配。
renderer 是用于确定针对该类型显示哪些字段以及如何在 UI 中处理这些字段的 Java 类。默认情况下,其为通用 DefaultCustomConfigType。此着色器生成简单显示 - 属性的显示名称和 Value 文本字段。
您可以创建自定义着色器以实现 ServiceEffectivityConfigType,并在此属性下对其进行声明。
着色器还可用于确定如何将自定义属性传递到 JSON 对象中的筛选器。
有关为属性创建自定义数据输入字段的信息,请参阅创建自定义服务有效性配置面板
effectivityType 是创建自定义属性时所使用的“服务有效性”类型 (对象) 的内部名称。它可以是 ServiceEffectivity 的子类型。其必须与在“类型和属性管理”中定义的类型内部名称相匹配。
4. 再次在 serviceEffectivityConfig.xml 中,为结构 (例如 WTPart) 根节点的对象类型上下文中的属性创建条目。此条目为必需项,这样才能在相关对象的“类型”下拉菜单中显示属性。
为相关 ServiceEffectivityInstance 元素创建 csvalid 条目,其格式如下所示:
<csvalid serviceeffectivitytype="seLotNumber"/>
如下所示为 WTPart 的完整 ServiceEffectivityInstance 条目示例:
<ServiceEffectivityInstance objectType="wt.part.WTPart,wt.part.WTPartMaster,wt.part.alternaterep.WTPartAlternateRep"
objectMaster="wt.part.WTPartMaster">
<csvalid serviceeffectivitytype="serialNumber"/>
<csvalid serviceeffectivitytype="date"/>
<csvalid serviceeffectivitytype="seLotNumber"/>
</ServiceEffectivityInstance>
其中,serialNumberdate 是文件的默认条目,seLotNumber 则是您的自定义属性。
* 
该文件中 csvalid 条目的顺序决定下拉菜单中各类型的顺序。
5. 按照如设置用于管理自定义文件和文本定制的目录结构中所述的约定,将更改保存至 serviceEffectivityConfig.xml
要在根据服务有效性进行筛选时有效地使用自定义属性,请创建一个自定义筛选器委派,以处理筛选器对象与服务有效性对象之间的比较结果。有关详细信息,请参阅创建自定义筛选器委派
为自定义服务有效性属性创建自定义筛选器委派
Windchill 提供了用于在筛选时处理服务有效性的委派 (忽略换行符):
com.ptc.arbortext.windchill.siscore.serviceeff.filterDelegates.
DefaultServiceEffectivityDelegate
您可以使用 Windchill 中的服务特性来覆盖该委派,以提供一个自定义委派:
1. 创建包含合适的新特性值的 XCONF 文件:
com.ptc.arbortext.windchill.siscore.serviceeff.filterDelegates.
DefaultServiceEffectivityDelegate
以下 XML 文档是用于在筛选时处理服务有效性对象的 XCONF 命令:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Configuration
SYSTEM "xconf.dtd">
<Configuration targetFile="codebase/typedservices.properties">
<Service context="default" name="com.ptc.arbortext.windchill.siscore.serviceeff.ServiceEffectivityFilterFactory">
<Option requestor="WCTYPE|com.ptc.arbortext.windchill.siscore.serviceeff.ServiceEffectivity"
serviceClass="com.ptc.arbortext.windchill.siscore.serviceeff.filterDelegates.DefaultServiceEffectivityDelegate"/>
</Service>
<Service context="default" name="wt.filter.NavigationFilterDelegate2">
<Option cardinality="singleton" requestor="null"
serviceClass="com.ptc.arbortext.windchill.siscore.serviceeff.filterDelegates.DefaultServiceEffectivityDelegate"
selector="com.ptc.arbortext.windchill.siscore.serviceeff.ServiceEffectivityFilter"/>
</Service>
</Configuration>
更改 serviceClass 属性下的 DefaultServiceEffectivityDelegate 参考以反映新的自定义委派。
有关使用 xconfmanager 实用程序的详细信息,请参阅使用 xconfmanager 实用程序
2. 使用 xconfmanager 实用程序更新 Windchill 服务特性。以下命令会注册新文件及其内容:
xconfmanager -i codebase/custom/myServiceXconfFile.properties.xconf -p
这对您有帮助吗?