VDB Builder
The term VDB Builder refers to a set of ESI Open APIs that build (or populate) the Info*Engine VDB upon releasing a given business object. Invoking these APIs results in an Info*Engine collection that represents the data being exported. The resulting I*E collection is converted to XML form using the to XML API of Info*Engine, which constitutes the ESI response message.
The following figure shows the objects of interest to Windchill ESI services.
A VDB contains zero or more group objects.
The Info*Engine API toXML converts a VDB to XML using the following rules:
• The VDB is used to create an XML document fragment. The root element of the fragment is always <COLLECTION>.
• Each Group object generates an XML element that is an immediate child of the root element. The name given to the XML element is the value of the className attribute of the group object.
• The group objects appear in the XML document in the order that they were added to the VDB.
• Each Info*Engine element object creates an XML element that is an immediate child of the XML element for the group object that contains the Info*Engine element object.
• Info*Engine objects allow you to set metadata information. If the element object metadata name, com.infoengine.xml.esi has a value, that is the name given to the XML element that represents the Info*Engine element object. If the metadata value was not set, the XML element is always <INSTANCE>.
• Each Att object can have zero or more values. Each value causes an XML element to be added as an immediate child of the XML element that describes the Info*Engine element object. The XML element for the att value has the same name as the Att object’s name attribute.
The Windchill ESI VDB Builder is a set of classes that collaborate to enable ESI to build complex VDB structures that would otherwise be unwieldy to build.
These are some things you might decide to customize:
• Apply filtering logic to the objects that are passed as arguments to the various addElement() methods of the VdbBuilder implementation
• Provide additional processing to modify the values that are passed to the various addElement() methods of the VdbBuilder implementation
Such customizations could be made by creating a subclass of VdbBuilderImpl and overriding the desired methods. The subclass need not be modeled using the Windchill Information Modeler.