Ayuda del usuario de Windchill+ > Prestaciones adicionales > 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. 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í. Para obtener más información, consulte Personalización del hook para generar o regenerar una nueva estructura de servicio.
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)
¿Fue esto útil?