自定义命名服务
在创建新 CAD 文档时,命名服务使用 Windchill 服务委派机制来指定以下内容:
• 设置 CAD 文档的编号。
• 设置 CAD 文档的名称。
|
• 命名服务只适用于上载操作。
• 在 Windchill 10.0 之前,上载中的命名服务自定义可以通过自定义代码来生成名称和编号。但是,在 Windchill 10.0 之前,上载请求中未提供用于命名服务自定义的参数。
|
由命名策略和自定义系统所使用的优先级顺序如下所示。
• 命名
1. 命名服务自定义
2. 命名的参数集 (命名参数)
3. 文件名称 (首选项“上载丢弃名称文件扩展名”仅在根据文件名称 (CAD 名称) 分配名称的情况下有效)。
• 编号
1. 命名服务自定义
2. 编号的参数集 (“编号参数”)
3. 文件名称 (“上载丢弃编号文件扩展名”仅在根据文件名称 (CAD 名称) 分配名称的情况下有效)。
如果 Windchill 命名和编号策略无法解决贵公司的需求,则可以自定义命名和编号服务,然后按自定义将名称和编号分配给 CAD 文档。使用以下步骤来自定义命名服务:
1. 创建一个实现接口 EPMDocumentNamingDelegate 的 Java 类。接口定义如下。
package com.ptc.windchill.uwgm.proesrv.c11n;
public interface EPMDocumentNamingDelegate
{
public void validateDocumentIdentifier
(DocIdentifier docIdentifier);
}
类 DocIdentifier 的定义如下:
package com.ptc.windchill.uwgm.proesrv.c11n;
import java.util.HashMap;
public class DocIdentifier
{
private String m_modelName;
private String m_docName;
private String m_docNumber;
private HashMap m_parameters;
public DocIdentifier(String modelName, String docName,
String docNumber, HashMap params)
{ m_modelName = modelName; m_docName= docName;
m_docNumber= docNumber;
m_parameters= params; }
/** get the CAD Name for the model **/
public String getModelName()
{ return m_modelName; }
/** get the EPMDocument name for the model **/
public String getDocName()
{ return m_docName; }
/** set the EPMDocument name for the model **/
public void setDocName(String docname)
{ m_docName = docname; }
/** set the EPMDocument number for the model **/
public void setDocNumber(String docnumber)
{ m_docNumber = docnumber; }
/** get the EPMDocument number for the model **/
public String getDocNumber()
{ return m_docNumber; }
/** get the Pro/E designated parameters for the model.
These are name-value pairs indexed by the name **/
public HashMap getParameters()
{ return m_parameters; }
}
2. 在新类中,使用以下方法实现了为 CAD 文档 (EPMDocument) 命名/编号的业务逻辑:
public void validateDocumentIdentifier(DocIdentifier docIdentifier)
◦ DocumentIdentifier 对象具有由“上载服务”创建的 CAD 文档的 CAD 文档名称和编号信息。
使用以下代码获取此 DocIdentifier 对象表示的 CAD 文档的 CAD 名称。
DocIdentifier.getModelName()
已指定 CAD 应用程序的参数可用于设置 CAD 文档编号/命名。
使用以下代码获取关联参数。
DocIdentifier.getParameters()
使用 DocIdentifier 的设置方法设置新名称/编号值。如果可行,“上载服务”会使用这些建议。可在以下位置找到实现的示例:
<Windchill home>/codebase/com/ptc/windchill/uwgm/proesrv/
c11n/EPMDefaultDocumentNamingDelegate.java
3. 编辑 site.xconf 文件 (可见于 <Windchill>) 来添加下列特性,以指明服务器上自定义服务的可用性:
<Service context="default" name="com.ptc.windchill.uwgm.proesrv.c11n.
EPMDocumentNamingDelegate" targetFile="codebase/service.properties">
<Option cardinality="singleton" requestor="wt.epm.EPMDocument"
serviceClass="com.ptc.windchill.uwgm.proesrv.c11n.EPMDefaultDocument
NamingDelegate"/>
</Service>
要将更改应用于 service.properties 文件,请输入以下命令来运行 xconfmanager 工具。
xconfmanager –p
使用类路径代替 serviceClass 的值 (即,使用类路径替换下列内容)。
com.ptc.windchill.uwgm.proesrv.c11n.EPMDefaultDocumentNami ngDelegate
4. 重新启动“方法”服务器。