Zusätzliche Funktionen von Windchill > Serviceinformationsverwaltung > Windchill Service Information Manager und Windchill Service Parts anpassen > Attributübertragung und benutzerdefinierte Objektpersistenz beim Generieren von Servicestrukturen
Attributübertragung und benutzerdefinierte Objektpersistenz beim Generieren von Servicestrukturen
Während der Generierung und Neugenerierung von Servicestrukturen löst der OOTB-Service NodeResolutionService die Knoten oder Elemente zum Kopieren, Wiederverwenden und Entfernen in der generierten Struktur. Sie können diesen Service erweitern, um die benutzerdefinierte Logik zu implementieren und so Attributwerte zu übertragen und benutzerdefinierte Objekte in der generierten oder regenerierten Servicestruktur zu erstellen. Registrieren Sie den Implementierungsservice mithilfe des Dienstprogramms "xconfmanager". Der Abschluss der Knotenlösung nach dem Generieren oder Regenerieren einer Servicestruktur ist eine Voraussetzung für die Implementierung der Anpassung, die hier beschrieben wird.
Felder
Die folgenden Felder werden in der OOTB-Serviceimplementierung bereitgestellt, um das Zwischenspeichern von benutzerdefinierten Objekten zuzulassen, die während der Ausführung von benutzerdefiniertem Code erzeugt oder kopiert werden, damit sie später als konfigurierbare Links persistent gemacht werden können.
List<WTCollection> customObjects;
Methoden
Verwenden Sie die folgenden Methoden, sobald die gesamte Knotenlösung abgeschlossen ist:
postGenerate
/**
* Copy forward any attributes from the originals to their copies
*
* @param originalsToCopies An array of CopyObjectInfo objects containing the originals and copied objects
*/
void postGenerate(CopyObjectInfo[] originalsToCopies);
persistCustomCollections
Dies ist eine OOTB-Methode, die alle Objekte, die für die Servicestruktur außerhalb der OOTB-Logik erstellt wurden (d.h. konfigurierbare Links), oder alle für die benutzerdefinierte Logik spezifischen Objekte persistent macht. Die Anpassung sollte die Sammlungen dem Klassenfeld List<WTCollection> hinzufügen, mit einer neuen zur Liste hinzugefügten Sammlung für jeden Objekttyp, der persistent gemacht werden muss.
/**
* Persists any custom objects created during the generate/regenerate process i.e. configurable links
*
* @throws WTException
*/
void persistCustomCollections() throws WTException;
Externe Methoden des Hilfe-Assistenten
Verwenden Sie die folgenden externen Methoden des Hilfe-Assistenten, um Attribute für ein Objekt abzurufen und Attribute für ein Objekt festzulegen.
getAttributesFromPersistables
/**
* Retrieves the list of attribute values from passed in persistables
*
* @param objToattrNames Map with key as the persistable object to
* retrieve the values from and values as the list of attributes to
* attempt to retrieve the value for.
* @return A map containing the attribute and the attribute value
* retrieved from each passed in persistable
* @throws WTException
*/
public static WTKeyedMap getAttributesFromPersistables(
WTKeyedMap objToattrNames)
throws WTException
setAttributesOnPersistables
/**
* Sets the specified attributes with the specified values on the
* collection of specified objects assuming all target objects are
* checked in.
*
* @param updateTargets A map of persistable keys mapped to a map
* containing attribute name and attribute value pairs
* @param persist boolean to specify if the updated persistables
* should be persisted once the update has been processed
* @throws WTException
*/
SisCoreHelper.setAttributesOnPersistables(Map<Persistable, Map<String, Object>> updateTargets)
War dies hilfreich?