Integrazione con altre applicazioni > Gestione delle relazioni di parti e CAD in Windchill > Personalizzazione dell'associazione automatica > Utilizzo e modifica dell'interfaccia AutoAssociatePartFinderCreator
  
Utilizzo e modifica dell'interfaccia AutoAssociatePartFinderCreator
Associazione automatica utilizza l'implementazione dell'interfaccia AutoAssociatePartFinderCreator per effettuare le azioni elencate di seguito.
Ricerca di una parte corrispondente.
Creazione di una nuova parte.
Per default, l'azione Associazione automatica utilizza l'implementazione di default di questa interfaccia per eseguire i task sopra citati. È tuttavia possibile personalizzarne la modalità di esecuzione utilizzando un'implementazione personalizzata dell'interfaccia AutoAssociatePartFinderCreator.
L'interfaccia è contenuta in com.ptc.windchill.cadx.autoassociate.AutoAssociatePartFinderCreator.
L'interfaccia AutoAssociatePartFinderCreator supporta i metodi descritti di seguito.
Metodo findOrCreateWTPart utilizzato per cercare una parte corrispondente per un EPMDocument o un ModelItem selezionato
Metodo CreateNewWTPart utilizzato per creare una nuova parte
Metodo findWTPart (non più utilizzato)
Metodo isNewPart (non più utilizzato)
Metodo setIsNewPart (non più utilizzato
)
* 
Anche se alcuni metodi dell'interfaccia sono obsoleti e non sono più utilizzati, la classe di implementazione deve disporre di implementazioni fittizie di questi metodi per poter compilare la classe.
Per implementare un'interfaccia AutoAssociatePartFinderCreator personalizzata, attenersi alla procedura descritta di seguito.
1. Far derivare la classe personalizzata come indicato di seguito.
public class CustomFinderCreator implements
AutoAssociatePartFinderCreator
2. Ignorare i metodi riportati di seguito.
public WTPart findOrCreateWTPart(EPMDocument epmDoc, EPMWorkspace workspace)
Questo metodo viene richiamato per ogni documento selezionato in modo che l'associazione automatica ricerchi eventuali parti corrispondenti. È possibile personalizzare i criteri utilizzati per eseguire la ricerca nella parte. La parte restituita viene utilizzata dall'azione per l'associazione al documento.
public WTPart findOrCreateWTPart(EPMDocument doc, ModelItem modelItem, EPMWorkspace workspace)
Questo metodo viene richiamato per ogni documento selezionato in modo che l'associazione automatica ricerchi eventuali parti corrispondenti. È possibile personalizzare i criteri utilizzati per eseguire la ricerca nella parte. La parte restituita viene utilizzata dall'azione per l'associazione al documento.
public WTPart createNewWTPart(AssociatePartDescriptor newPartDescriptor)
Questo metodo viene richiamato per ogni documento selezionato in modo che l'associazione automatica crei una nuova parte. È possibile personalizzare le proprietà della parte appena creata. La parte appena creata viene associata al documento dall'azione di associazione automatica.
* 
I metodi riportati di seguito sono obsoleti e non vengono attualmente utilizzati dall'azione. Per compilare correttamente la classe, è necessario tuttavia fornire un'implementazione fittizia di questi metodi.
public boolean isIsNewPart()
public void setIsNewPart(boolean a_IsNewPart)
public WTPart findWTPart(EPMDocument epmDoc)
public WTPart findWTPart(EPMDocument epmDoc, ModelItem modelItem)
Compilare il file e inserire la classe in una posizione appropriata.
3. Impostare la preferenza Operazione > Associazione automatica > Classe personalizzata per associazione automatica parti per specificare il nome della classe che implementa l'interfaccia AutoAssociatePartFinderCreator.
4. Riavviare il method server.
Esempio di AutoAssociatePartFinderCreator personalizzato
Creare e compilare <WT_HOME>src\com\ptcts\autoassociate\CustomizedAutoAssociatePartFinderCreator.java con la seguente origine.
// package com.ptc.windchill.uwgm.cadx.autoassociate;
package com.ptcts;
import java.lang.String;
import wt.epm.EPMDocument;
import wt.epm.workspaces.EPMWorkspace;
import wt.part.WTPart;
import wt.pom.UniquenessException;
import wt.util.WTException;
import wt.util.WTPropertyVetoException;
import wt.vc.VersionControlException;
// import com.ptc.windchill.uwgm.task.autoassociate.DefaultAutoAssociatePartFinderCreator;
import com.ptc.windchill.uwgm.common.autoassociate.DefaultAutoAssociatePartFinderCreator;
// import com.ptc.windchill.cadx.autoassociate.AutoAssociatePartFinderCreator;
import com.ptc.windchill.uwgm.common.autoassociate.AutoAssociatePartFinderCreator;
import wt.type.TypedUtilityServiceHelper;
import com.ptc.windchill.uwgm.common.associate.AssociatePartDescriptor;
import wt.inf.container.WTContainer;
import java.rmi.RemoteException;
public class CustomizedAutoAssociatePartFinderCreator extends DefaultAutoAssociatePartFinderCreator implements AutoAssociatePartFinderCreator
{
public boolean isIsNewPart()
{
System.out.println("Invoked CustomizedAutoAssociatePartFinderCreator :: isIsNewPart()");
return super.isIsNewPart();
}
public void setIsNewPart( boolean a_IsNewPart ) throws WTPropertyVetoException
{
System.out.println("Invoked CustomizedAutoAssociatePartFinderCreator :: setIsNewPart()");
super.setIsNewPart(a_IsNewPart);
}
public WTPart findOrCreateWTPart(EPMDocument epmDoc, EPMWorkspace workspace) throws WTException, WTPropertyVetoException, VersionControlException, UniquenessException
{
System.out.println("Invoked CustomizedAutoAssociatePartFinderCreator :: findOrCreateWTPart()");
return super.findOrCreateWTPart(epmDoc, workspace);
}
public WTPart findWTPart(EPMDocument epmDoc) throws WTException
{
System.out.println("Invoked CustomizedAutoAssociatePartFinderCreator :: findWTPart()");
return super.findWTPart(epmDoc);
}

public WTPart createNewWTPart(AssociatePartDescriptor newPartDescriptor) throws WTException, WTPropertyVetoException {

System.out.println("Invoked CustomizedAutoAssociatePartFinderCreator :: createNewWTPart()");

// get epmdoc
EPMDocument epmDoc = newPartDescriptor.getSourceDoc();
// get workspace
EPMWorkspace ws = newPartDescriptor.getEPMWorkspace();

// get workspace container
WTContainer container = ws.getContainer();

// create wtpart with super class
WTPart newpart = super.createNewWTPart(newPartDescriptor);

// manipulate new part, e.g. set attributes

// return modified new part
return newpart;
}

}