其他 Windchill 功能 > 服務資訊管理 > Customizing Windchill Service Information Manager and Windchill Service Parts (自訂 Windchill Service Information Manager and Windchill Service Parts) > 產生服務結構時,屬性傳播與自訂物件持續性
  
產生服務結構時,屬性傳播與自訂物件持續性
產生及再生服務結構期間,OOTB 服務 NodeResolutionService 會解析節點或元素,以在產生的結構中複製、重新使用及移除。您可以延伸此服務來實行您的自訂邏輯,從而在產生或再生的服務結構中傳播屬性值並建立自訂物件。使用 xconfmanager 公用程式註冊實行服務。產生或再生服務結構之後完成節點解析是實行此處所述自訂的先決條件。
欄位
OOTB 服務實行中提供下列欄位,可讓您快取執行任何自訂程式碼期間建立或複製的自訂物件,使其可於稍後作為可供配置的連結持續存在。
List<WTCollection> customObjects;
方法
完成所有節點解析之後,請使用下列方法︰
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
此 OOTB 方法可使得在 OOTB 邏輯 (即可供配置連結或自訂邏輯特有的任何物件) 之外針對服務結構建立的任何物件持續存在。自訂應將集合新增至類別欄位 List<WTCollection>,且包含針對需要持續存在的每個物件類型新增至清單的新集合。
/**
* Persists any custom objects created during the generate/regenerate process i.e. configurable links
*
* @throws WTException
*/
void persistCustomCollections() throws WTException;
外部 Helper 方法
使用下列外部 Helper 方法擷取物件的屬性,同時針對物件設定屬性。
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)