The purpose of this lesson is to introduce you to manufacturing including Production and Libero MRP2.
Manufacturing Primer
Manufacturing Options
Manufacturing Production vs. Libero MRP2
Manufacturing Backflush vs. Issue and Receipt
Phantom Bill of Material
The Product window has a field named Phantom which allows you to identify a Bill of Material (BOM) as being of type phantom. A phantom BOM represents a semi-finished good that can never appear as the produced good on a Production order. Said another way, it is a logical semi-finished good instead of an actual semi-finished good. The purpose of using phantom BOMs is to (a) make your BOM hierarchy more modular, and (b) prevent you from needlessly repeating ourself.
An example of when you would use a phantom BOM:
You have a step in your manufacturing process that is repeated through your procedures.
Example step: glue to pieces of paper together: paper A of qty:1 each, paper B of qty:1 each, glue of qty:0.3 ounces.
You have no desire to force users to create a separate Production order for such a simple step.
You also have no desire to repeat the same BOM details (paper A of qty:1 each, paper B of qty:1 each, glue of qty:0.3 ounces) all throughout your bills of materials.
When iDempiere creates the BOM lines for a Production order and it sees one of the lines is a phantom Product, iDempiere will automatically expand the phantom BOM into its parts directly on the existing Production order without any additional effort from the user.
Changing the contents of a phantom BOM Product allows you to globally change all future Production orders that use this phantom Product without having to change each and every individual Product.
Manufacturing Production Enhancements
Please note the corrections below the video.
Corrections:
iDempiere does have a Sales Order Line create Production process. It was ported from Adaxa's Mfr Light.
2014-10-02 Production Create Finished Good By-Product
Introduction - when your manufacturing process creates more than just your finished good. It also creates secondary or byproduct finished goods (more than one finished goods).
0:01:00 How to update the system to allow for a negative BOMQty
0:01:45 Table showing the product configuration to produce by-products
0:02:45 Review products where the by-product finished good does not have a cost
0:03:15 Review products where the by-product finished good does have a cost
0:03:45 Review cost adjustments for products
0:04:45 Use the Rollup BOM Cost process to establish the finished good cost
0:05:45 Review Production (Single Product) orders and postings for both scenarios
2014-08-19 iDempiere Manufacturing (Production) Improvements Video - with References to Libero
The purpose of this video is to help organize opportunities for improvement in iDempiere's manufacturing. I believe this video does two things:
It outlines the high level process in manufacturing. This will help users who are new to manufacturing concepts.
It highlights some low-effort, high-reward changes to make manufacturing in iDempiere easier. This will help established manufacturing sites better use Production for MRP.
Please understand that I love and believe in iDempiere, and even though this video highlights some of its shortcomings, iDempiere is still a good product. My hope is that this video makes it better.
If you have questions, comments or concerns, or if you find any inaccuracies, please be quick to let me know.
NOTE: the Rollup BOM Cost process "is" now recursive.
Introduction - purpose of today's conversation
Provide tips and recommendations for improvement
Highlighting difference between Production and Libero
0:01:30 Costing in iDempiere
0:02:45 Setting Future cost = Current cost (with explanation of both fields)
NOTE: the Standard Cost Update process will set Future Cost = Current Cost for the "Material" Cost Element; however, it will not set it for other Standard Cost -> Cost Elements like "Labor". I did not take the time to investigate why it only works on "Material" Cost Element.
0:06:00 update Rollup BOM Cost process to take a Costing Method parameter instead of the Cost Element
NOTE/CORRECTION: you can maintain each Cost Element for the "Standard Cost" Costing method; however, you must remember to ALWAYS roll up ALL Standard Cost ->Cost Elements every time. For this reason, the recommendation is still very valid.
0:09:45 Reference Workflow and BOM Rollup process in Libero.
0:10:45 Introduction to the Product.LowLevel field as a way to identify a product's BOM Depth.
0:11:15 Be aware of rolling up BOM Costs for specific Products or Product Categories. You might invalidate your cost structure and introduce manufacturing variances.
0:12:45 Rolling up costs into Future Cost field (not current cost price)
0:13:30 Concept of setting BOM and Workflow formulas vs actuals
0:17:45 (LowLevel) update RollUp BOM Cost process to order the product by LowLevel. Start from the bottom an work your way up.
0:20:00 What is a RollUp BOM Cost process - in general
0:21:30 Update the RollUp BOM Cost to be able to specify which cost I want to use (Future vs Current).
0:24:15 Need Reports to show potential (future vs current) impacts on Inventory Value, Scheduled Orders, etc...
025:30 Run Standard Cost Update to push Future Costs to Current Cost and record Inventory Valuation changes.
0:29:30 Alternative: use a different Cost Type costing record as an alternative to using the Future Cost field.
General Concerns
0:32:30 Only one BOM per Product
0:33:30 Production has no concept of "Prepared"
0:38:30 Replenish process does not iterate across all BOM levels. You must
0:40:30 Production does not have a concept of planning (CRP). Frepple.com - open source MRP scheduling
0:42:30 Inventory Moves have no corresponding Order (as Sales Order is to a Shipment). Libero has a Distribution Order.
0:45:15 The concept of OnOrder and Reserved as an open balance that should be defended by the documents that account for the current totals. (reference - see the "A Better Solution").
0:52:45 I thought you could use the Role window => Doc Action Access tab to enable the "Prepare" option; however, it is already enabled. I will need to investigate further how to show the "Prepare" option for Inventory Move.
0:53:00 Product Info does not show Qty Pending Confirmation. (sorry - Document Type - not status:)
0:55:30 The Production Order does not have a reference to its parent. Out-sourced process 1 (cut fabric) then goes to Out-source process 2 (die fabric), etc...
0:56:45 Add Production Order to the list of Target Document Types for the Order Batch Process. Also add "Replenish or MRP Run" to select which documents to process.
0:59:30 Add Production window -> Reverse Correct button/process.
Production with Mixed Costing Methods - Average PO for Raw Goods and Standard for Finished Goods
Problem Statement
If you have a mixture of products where some use Standard costing (finished goods) and some use Average PO costing (raw goods), establishing a cost for your finished goods is challenging because the iDempiere's Production => Rollup BOM Costs process only rolls up one costing method at a time.
Assumptions
Accounting Schema window => Costing Method field = 'Standard Costing'
You are using GardenWorld Client. Note: additional work needed if using a different client. Worlding could be different as well.
Proposed Solution
Note: there is no guarantee that all costing records will exist for all products. See the section named How to Manually Create Costs to ensure all costing records exist.
Use Standard Cost Update process to set the Standard Cost record for the Products whose Product Category = 'Raw Goods'.
Note: this process should be run on a scheduler where the parameters are defaulted. It is too dangerous for humans to run this process manually. Accidentally choosing the wrong Product Category or Cost Source should have bad consequences.
Note: this document assumes the Standard Cost Update process will set the Standard Cost's 'Material' Cost Element.
Perform Rollup BOM Costs process across all products using 'Standard'
Example
Setup Accounting
Set Accounting Schema window => Standard Costing field = 'Standard Costing'. Restart iDempiere if needed.
Setup Products
Create 'Raw Good' Product Category. Update 'Raw Good' Accounting sub-tab => Costing Method field = 'Average PO'
Create 'Raw Good A' product with Product Category = 'Raw Good'. Give Price sub-tab Price List Version = 'Purchase' and Price = $5 for all prices.
Create 'Raw Good B' product with Product Category = 'Raw Good'. Give Price sub-tab Price List Version = 'Purchase' and Price = $8 for all prices.
Create 'Finished Good' Product with 'Standard' Product Category. Check the Bill of Materials check box. Give Price sub-tab Price List Version = 'Standard' and Price = $55 for all prices.
Create 2 Product window => Bill of Material records for 'Finished Good' Product - one for each Raw Good (BOM Qty = 1).
Create Initial Order and Receipt to establish Costs
Create and Complete Purchase Order to BP = 'Seed Farm' with both raw goods and Qty = 100.
Create and Complete Material Receipt for all lines on the previously created PO.
Confirm there exists a Average PO and a Standard Cost record for both Raw Good A and Raw Good B products.
Update Purchase Price Lists for Products
Update the Product window => Price sub-tab for both raw good products. Raw Good A => 'Purchase' Price List Version => prices fields = $6 (one dollar more). Raw Good B => 'Purchase' Price List Version => prices fields = $9 (one dollar more).
Create new Orders and Receipts to change the Average PO prices for Raw Goods
Create and Complete Purchase Order to BP = 'Seed Farm' with both raw goods and Qty = 100.
Create and Complete Material Receipt for all lines on the previously created PO.
Confirm the 'Average PO' costing record is now greater than the 'Material' costing record.
Update the 'Raw Good' Standard Cost records are now equal to Average PO records
Run the Standard Cost Update process for 'Raw Good' Product Category setting the Standard Cost = 'Average PO'.
Note: you will need to create a Document Type for the process. Since the 'Raw Good' Products use 'Average PO' Costing Method and you are changing the 'Standard Costing' cost records, there is no financial impact (no Posting lines in the resulting Cost Adjustment record).
Confirm the Raw Good products now have a Product window => Cost sub-tab => 'Material' cost record => Current Cost Price field = the 'Average PO' value ($5.50 and $8.50 in this example).
Roll up BOM costs
Execute a Rollup BOM Costs process for 'Finished Good' Product and 'Material' Cost Element. (FYI - the 'Material' Cost Element is of of the many Standard Cost method costs. Other Standard Cost => Cost Elements include Freight, Labor, Overhead, etc…
Verify the 'Finished Good' Product in the Product window => Cost sub-tab => 'Material' record => Current Cost Price = $14
0:14:30 iDempiere Production Order execution (after planning is complete)
Note: there is no concept of an Order for production - Similar to how a PO creates Material Receipts (0:17:30) . How do you create an Order concept in Production (manufacturing)
0:18:30 - how Sandy represent Labor and Overhead (what Sandy calls CMT for contract manufacturers). Used to track Not Invoiced Manufacturing costs.
0:20:30 - consider adding a Document Type to Production (Production Order and Production Receipt)
0:25:30 - how to document changes based on plan - both at the header (change of plan) and at the line (change of efficiency/scrap)
0:30:30 - use this model to Production Order 1M products and Produce X per day (use of Production Receipt Doc Type - from above)
0:32:00 - can you use a Purchase Order as the order?
0:39:00 - which users feel the most pain in the current situation (planner or receiver)
0:41:30 - tie the above scenario to Libero
ACTIONS
Illustrate Adaxa Mfr Light - Parent/Child Production