文档附件差异
自上次发布 RevisionControlled 对象 (如 WTPart) 以来,ERP Connector 依靠文档附件差异逻辑来确定对文档关联的变更。此差异信息用于标识为与 ERP 系统同步数据而必须发送的信息。
差异将以 com.ptc.windchill.esi.esidoc.PartDocInfo 对象的枚举形式返回。PartDocInfo 类是一个临时类,表示修订版本控制对象的文档附件。
提供了多个用于表示修订版本受控对象文档的不同关联。以下文档关联适用于 WTPart 对象:
• wt.doc.WTDocument 通过说明方关联与 wt.part.WTPart 关联
• wt.doc.WTDocumentMaster 通过参考关联与 wt.part.WTPart 关联
• wt.epm.EPMDocument 通过构建历史记录关联与 wt.part.WTPart 关联
• wt.epm.EPMDocument 通过说明方关联与 wtpart.WTPart 关联
• wt.doc.WTDocument 通过说明方关联与 wt.esi.ERPMaterial (表示给定 WTPart 对象) 关联
• wt.doc.WTDocumentMaster 通过参考关联与 wt.esi.ERPMaterial (表示给定 WTPart 对象) 关联
• wt.epm.EPMDocument 通过说明方关联与 wt.esi.ERPMaterial (表示给定 WTPart 对象) 关联
• wt.doc.WTDocument 通过说明方关联与 com.ptc.windchill.enterprise.data.EnterpriseData (表示给定 WTPart 对象或 com.ptc.windchill.enterprise.data.EnterpriseData) 关联
• wt.doc.WTDocumentMaster 通过参考关联与 com.ptc.windchill.enterprise.data.EnterpriseData (表示给定 WTPart 对象或 com.ptc.windchill.enterprise.data.EnterpriseData) 关联
• wt.epm.EPMDocument 通过说明方关联与 com.ptc.windchill.enterprise.data.EnterpriseData (表示给定 WTPart 对象或 com.ptc.windchill.enterprise.data.EnterpriseData) 关联
过程
使用 Windchill Information Modeler 扩展类的过程已在 《Windchill 自定义指南》 中定义。对于默认接口实施的简单扩展,可使用此过程:
1. 使用任意编辑器或集成开发环境 (IDE) 来定义 java 源文件。
|
请勿修改或替换在安装 ERP Connector 时提供的任何类。这些文件可能会替换为未来的软件版本。
|
2. 将 java 源文件编译到 Windchill 代码库。
3. 变更相应的特性以指向新的实施。
(有关详细信息,请参阅《Windchill 自定义指南》中的“自定义服务特性”。)
示例
以下示例说明扩展 com.ptc.windchill.esi. esidoc.PartDocInfo 类以及修改生成文档 URL 默认行为的方法。
本示例生成文档内容的 URL,而不是生成文档特性页面的 URL。
源代码位于
<Windchill>/codebase/com/ptc/windchill/esi/examples/Example5MyPartDocInfo.java.
以下是示例文件的内容:
package com.ptc.windchill.esi.examples;
import com.ptc.windchill.esi.esidoc.PartDocInfo; import java.util.HashMap;
import wt.doc.Document;
import wt.fc.ObjectIdentifier; import wt.fc.Persistable; import wt.fc.PersistenceHelper;
import wt.httpgw.GatewayServletHelper; import wt.httpgw.URLFactory;
import wt.util.WTException;
public class Example5MyPartDocInfo extends PartDocInfo
{
public String getDocumentURL()
{String url = null;
try
{
// Generate a URL to download the document content.
URLFactory urlFactory = new URLFactory(); HashMap map = new HashMap();
map.put("action", "DownloadContent"); map.put("oid", getDocumentOID());
url = GatewayServletHelper.buildAuthenticatedHREF(urlFactory, "wt.enterprise.URLProcessor", "URLTemplateAction", map);
}
catch (WTException e)
{
// Use the default logic which generates a URL to display
// the document properties.
url = super.getDocumentURL();
}
return url;
}
private String getDocumentOID() throws WTException
{
Persistable p = (Persistable)getDocument();
ObjectIdentifier oid = PersistenceHelper.getObjectIdentifier(p);
return oid.getStringValue();
Consider the following:
◦ package 语句可确保 java 编译器的输出写入正确的目录。
◦ java 导入语句是类的继承和实施细节所必需的。
可执行以下操作编译示例:
◦ 从使用此命令安装 Windchill 时定义的 <Windchill> 目录中启动 Windchill shell:
bin/windchill shell
◦ 使用 java 编译器编译类。
javac -d ./codebase ./codebase/com/ptc/windchill/esi/examples/*.java
要激活新实施,请修改 wt.properties 以指定用于指定 com.ptc.windchill.esi.esidoc.PartDocInfo 服务实施的特性文件。
wt.services.applicationcontext.WTServiceProviderFromProperties. customPropertyFiles
附加包含新实施规范的特性文件的名称,使用逗号分隔文件名。提供了一个包含示例实施规范的示例特性文件 (<Windchill>/codebase/com/ptc/windchill/esi/examples/Example5.properties)。
wt.services/svc/default/com.ptc.windchill.esi.esidoc.PartDocInfo/null
/java.lang.Object/0=com.ptc.windchill.esi.examples. Example5MyPartDocInfo/duplicate