Delegates bearbeiten (AutoCAD)
Vordefinierter Delegate
Windchill bietet einen vordefinierten Mechanismus, um zusätzliche Informationen zum CAD-Dokument als benutzerdefinierte Systemparameter zu übergeben.
Legen Sie zum Anpassen der Parameter die serverseitige Einstellung Workgroup Manager Client > Zuordnung von benutzerdefinierten Systemattributen und Dateieigenschaften auf Standortebene fest.
Der Wert ist eine Liste zusätzlicher Attribute von Objekten, die zu dem CAD-Dokument gehören und die im CAD-Tool als Parameter oder Eigenschaften angezeigt werden.
Der Wert ist eine kommagetrennte Liste von Paaren aus CAD-Eigenschaften und Windchill Attributen im folgenden Format:
<name_of_CAD_property>:<relatedObjectCode>.<WindchillAttributeName>
Dabei gilt:
Wert
Beschreibung
Zulässige Werte
name_of_CAD_property
Dies ist der Name des Parameters oder der Eigenschaft im CAD-Tool.
PART_REVISION
relatedObjectCode
Dies ist die Zeichenfolge, die verwendet wird, um das zugehörige Objekt zu identifizieren.
Für zugehöriges Objekt
docMaster
associatedPart
relatedECN
promote
WindchillAttributeName
Dies ist der logische Name oder der interne Name des Attributs in Windchill für das zugehörige Objekt.
Soft-Type-Attribute für CAD-Dokument-Master
Teileattribute
Soft-Type-Attribut für das zugehörige Teil des Typs "Boolesch", "Datum", "Ganzzahl", "Reell", "Reell mit Einheiten" oder "Zeichenfolge"
lifeCycleState
lifecycleTemplate.name
name
number
orgid
view.identity
partType
Für zugehörige ECN
number
orgid
resolutionDate
Für promote
number
promotionDate
orgid
approvers
approveDates
reviewers
reviewDates
* 
Für Soft-Type-Attribute sind Werte, die an das CAD-Tool gesendet werden, die Anzeigewerte, wie sie auf der Informationsseite des Objekts angezeigt werden. Anzeigewerte verwenden die Einstellungen für die Attributhandhabung und die Typ- und Attributverwaltung, unterstützen jedoch keine komplexen Darstellungsanpassungen mithilfe von Datendienstprogrammen zum Rendern.
Diese Funktion kann nur verwendet werden, wenn kein benutzerdefinierter serverseitiger Delegate CustomModeledAttributesDelegate vorhanden ist, der zum Einfügen von Parametern verwendet werden kann (siehe nächster Abschnitt unten für "Benutzerdefinierter Delegate").
Für das zugeordnete Teil:
Diese Funktion unterstützt Teile, die zu dem CAD-Dokument gehören, mit einem Besitzer, beitragendem Bild, Bild und beitragendem Inhalt.
Die ausgewählte Teileversion ähnelt der Teiletabelle auf der Informationsseite für das CAD-Dokument.
Wenn mehr als eine Revision desselben Teils mit dem CAD-Dokument verknüpft ist, wird die neueste Revision jedes Teils zurückgegeben.
Es kann mehr als ein Teil zurückgegeben werden, wenn das System so konfiguriert ist, dass mehrere Build-Zuordnungen zulässig sind, wobei die serverseitige Einstellung Operation > Automatisch zuordnen > Zulassen, dass ein CAD-Dokument mehrere Teile erstellen kann auf Ja festgelegt sein muss. In diesem Fall werden die Informationen für jedes zugehörige Teil in einem durch Trennzeichen getrennten Format zurückgegeben. Das verwendete Trennzeichen wird durch die serverseitige Einstellung Workgroup Manager Client > Trennzeichen für benutzerdefinierte Systemattribute für mehrere zugehörige Objekte definiert.
Für die zugehörige Änderungsnachricht:
Wenn die Revision des CAD-Dokuments an der Änderungsnachricht als Ergebnisobjekt teilnimmt, werden die Attribute zu der Änderungsnachricht an den CAD-Parameter gesendet.
Wenn die Revision des CAD-Dokuments an mehr als einer Änderungsnachricht teilnimmt, wird das verwendete Trennzeichen durch die serverseitige Einstellung Workgroup Manager Client > Trennzeichen für benutzerdefinierte Systemattribute für mehrere zugehörige Objekte definiert.
Die zurückgewiesenen Änderungsnachrichten werden nicht aufgelistet.
Für den Erhöhungsantrag:
Wenn die Version des CAD-Dokuments am Erhöhungsantrag teilnimmt, werden die Attribute des Erhöhungsantrags an den CAD-Parameter gesendet.
Wenn die Revision des CAD-Dokuments an mehr als einem Erhöhungsantrag teilnimmt, wird das verwendete Trennzeichen durch die serverseitige Einstellung Workgroup Manager Client > Trennzeichen für benutzerdefinierte Systemattribute für mehrere zugehörige Objekte definiert.
Der zurückgewiesene Erhöhungsantrag wird nicht aufgelistet.
Benutzerdefinierter Delegate
Windchill enthält einen serverseitigen Delegate, mit dem beim Herunterladen Parameter in ein Teil einer Entwicklungsanwendung eingefügt werden können. Mit diesem Mechanismus können Informationen vom Server zur Entwicklungsanwendung weitergegeben werden, wo sie dann wie andere Entwicklungsanwendungsparameter verwendet werden können (z.B. zum Platzieren von Informationen in Zeichnungsformularen). Mit PTC oder PROI beginnende Parameter gelten als vom System reservierte Parameter, die nicht durch die Anpassung propagiert werden können. Werden solche Parameter bei der Anpassung hinzugefügt, werden sie vom Herunterladedienst ignoriert.
* 
Wenn Sie das System für die Verwendung eines benutzerdefinierten Delegate konfigurieren, werden die in der serverseitigen Einstellung Workgroup Manager Client > Zuordnung von benutzerdefinierten Systemattributen und Dateieigenschaften definierten Attribute nicht verwendet. Diese Einstellung wird lediglich vom PTC Delegate überprüft.
Die angepassten Parameter werden beim Herunterladen für den Client bereitgestellt und nach einer Windchill Operation wie "Einchecken" in der Sitzung der CAD-Anwendung nicht aktualisiert. Wenn einem angepassten Parameter z.B. der Wert der CAD-Dokumentnummer zugewiesen ist, wird dieser Wert beim Herunterladen für den Client bereitgestellt. Wird das CAD-Dokument später neu nummeriert, wird der Wert in der Sitzung der Entwicklungsanwendung oder dem Client-Cache nicht automatisch aktualisiert. Der Delegate-Mechanismus des Windchill Dienstes wird verwendet, um die Anpassung zu ermöglichen.
Die folgenden Schritte bieten einen Überblick über den Anpassungsprozess:
1. Erstellen Sie eine Java-Klasse, die die Schnittstelle ModeledAttributesDelegate an einem kundenspezifischen Speicherort unabhängig von den PTC Klassen implementiert (z.B. <WT_HOME>\com\acme). Die Schnittstellendefinition lautet folgendermaßen:
package com.acme.download;
import static org.junit.Assert.assertTrue;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import com.ptc.windchill.uwgm.proesrv.c11n.DefaultModeledAttributesDelegate;
import java.util.Iterator;
import wt.epm.EPMDocument;
import wt.fc.collections.WTCollection;
import wt.fc.collections.WTHashSet;
import wt.preference.PreferenceHelper;
import wt.util.WTException;
/**
* When CustomizedModeledAttributesDelegate is configured following modeled attributes would be added to the CAD
* Document, which would be combination of custom CURRENT_DATE parameter along with Parameters configured in mentioned
* preference "Mapping Custom System Attributes and File Properties". For eg.When preference "Mapping Custom System
* Attributes and File Properties" set with value as
* -CREO_PART_REVISION:associatedPart.revision,CREO_PART_VIEW:associatedPart.view.identity,ECN_NUMBER:relatedECN.number
* Modeled attributes on CAD Document would be- CREO_PART_REVISION=A, ECN_NUMBER=00192, CREO_PART_VIEW=Design,
* CURRENT_DATE=2023/10/11 05:07
*/
public class CustomizedModeledAttributesDelegate extends DefaultModeledAttributesDelegate {
private static final String CUSTOM_SYSTEM_PARAMS_PREF = "system.attribute.mapping.custom";
private static final String PROE = "PROE";
private static final String CURRENT_DATE = "CURRENT_DATE";
// getAvailableAttributes() returns
// HashMap<String, Object> which contains
// HashMap<Attribute name, Attribute type> @Override
public HashMap getAvailableAttributes() {
System.out.println(
"Invoked CustomizedModeledAttributesDelegate extends DefaultModeledAttributesDelegate :: getModeledAttributes() :Returning an empty list of modeled Attributes.");
return new HashMap();
}
/**
* Returns a map of modeled attributes for the EPMDocument objects in the provided collection. This method retrieves
* the modeled attributes from the PTC default implementation.
*
* @param collection a collection of EPMDocument objects for which to retrieve the modeled attributes
* @return a map of modeled attributes for the provided EPMDocument objects
* @throws WTException if an exception occurs while retrieving the modeled attributes
*/
@Override
public HashMap getModeledAttributes(
final Collection collection)
throws WTException {
System.out.println(
"Invoked CustomizedModeledAttributesDelegate extends DefaultModeledAttributesDelegate :: getModeledAttributes() ");
String prefValue = (String) PreferenceHelper.service.getValue(CUSTOM_SYSTEM_PARAMS_PREF,
PROE);
System.out.println("CustomizedModeledAttributesDelegate prefValue " + prefValue);
HashMap objVsAttrNameVsValue = new HashMap();
// Fetching only EPMDocuments from input collection.
WTCollection inEPMDocs = new WTHashSet(collection).subCollection(EPMDocument.class);
Iterator persistableIterator = inEPMDocs.persistableIterator();
if (prefValue != null && (!prefValue.isBlank())) {
while (persistableIterator.hasNext()) {
EPMDocument anEPMDoc = (EPMDocument) persistableIterator.next();
objVsAttrNameVsValue = super.getModeledAttributes(collection);
Map<String, String> attrNameVsValueMap = (Map<String, String>)objVsAttrNameVsValue.get(anEPMDoc);
assertTrue(attrNameVsValueMap != null);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm");
LocalDateTime now = LocalDateTime.now();
attrNameVsValueMap.put(CURRENT_DATE, dtf.format(now).toString());
System.out.println("CustomizedModeledAttributesDelegate attrNameVsValueMap " + attrNameVsValueMap);
return objVsAttrNameVsValue;
}
}
System.out
.println("Could not find CustomizedModeledAttributesDelegate extends DefaultModeledAttributesDelegate");
return objVsAttrNameVsValue;
}

} // end class
2. Die von PTC bereitgestellten benutzerdefinierten Systemattribute sind standardmäßig im DefaultModeledAttributesDelegate verfügbar. Die Datei site.xconf (in <Windchill>) kann jedoch so geändert werden, dass sie auf den Anpassungsdienst auf dem Server verweist:
Verwenden Sie den Pfad Ihrer Klasse als Wert von serviceClass (das heißt, ersetzen Sie com.ptc.windchill.uwgm.proesrv.c11n.DefaultModeledAttributesDelegate durch den Pfad Ihrer Klasse). Beispiel:
<Service context="default"
name="com.ptc.windchill.uwgm.proesrv.c11n.ModeledAttributesDele
gate" targetFile=codebase/service.properties">
<Option cardinality="singleton"
requestor="java.lang.Object"
serviceClass="com.acme.download.CustomizedModeledAttributesDelegate"/>
</Service>
Verwenden Sie das Tool xconfmanager, um die Änderungen für die Datei service.properties zu übernehmen (führen Sie xconfmanager -p aus).
3. Starten Sie den Methodenserver neu.
War dies hilfreich?