Creating and Deleting AlternateItemGroup Objects
The Windchill ESI BOM renderer is responsible for determining when AlternateItemGroup objects should be created or deleted. The BOM renderer calls the retrieveBomDifferencesUsingObjComparison() API, which returns a Map holding attribute and link differences information. An array of Maps holding part usage links and the other end objects is then fetched from the said Map and passed to the ESI substitutes renderer. In the substitutes renderer:
• While processing an added substitute, it is checked if an AlternateItemGroup object already exists for the relevant part usage link. If so, the existing object is fetched and used for setting the "AlternateItemGroup" Att of the Substitute Element. If not, a new AlternateItemGroup object is created and used.
• While processing a deleted substitute, it is checked if an AlternateItemGroup object already exists for the usage link. If so, the existing object is fetched and used for setting the "AlternateItemGroup" Att of the Substitute Element. Otherwise, a new AlternateItemGroup object is created and used.
The ESI BOM component renderer is then invoked, passing in the substitutes information that was gathered from the substitutes renderer. In this renderer:
• While processing an added substitute, it is checked if an AlternateItemGroup object already exists for the relevant part usage link. If so (which will be the case), the existing object is fetched and used for setting the "AlternateItemGroup" Att of the Substitute Element.
• While processing a deleted substitute, it is checked if an AlternateItemGroup object already exists for the usage link. If so, the existing object is fetched and used for setting the "AlternateItemGroup" Att of the Substitute Element. Otherwise, a new AlternateItemGroup object is created and used.
Existing AlternateItemGroup objects for a product structure are cloned when the PartUsageLink objects are copied at checkin or checkout. The StandardESIService registers its interest in the COPY_LINK event. When a WTPart is created, the StandardESIService asks the AlternateItemGroupMgr to create new AlternateItemGroup objects on the new part object.
Alternate item group support is optional. If the Windchill ESI preference, Enable Alternate Item Group is not set to Yes, the Windchill ESI Alternate Item Group features are not available. The default value for the preference is true.