自定义命名服务
命名服务使用 Windchill 服务委派机制,允许您为要创建的新 CAD 文档指定以下项目:
设置 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>
然后使用 xconfmanager 工具,将这些更改应用于 service.properties 文件:
xconfmanager –p
使用类路径代替 serviceClass 的值 (即,使用类路径替换下列内容)。
com.ptc.windchill.uwgm.proesrv.c11n.EPMDefaultDocumentNami ngDelegate
4. 重新启动方法服务器。
这对您有帮助吗?