Customizing the Naming Service
The naming service uses the Windchill service delegate mechanism to allow you to specify the following for the new CAD document to be created:
• Set a number for the CAD document.
• Set a name for the CAD document.
|
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 the name is assigned based on a file name (CAD name).
• Number
1. Naming service customization.
2. Parameter set for numbering (Numbering Parameter).
3. File name The preference Upload Drop Number File Extension is effective only if the name is assigned based on a file name (CAD Name).
If the standard Windchill naming and numbering policies do not address your company's needs, you can customize the service to assign name and number to a CAD document based on this custom logic. 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 **/
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 CAD document (EPMDocument) using the following method:
public void validateDocumentIdentifier(DocIdentifier docIdentifier)
◦ The DocumentIdentifier object has the CAD document name and number information for the CAD document that will be created by the Upload Service.
Use the
DocIdentifier.getModelName()
to get the CAD Name of the CAD document that this DocIdentifier object represents.
◦ The CAD application designated parameters may be used to set CAD 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.