其他 Windchill 功能 > 服务信息管理 > 自定义 Windchill Service Information Manager 和 Windchill Service Parts > 自定义服务有效性概述 > 自定义服务有效性
  
自定义服务有效性
使用以下步骤将服务有效性对象的自定义类型和属性添加到在“管理适用性”对话框的“类型”下拉菜单以及“编辑筛选器”对话框的“服务有效性”选项卡中所显示的列表内。
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. 按照如 Setting Up a Directory Structure for Managing Customized Files and Text Tailoring 中所述的约定,将更改保存至 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