Customizing the Naming Service
The naming service uses the Windchill service delegate mechanism to allow you to specify the following for the new dynamic document to be created:
• Set a number for the dynamic document.
• Set a name for the dynamic document.
|
Naming service customization in upload can be used before Windchill 10.0 to generate name and number using custom code. However, in releases prior to 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. Parameter set for naming (Naming Parameter).
3. File name (The preference, Upload Drop Name File Extension, is effective only if name is assigned based on file name (application name)).
• Number
1. Naming service customization.
2. Parameter set for numbering (Numbering Parameter).
3. File name (Upload Drop Number File Extension, is effective only if name is assigned based on file name (application name)).
If the Windchill naming and numbering policies do not address your company's needs, you can customize the naming and numbering service to assign the name and number to a dynamic document as per the customization. Use the following steps 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 **/
{ 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 dynamic document (EPMDocument) using the following method:
public void validateDocumentIdentifier(DocIdentifier docIdentifier)
◦ The DocumentIdentifier object has the dynamic document name and number information for the dynamic document that will be created by the Upload Service.
Use the
DocIdentifier.getModelName()
to get the CAD Name of the dynamic document that this DocIdentifier object represents.
◦ The authoring application designated parameters may be used to set dynamic document 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 uses these suggestions if they are feasible. The sample implementation can be found at the following location:
<Windchill home>/codebase/com/ptc/windchill/uwgm/proesrv/
c11n/EPMDefaultDocumentNamingDelegate.java
3. Edit the 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.EPMDefaultDocumentNami ngDelegate
with the path to your class).
4. Restart the Method server.