Advanced Customization > Business Logic Customization > Customizing Business Logic > Customizing a Bill of Materials > Customizing Existing Reports
  
Customizing Existing Reports
Global attributes on parts are displayed in the BOM reports automatically using the table view, but global attributes on part usage links cannot be displayed automatically. The global attributes on the part usage link are shown in the list of available columns, but to get the actual value to display, the corresponding report configuration class needs to be extended to indicate the specific global attributes from the part usage link to display.
As an example, if a global attribute "LinkName" was added to part usage link, the values of that attribute can be displayed in the Multi-level BOM Report by
1. Creating an extension of the MultiLevelBOMReportTreeBuilder class similar to the following
@ComponentBuilder("part.report.multiLevelBOM")
public class MultiLevelBOMReportTreeBuilderCustomAtts extends MultiLevelBOMReportTreeBuilder {

@Override
public ComponentConfig buildComponentConfig(ComponentParams params)
throws WTException {
ComponentConfig tableConfig = super.buildComponentConfig(params);
ComponentConfigFactory factory = getComponentConfigFactory();

String columnLabel = "Custom column name";
ColumnConfig col = factory.newColumnConfig("IBA|LinkName", columnLabel, true);
col.setDataUtilityId("part.report.numberText");
col.setTargetObject("link");

tableConfig.addComponent(col);

return tableConfig;
}

}
2. Register the custom ComponentBuilder in the <Windchill>/codebase/config/mvc/PartReport-configs.xml file
Add the line
<bean class="custom.MultiLevelBOMReportTreeBuilderCustomAtts"/>
And remove the line
<bean class="com.ptc.windchill.enterprise.part.reports.mvc.builders.MultiLevelBOMReportTreeBuilder"/>
3. Set up a custom table view with that column as one of the selected columns.