Document number | Revision |
---|---|
DOCU12792 | 1 |
Consolidated Bill of Materials (CBOM)BackgroundFeaturesGuidesAccessing Consolidated Bill of MaterialsLayoutConfigurationDefault configurationConfiguring new profiles<profile> Element<field> ElementSamplesConsolidation with filteringConsolidation with multiple filtersConsolidation with unit of measurementsConsolidation with unit of measurements (using runtime variables)
Highstage enables you to make use of the Consolidated Bill of Materials feature to summarize and calculate various quantities at all levels in a component structure for a manufacturing bill of material report.
In this manner, it is now possible to get a general overview of entire structures as each item appears only once - but includes the total sum of occurrences (regardless of where they occur in the structure) alongside any additional calculated summary of values on each individual component:
In this article, you will learn about all of the capabilities, options and configurations available.
The following capabilities are supported by the consolidation feature:
You can access the consolidated bill of materials from any Document, Part or Device in the following manner:
The following contents are available when accessing a consolidated view:
.iqy
or .xlsx
files).
The following consolidation profile is shipped with Highstage and is available on all Documents, Parts and Devices:
<feature name="consolidated-bom">
<profile name="default" title="Default consolidation" columns="Item;Status;Description;Workspace;ItemType;useStatus;Cost">
<field name="qty" title="Quantity (total)" aggregator="ts_ref.qty">
{result} pcs.
</field>
<field name="cost" title="Cost (total)" aggregator="ts_ref.qty*item.cost" />
</profile>
</feature>
Result:
Any number of profiles can be configured to be readily available for users in Highstage.
The following sample displays all available elements and associated attributes to configure new consolidation profiles:
xxxxxxxxxx
<type name="____">
<feature name="consolidated-bom">
<profile name="___" title="___" columns="___">
<field name="___" title="___" aggregator="___" filter="____" />
</profile>
</feature>
</type>
Elements and Attributes:
Element | Attributes | Description |
---|---|---|
<type> | name | Specific type of items from where the consolidation profile will be available from. |
<feature> | name | Mandatory name to configure new consolidation profiles. |
<profile> | name , title , columns | Individual consolidation profiles. |
<field> | name , title , aggregator , filter | Various consolidated fields to be calculated and displayed in the report associated with each profile. |
Each individual <profile> can include any number of <field> elements.
Attributes:
Name | Description | Mandatory |
---|---|---|
name | Mandatory unique name of the <profile> element. | ✔️ |
title | Displayed title of the profile when selected by user. | ✔️ |
columns | List of item columns to be displayed in consolidation view. | ✔️ |
Each individual <field> element represents a single consolidated quantity to be calculated (based off of item and/or reference columns) and will be available in the report.
Attributes:
Name | Description | Mandatory |
---|---|---|
name | Mandatory unique name of the <field> element. | ✔️ |
title | Title of profile | ✔️ |
aggregator | Define the formula to calculate the consolidated quantity (multiplied item and/or reference columns of numeric types) | ✔️ |
filter | Optional filtering to only consider specific referenced items for consolidation (permitted operations includes = , != , < , > , >= , <= . ).Multiple filters can be specified but requires a ; separation. | ❌ |
This sample illustrates how a cost consolidation can be filtered to only include/calculate costs on components with a usestatus of preferred:
x
<type name="part">
<feature name="consolidated-bom">
<profile name="sample"
title="Sample consolidation"
columns="Item;Status;Description;Workspace;ItemType;useStatus;Cost">
<field name="qty"
title="Quantity (total)"
aggregator="ts_ref.qty">
{result} pcs.
</field>
<field name="cost"
title="Cost (total)"
aggregator="ts_ref.qty*item.cost"
filter="item.usestatus=Preferred">
</field>
</profile>
</feature>
</type>
Resulting in a consolidation where only costs are calculated for components with a usestatus of Preferred:
A consolidation can be filtered using any number of conditions. Each individual criteria must be satisfied for the field to be consolidated.
In this sample we illustrate how a cost consolidation can be filtered to only include/calculate cost on components with the following filters:
Sample:
xxxxxxxxxx
<type name="part">
<feature name="consolidated-bom">
<profile name="sample" title="Sample consolidation" columns="Item;Status;Description;Workspace;ItemType;useStatus;Cost">
<field name="qtytotal" title="Quantity (total)" aggregator="ts_ref.qty">
{result} pcs.
</field>
<field name="costtotal" title="Cost (total)" aggregator="ts_ref.qty*item.cost" />
<field name="qtyfiltered" title="Quantity (filtered)" aggregator="ts_ref.qty" filter="item.cost>0;item.usestatus=Preferred;ts_ref.pos=A">
{result} pcs.
</field>
<field name="costfiltered" title="Cost (filtered)" aggregator="ts_ref.qty*item.cost" filter="item.cost>0;item.usestatus=Preferred;ts_ref.pos=A" />
</profile>
</feature>
</type>
Note: Observe that the
<field>
elements qtytotal and costtotal in the sample consolidates the entire structure whereas the<field>
elementsqtyfiltered
andcostfiltered
only consolidates the components which satisfies the criteria of the defined filters.
Structure:
Results:
Note: Notice how CMPN11688-2 (Component A) is the only component where
Quantity (filtered)
andCost (filtered)
is calculated for one of its occurrences in the structure as it is the only referenced component which satisfies all of the criteria of filtering.
You can define and display appropriate units to each individual <field>
element.
In this sample we illustrate the following:
Sample:
xxxxxxxxxx
<type name="part">
<feature name="consolidated-bom">
<profile name="sample" title="Sample consolidation" columns="Item;Status;Description;Workspace;ItemType;useStatus;Cost">
<field name="qty" title="Quantity (total)" aggregator="ts_ref.qty">
{result} pcs.
</field>
<field name="cost" title="Cost (total)" aggregator="ts_ref.qty*item.cost">
{result} $
</field>
</profile>
</feature>
</type>
Results:
You can define and display appropriate units to each individual <field>
element using runtime variables.
In this sample we illustrate the following:
Component structure:
Sample:
xxxxxxxxxx
<type name="part" dependency="costcurrency">
<feature name="consolidated-bom">
<profile name="sample" title="Sample consolidation" columns="Item;Status;Description;Workspace;ItemType;useStatus;Cost">
<field name="qty" title="Quantity (total)" aggregator="ts_ref.qty">
{result} pcs.
</field>
<field name="cost" title="Cost (total)" aggregator="ts_ref.qty*item.cost">
{result} {item.costcurrency}
</field>
</profile>
</feature>
</type>
Results: