The Bill of Materials is the most fundamental part of any PLM solution. Therefore, when designed OpenBOM, we paid special attention to how to create a model to hold product data (Bill of Materials) and to make it flexible and extendible.
The data management architecture of OpenBOM is built using flexible data objects holding different data objects. These data objects are flexible and generic. OpenBOM provides predefined five data objects – Catalog, BOM, Vendor, Order BOM, and Purchase Order. The relationships between them create a logical data model supporting OpenBOM out of the box functions. However, objects and relationships can be extended. OpenBOM is using flexible real-time data schemas that can be configured at any moment of time by administrators and users.
In this article, I will give you five easy steps to understand the OpenBOM data model.
1- Item Database
The foundation of all data in OpenBOM is a database of all item objects. The items are representing anything in your product (or what you need to build your product). Engineering items, Standard items, Purchased Items, etc. The classification of items is modeled by managing different catalogs. Each catalog can have a different set of attributes and so you create these catalogs and store data about items in these catalogs.
A typical catalog in OpenBOM holds Part Number, Description, Cost, Unit of Measures, and Quantity on Hand properties. You can add more properties. This is an important part of data modeling – add information to the catalog. You can always extend it using the manual entry of automatic import and merge.
Tip: The easiest way to create a catalog is to use the “Create Catalog” command. An alternative option is to import a catalog from Excel (or Google Spreadsheet).
2- Bill of Materials
BOM holds information about relationships about items. The simplest BOM is a list of items, which defines “one level” BOM. You can create it manually or import BOM from Excel or Google Sheet. It is important to understand the parent-child relationship. For the simplest BOM, the parent-child relationships are between the BOM (Item) and each item in this BOM.
Tip: The easiest way to create a BOM is to click on item in the catalog and then “OpenBOM Item’s BOM”. If BOM is available, it will be open, otherwise, you will be able to create a new one.
3- Reference-Instance relationships
Each item defined in the catalog can be used (instantiated) in many BOMs. OpenBOM holds the relationship and by doing so allows to BOM always to have an access to the most updated item record. This relationship is dynamically set using Part and Catalogs command in BOM, which is super flexible as you can change it on the fly and see multiple item options.
Tip: You can see how powerful reference-instance dynamic relationships in OpenBOM by switching between 2 catalogs (prototype and production) and seeing how BOM cost calculation is changing on the fly.
4- Product Structure
A set of parent-child relationships is creating a product structure in OpenBOM. The product structure is dynamically visualized form multiple single-level BOMs, which can be edited together and independently. OpenBOM will manage these relationships automatically. To access it, you need to switch between “single-level” and multi-level BOMs in BOM user interface.
Tip: To explore product structure, open the top-level Bil of materials, and switch to Multi-level. You will be able to drill-down to the assembly levels. OpenBOM will visualize it in the indented form in the user interface.
5- BOM types (multi-level, single-level, flattened)
There are three specific BOM types automatically supported by OpenBOM ( single-level, multi-level, and flattened). The single-level presents items of the specific assembly (BOM) with the part number. The multi-level allows you to drill down. Flattened is a quantity rollup from the selected top-level assembly (BOM) down.
Tip: it is easy to understand BOM types by switching between muti-level and flattened. When you do so, OpenBOM calculates the quantity rollup.
The OpenBOM data model is easy to understand. Once you’ve got the foundation – items and BOM, parent-child relationships, and different BOM types, you can build any data model to support your engineering and product development functions.
Best, Oleg @ openbom dot com.