Integration mit anderen Anwendungen > CAD- und Teilebeziehungen in Windchill verwalten > Automatische Zuordnung anpassen > AutoAssociatePartFinderCreator-Benutzeroberfläche verwenden und ändern
  
AutoAssociatePartFinderCreator-Benutzeroberfläche verwenden und ändern
Die Funktion "Automatisch zuordnen" verwendet die Implementierung der AutoAssociatePartFinderCreator-Schnittstelle, um die folgenden Aktionen auszuführen.
Nach einem übereinstimmenden Teil suchen
Ein neues Teil erstellen
Standardmäßig verwendet die Aktion Automatisch zuordnen die Standardimplementierung dieser Schnittstelle, um die oben genannten Aufgaben auszuführen. Mithilfe einer benutzerdefinierten Implementierung der AutoAssociatePartFinderCreator-Schnittstelle können Sie jedoch anpassen, wie die Aktionen ausgeführt werden.
Die Schnittstelle befindet sich in com.ptc.windchill.cadx.autoassociate.AutoAssociatePartFinderCreator.
Die AutoAssociatePartFinderCreator-Schnittstelle unterstützt die folgenden Methoden:
findOrCreateWTPart-Methode zum Suchen eines übereinstimmenden Teils für ein ausgewähltes EPMDocument oder ModelItem
CreateNewWTPart-Methode zum Erstellen eines neuen Teils
findWTPart-Methode (nicht mehr genutzt)
isNewPart-Methode (nicht mehr genutzt)
setIsNewPart-Methode (nicht mehr genutzt)
)
* 
Wenngleich einige dieser Methoden der Schnittstelle veraltet sind und nicht mehr genutzt werden, muss die Implementierungsklasse Dummy-Implementierungen dieser Methoden aufweisen, da diese beim Kompilieren der Klasse benötigt werden.
So implementieren Sie eine angepasste AutoAssociatePartFinderCreator
1. Leiten Sie Ihre angepasste Klasse wie folgt ab:
public class CustomFinderCreator implements
AutoAssociatePartFinderCreator
2. Überschreiben Sie die folgenden Methoden:
public WTPart findOrCreateWTPart(EPMDocument epmDoc, EPMWorkspace workspace)
Diese Methode wird für jedes für die automatische Zuordnung ausgewählte Dokument aufgerufen und sucht nach einem übereinstimmenden Teil. Sie können die Kriterien für die Teilesuche anpassen. Das aufgefundene Teil wird dem Dokument von der Aktion zugeordnet.
public WTPart findOrCreateWTPart(EPMDocument doc, ModelItem modelItem, EPMWorkspace workspace)
Diese Methode wird für jedes für die automatische Zuordnung ausgewählte Dokument aufgerufen und sucht nach einem übereinstimmenden Teil. Sie können die Kriterien für die Teilesuche anpassen. Das aufgefundene Teil wird dem Dokument von der Aktion zugeordnet.
public WTPart createNewWTPart(AssociatePartDescriptor newPartDescriptor)
Diese Methode wird für jedes für die automatische Zuordnung ausgewählte Dokument aufgerufen und erstellt ein neues Teil. Sie können die Eigenschaften des neu erstellten Teils anpassen. Das neu erstellte Teil wird dem Dokument im Rahmen der automatischen Zuordnung zugeordnet.
* 
Die folgenden Methoden sind veraltet und werden von der Aktion derzeit nicht genutzt. Sie müssen jedoch eine Dummy-Implementierung dieser Methoden bereitstellen, damit die Klasse ordnungsgemäß kompiliert wird.
public boolean isIsNewPart()
public void setIsNewPart(boolean a_IsNewPart)
public WTPart findWTPart(EPMDocument epmDoc)
public WTPart findWTPart(EPMDocument epmDoc, ModelItem modelItem)
Kompilieren Sie die Datei, und platzieren Sie die Klasse an einem geeigneten Speicherort.
3. Legen Sie die Einstellung Operation > Automatisch zuordnen > Benutzerdefinierte Klasse für automatische Zuordnung von Teil fest, um den Namen der Klasse anzugeben, die die AutoAssociatePartFinderCreator-Schnittstelle implementiert.
4. Starten Sie den Methodenserver neu.
Benutzerdefiniertes AutoAssociatePartFinderCreator-Beispiel
Erstellt und kompilieren Sie <WT_HOME>src\com\ptcts\autoassociate\CustomizedAutoAssociatePartFinderCreator.java mit der folgenden Quelle.
// 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;
}

}