Simple Bill of Materials example showing how a bagel is made from 3 materials
The one bom example shows how the solver is able to simulate a manufacturing activity, like making a bagel. A BOM, or a bill of material, is basically just a recipe that shows the inputs and outputs of a manufacturing activity.
In this example the bagel has 3 inputs:
Is this a good bagel recipe? Probably not, but it is a good simple example of BOM planning.
| bom_id | location | lead_time_days |
|---|---|---|
| 1 | factory_1 | 5 |
| 2 | factory_1 | 10 |
| bom_id | input_item | input_qty |
|---|---|---|
| 1 | water | 1.0 |
| 1 | flour | 2.0 |
| 1 | yeast | 0.5 |
| bom_id | output_item | output_qty |
|---|---|---|
| 1 | bagel | 1 |
| location | item | need_date | demand_qty |
|---|---|---|---|
| store_1 | bagel | 5/30/2024 | 1 |
| item | location | genesis | image |
|---|---|---|---|
| water | supplier_1 | True | water.png |
| water | factory_1 | False | water.png |
| flour | supplier_1 | True | flour.png |
| flour | factory_1 | False | flour.png |
| yeast | supplier_2 | True | yeast.png |
| yeast | factory_1 | False | yeast.png |
| bagel | factory_1 | False | bagel.png |
| bagel | store_1 | False | bagel.png |
| item | from_location | to_location | lead_time_days |
|---|---|---|---|
| bagel | factory_1 | store_1 | 5 |
| water | supplier_1 | factory_1 | 8 |
| flour | supplier_1 | factory_1 | 8 |
| yeast | supplier_2 | factory_1 | 8 |
| item | location | activity | activity_date | pegged_qty | demand_key |
|---|---|---|---|---|---|
| water | supplier_1 | 0_item_genesis | 2024-05-12 | 1.0 | 0 |
| flour | supplier_1 | 0_item_genesis | 2024-05-12 | 2.0 | 0 |
| water | supplier_1 | 7_shipment_from | 2024-05-12 | 1.0 | 0 |
| flour | supplier_1 | 7_shipment_from | 2024-05-12 | 2.0 | 0 |
| yeast | supplier_2 | 0_item_genesis | 2024-05-12 | 0.5 | 0 |
| yeast | supplier_2 | 7_shipment_from | 2024-05-12 | 0.5 | 0 |
| water | factory_1 | 2_shipment_to | 2024-05-20 | 1.0 | 0 |
| flour | factory_1 | 2_shipment_to | 2024-05-20 | 2.0 | 0 |
| yeast | factory_1 | 2_shipment_to | 2024-05-20 | 0.5 | 0 |
| water | factory_1 | 6_BOM_input | 2024-05-20 | 1.0 | 0 |
| flour | factory_1 | 6_BOM_input | 2024-05-20 | 2.0 | 0 |
| yeast | factory_1 | 6_BOM_input | 2024-05-20 | 0.5 | 0 |
| bagel | factory_1 | 3_BOM_output | 2024-05-25 | 1.0 | 0 |
| bagel | factory_1 | 7_shipment_from | 2024-05-25 | 1.0 | 0 |
| bagel | store_1 | 2_shipment_to | 2024-05-30 | 1.0 | 0 |
| level | from_location | to_location | item | ship_date | arrival_date | shipment_qty | demand_key |
|---|---|---|---|---|---|---|---|
| 1 | factory_1 | store_1 | bagel | 2024-05-25 | 2024-05-30 | 1.0 | 0 |
| 4 | supplier_2 | factory_1 | yeast | 2024-05-12 | 2024-05-20 | 0.5 | 0 |
| 7 | supplier_1 | factory_1 | flour | 2024-05-12 | 2024-05-20 | 2.0 | 0 |
| 10 | supplier_1 | factory_1 | water | 2024-05-12 | 2024-05-20 | 1.0 | 0 |
Loading Supply Chain Network from Files Running obo Solver ***Starting to plan for demand key 0*** At store_1: Searching inventory for 1 of bagel At store_1: No inventory for bagel At store_1: Searching BodEdge bagel-factory_1 to bagel-store_1 --At factory_1: Searching inventory for 1 of bagel --At factory_1: No inventory for bagel --At factory_1: Searching BomOutputEdge BOM-1 to bagel-factory_1 ----At BOM 1 input 1/3: Searching for 1.0 of water ------At factory_1: Searching inventory for 1.0 of water ------At factory_1: No inventory for water ------At factory_1: Searching BodEdge water-supplier_1 to water-factory_1 --------At supplier_1: Genesis Node for water. All 1.0 need satisfied ------At factory_1: Found all supply. Done searching edges of water-factory_1 ----At BOM 1 input 1/3: Found all supply for water ----At BOM 1 input 2/3: Searching for 2.0 of flour ------At factory_1: Searching inventory for 2.0 of flour ------At factory_1: No inventory for flour ------At factory_1: Searching BodEdge flour-supplier_1 to flour-factory_1 --------At supplier_1: Genesis Node for flour. All 2.0 need satisfied ------At factory_1: Found all supply. Done searching edges of flour-factory_1 ----At BOM 1 input 2/3: Found all supply for flour ----At BOM 1 input 3/3: Searching for 0.5 of yeast ------At factory_1: Searching inventory for 0.5 of yeast ------At factory_1: No inventory for yeast ------At factory_1: Searching BodEdge yeast-supplier_2 to yeast-factory_1 --------At supplier_2: Genesis Node for yeast. All 0.5 need satisfied ------At factory_1: Found all supply. Done searching edges of yeast-factory_1 ----At BOM 1 input 3/3: Found all supply for yeast --At factory_1: Found all supply. Done searching edges of bagel-factory_1 At store_1: Found all supply. Done searching edges of bagel-store_1 ***Found 100.00% supply for demand key 0*** Solver complete. Writing output
Created by Bill Ulrich
See the About page for more details