Prestaciones adicionales de Windchill > Gestión de datos de servicio > Personalización de Windchill Service Information Manager y Windchill Service Parts > Propagación de atributos y persistencia de objetos personalizados al generar estructuras de servicio
  
Propagación de atributos y persistencia de objetos personalizados al generar estructuras de servicio
Durante la generación y regeneración de las estructuras de servicio, el servicio de fábrica NodeResolutionService resuelve los nodos o elementos para su copia, reutilización y eliminación en la estructura generada. Este servicio se puede extender para implementar la lógica personalizada con el fin de propagar valores de atributo y crear objetos personalizados en la estructura de servicio generada o regenerada. Registre el servicio de implementación mediante la utilidad xconfmanager. La resolución del nodo debe completarse después de generar o regenerar una estructura de servicio. Se trata de un requisito previo a la implementación de la personalización que se describe aquí.
Campos
Los siguientes campos se proporcionan en la implementación del servicio de fábrica para permitir el almacenamiento en caché de los objetos personalizados creados o copiados durante la ejecución de cualquier código personalizado, de modo que se puedan almacenar posteriormente como vínculos configurables.
List<WTCollection> customObjects;
Métodos
Utilice los siguientes métodos una vez completada toda la resolución del nodo:
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
Se trata de un método de fábrica que almacena los objetos que se hayan creado para la estructura de servicio fuera de la lógica de fábrica; es decir, los vínculos configurables o cualquier elemento específico de la lógica personalizada. La personalización debería añadir las colecciones al campo de clase List<WTCollection>, con una nueva recopilación añadida a la lista para cada tipo de objeto que se deba almacenar.
/**
* Persists any custom objects created during the generate/regenerate process i.e. configurable links
*
* @throws WTException
*/
void persistCustomCollections() throws WTException;
Métodos de asistente externo
Utilice los siguientes métodos de asistente externos para recuperar los atributos de un objeto y también para definir los atributos en un objeto.
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)