解决方案
进行自定义干涉检测,方法是在自定义代码中实现公共 WVS API,并通过适当的 WVS 特性更改使得 WVS 识别此自定义代码。
必备知识
要应用此最佳做法,需要了解以下内容:
Java 开发
WVS 干涉检测概念,例如干涉定义和干涉报告。
下面的“更多资源”一节包括对许多或所有这些主题的参考。
解决方案元素
元素
类型
说明
InterferenceDetectionHooks.java
Java 文件
包含用于实现本文档所描述的自定义的示例代码。
运行时位置:Windchill\prog_examples\wvs\com\ptc\wvs\InterferenceDetectionHooks.java
InterferenceInfo.class
类文件
表示由 Creo View 客户端适配器生成的干涉报告中包含的有关单个干涉的所有信息。WVS 干涉处理器使用其创建新的干涉对象或更新现有干涉对象。
运行时位置:<Windchill>\codebase\com\ptc\wvs\server\publish\InterferenceInfo.class
WTDocument.class
类文件
干涉定义是 WTDocument 的子类型。
运行时位置:<Windchill>\codebase\wt\doc\WTDocument.class
wvs.properties.xconf
XConf 文件
包含用于配置 Windchill 可视化服务以利用特定自定义代码的特定特性。
运行时位置:<Windchill>\codebase\WEB-INF\conf\wvs.properties.xconf
LifeCycleManagedWtMarkUp
类文件
Windchill 中的所有干涉和干涉报告对象均为 LifeCycleManagedWtMarkUp。
运行时位置:<Windchill>\codebase\wt\viewmarkup\LifeCycleManagedWtMarkUp.class
过程:调用自定义以确定干涉属性
完成以下步骤以创建用于设置干涉属性 (例如,工作负责人、说明、状态、用户所设严重性和名称) 的自定义挂接。
1. 使用自变量和返回类型均与以下示例中所定义方法相匹配的静态方法创建 Java 类。此自定义将返回一组属性值,这些属性值可用于更新现有干涉对象,并为将要创建的新干涉对象返回一组不同的属性值。
有关全面的示例,请参阅位于 <Windchill>\prog_examples\wvs\com\ptc\wvs 中的 InterferenceDetectionHooks.java
2. 更新 <Windchill>\codebase\wvs.properties.xconf 以配置 WVS 干涉处理器,从而调用自定义挂接。有关如何完成此步骤的详细信息,请参阅有关 wvs.properties.xconf 中 "interferencedetection.report.getinterferenceattributevaluesmethod" 特性的文档。配置此示例时,XConf 条目将为:
<Property name="interferencedetection.report.
getinterferenceattributevaluesmethod " default
="ext.customhooks.MyCustomClass/getInterferenceAttributeValues"/>
过程:调用自定义以更改用于确定干涉对等项的默认规则集。
WVS 干涉处理器需要确定由 Creo View 客户端适配器生成的干涉报告中所述干涉是否等于已经与先前执行中所创建干涉报告内现有干涉定义关联的任何干涉对象。用于确定现有干涉对象是否等于干涉报告中所述干涉的默认规则集如下:
干涉的两个部件的主参考必须相等。
干涉的两个部件的组件实例路径必须相等。
干涉类型必须相同。
完成以下步骤以创建可覆盖用于确定干涉对等项默认规则的自定义挂接。
1. 使用自变量和返回类型均与以下示例中所定义方法相匹配的静态方法创建 Java 类。此自定义将首先通过调用 WVS API 以使用所有默认规则来确定对等项。如果 API 返回 "true",则执行附加检查以确保干涉项的组名称也对等。
有关全面的示例,请参阅位于 <Windchill>\prog_examples\wvs\com\ptc\wvs 中的 InterferenceDetectionHooks.java
2. 更新 <Windchill>\codebase\wvs.properties.xconf 以配置 WVS 干涉处理器,从而调用自定义挂接。
有关如何完成此步骤的详细信息,请参阅有关 wvs.properties.xconf 中 "interferencedetection.report.getinterferenceattributevaluesmethod" 特性的文档。
配置此示例时,XConf 条目将为:<Property name="interferencedetection.report.isinterferenceequivalentmethod " default="ext.customhooks.MyCustomClass/isInterferenceEquivalent"/>
这对您有帮助吗?