产品结构差异
ERP Connector 依靠产品结构差异逻辑来确定自部件上次发布以来对产品结构进行的变更。此差异信息用于标识为使数据与目标企业系统同步而必须发布的信息。
对象比较框架 (OCF) 会以 HashMap 的形式返回差异,其中将相关链接的逻辑类型标识符作为键并将某些映射作为值。除了包含的部件外,WTPartUsageLink 对象还可用于进一步查询和访问为所包含部件指定的特定替换部件和位号。
过程
要进行自定义,请扩展默认实施并改写特定方法。
使用 Windchill Information Modeler 对类进行扩展的具体过程在“自定义”部分中定义。对于默认接口实现的简单扩展,可使用此过程:
1. 使用任意编辑器或集成开发环境 (IDE) 来定义 java 源文件。
* 
请勿修改或替换在安装 ERP Connector 时提供的任何类。这些文件可能会替换为未来的软件版本。
2. 将 java 源文件编译到 Windchill 代码库。
3. 变更相应的特性以指向新的实施。
有关详细信息,请参阅自定义 service.properties
示例
以下示例说明扩展 wt.part.PartUsageInfo 类以及修改用于比较的默认行为的方法。除默认比较外,该示例还比较了行号。
源代码位于
<Windchill>/codebase/com/ptc/windchill/esi/examples/Example4MyPartUsageInfo.java。以下是示例文件的内容:
package com.ptc.windchill.esi.examples; import wt.part.LineNumber;
import wt.part.PartUsageInfo; import wt.part.WTPartUsageLink; import wt.util.WTException;
public class Example4MyPartUsageInfo extends PartUsageInfo
{
protected boolean isDifferent(PartUsageInfo info)
{
boolean result = super.isDifferent(info);
if (result == false)
{
Example4MyPartUsageInfo other = (Example4MyPartUsageInfo)info; WTPartUsageLink thisLink = this.getPartUsageLink(); WTPartUsageLink otherLink = other.getPartUsageLink(); LineNumber thisLine = thisLink.getLineNumber();
LineNumber otherLine = otherLink.getLineNumber();
if (thisLine == null)
{
if (otherLine != null)
// different line number result = true;
}
}
else
{
if (otherLine == null || thisLine.equals(otherLine) == false)
{
// different line number result = true;
}
}
}
return result;
}
}
请考虑以下方面:
package 语句可确保 java 编译器的输出写入正确的目录。
java 导入语句是类的继承和实施细节所必需的。
可执行以下操作编译示例:
从使用此命令安装 <Windchill> 时定义的 Windchill PDMLink 目录中启动 Windchill shell:
bin/windchill shell
使用 java 编译器编译类。
javac -d ./codebase ./codebase/com/ptc/windchill/esi/examples/*.java
要激活新实施,请修改 wt.properties 以指定用于指定 wt.part.PartUsageInfo 服务实施的特性文件。
wt.services.applicationcontext.WTServiceProviderFromProperties. customPropertyFiles
附加包含新实施规范的特性文件的名称,使用逗号分隔文件名。提供了一个示例特性文件 (<Windchill>/codebase/com/ptc/windchill/esi/examples/Example4.properties),其中包含示例实施的规范。
wt.services/svc/default/wt.part.PartUsageInfo/null/java.lang.Object/0=com.ptc.windc hill.esi.examples.Example4MyPartUsageInfo/duplicate
这对您有帮助吗?