自定义命名服务
命名服务使用 Windchill 服务委派机制来允许您为要创建的新 EPMDocument 指定以下各项:
设置 EPMDocument 的编号
设置 EPMDocument 的名称
* 
Windchill 10.0 之前,上载中的命名服务自定义可以通过自定义代码来生成名称和编号。但是,在 Windchill 10.0 之前,上载请求中未提供用于命名服务自定义的参数。
* 
命名服务仅用于上载操作。由命名策略和自定义系统所使用的优先级顺序如下所示。
名称:
1. 命名服务自定义
2. 通过 Creo Parametric“文件” > “新建”窗口显式分配的“公用名称”
3. 命名参数 (“操作” > “上载操作” > “上载” > “命名参数”= <某字符串参数>)
4. 文件名 (只有在基于“文件名”(CAD 名称) 分配“名称”时,首选项“操作” > “上载操作” > “上载” > “上载丢弃名称文件扩展名”才会生效)
编号:
1. 命名服务自定义
2. 编号参数 (“操作” > “上载操作” > “上载” > “编号参数”)
3. 文件名 (只有在基于“文件名”[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. 在新类中,按以下方法实现对 EPMDocument 命名/编号的业务逻辑:
public void validateDocumentIdentifier(DocIdentifier docIdentifier)
DocumentIdentifier 对象具有将由上载服务创建的 EPMDocument 的名称和编号信息。
使用 DocIdentifier.getModelName() 获取此 DocIdentifier 对象表示的 EPMDocument 的 CAD 名称。
Creo Parametric 指定的参数可用于设置 EPMDocument 编号/命名。
使用 DocIdentifier.getParameters() 获取关联参数。
使用 DocIdentifier 的“设置”方法来设置新名称/编号值。如果可行,上载服务会使用这些建议。
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.EPMDefaultDocumentNamingDelegate")。
4. 重新启动方法服务器。
这对您有帮助吗?