自定义命名服务
命名服务使用 Windchill 服务委派机制,允许您为要创建的新动态文档指定以下内容:
• 设置动态文档的编号。
• 设置动态文档的名称。
|
在 Windchill 10.0 之前,上载中的命名服务自定义可以通过自定义代码来生成名称和编号。但是,在 Windchill 10.0 之前,上载请求中未提供用于命名服务自定义的参数。
|
由命名策略和自定义系统所使用的优先级顺序如下所示。
• 命名
1. 命名服务自定义。
.
2. 命名的参数集 (命名参数)。
3. 文件名 (首选项“上载丢弃名称文件扩展名”仅在根据文件名 (应用程序名称) 分配名称的情况下有效)。
• 编号
1. 命名服务自定义。
2. 编号的参数集 (“编号参数”)。
3. 文件名 (“上载丢弃编号文件扩展名”仅在根据文件名 (应用程序名称) 分配名称的情况下有效)。
如果 Windchill 命名和编号策略无法解决贵公司的需求,则可以自定义命名和编号服务将名称和编号按自定义分配给动态文档。使用以下步骤来自定义命名服务:
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 对象具有将由“上载服务”创建的动态文档的动态文档名称和编号信息。
使用
DocIdentifier.getModelName()
获取此 DocIdentifier 对象表示的动态文档的 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. 重新启动“方法”服务器。