Customizing the Naming Service
The Naming service uses the Windchill service delegate mechanism to allow you to specify the following for the new EPMDocument to be created:
• Set a number for the EPMDocument
• Set a name for the EPMDocument
|
Naming service customization in upload can be used before Windchill 10.0 to generate name and number using custom code. However, before Windchill 10.0 parameters are not available in an upload request to use in naming service customization.
|
|
The Naming service is for the upload action only. The order of precedence used by the system for naming policies and customizations is as follows.
• Name:
1. Naming service customization
2. Explicitly assigned Common Name through the Creo Parametric > window
3. Name parameter ( > > > = <some string parameter>)
4. File Name (The preference, > > > takes effect only if Name is assigned based on File Name (CAD Name))
• Number:
1. Naming service customization
2. Number parameter ( > > > )
3. File Name (The preference, > > > takes effect only if Number is assigned based on File Name [CAD Name])
|
To customize the Naming service:
1. Create a Java Class that implements the interface EPMDocumentNamingDelegate. The interface definition is as follows:
package com.ptc.windchill.uwgm.proesrv.c11n;
public interface EPMDocumentNamingDelegate
{
public void validateDocumentIdentifier(DocIdentifier
docIdentifier);
}
The definition of Class DocIdentifier is as follows.
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. In the new class, implement the business logic for naming/numbering EPMDocument in the method:
public void validateDocumentIdentifier(DocIdentifier docIdentifier)
◦ The DocumentIdentifier object has the EPMDocument name and number information for the EPMDocument that will be created by the Upload Service.
Use the DocIdentifier.getModelName() to get the CAD Name of the EPMDocument that this DocIdentifier object represents.
◦ The Creo Parametric designated parameters may be used to set EPMDocument numbering/naming.
Use the DocIdentifier.getParameters() to get the associated parameters.
Use the “set” methods on the DocIdentifier to set the new name/number values. The Upload Service will use these suggestions if they are feasible.
3. Edit site.xconf file (found in <Windchill>) to add following property to indicate availability of customization service on the server:
◦ <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>
Then use the xconfmanager tool to apply the changes to service.properties file (run -xconfmanager p)
Use the path of your class in place of the value of serviceClass (that is, replace"com.ptc.windchill.uwgm.proesrv.c11n.EPMDefaultDocumentNamingDelegate" with the path to your class).
4. Restart the method server.