What are Low-Level Codes and why does it take so long to Regenerate MRP?

Posted on: January 19, 2010 | By: SuperUser Account | QAD Business Process

You may have noticed when you run MRP that you get one of the following messages:
• Initializing low level codes
• Updating item low-level codes

Low Level codes are used to assure that items are being planned in the proper sequence and that demands are not being passed to items that have already been planned. MFG/Pro sets the Low Level codes as “0” being the lowest level in the chain (Purchased Item), and negative values for each component level above (-1, -2, -3, etc…).


Parent item “A” is made from component “B” and component “B” is made from component “C”. Our product structure would appear as:


In this case, if this was our only product, “A” would have a Low Level code of “-2”, “B” a Low Level code of “-1” and “C” a Low Level code of “0”. In a more realistic environment, there would be many items. A single component could be associated with several upper level structures, and the component could be found at various levels throughout these structures.

The system identifies and associates the lowest level where an item is used in the product chain. MRP then employs this logic to determine the proper time to plan the item so all demands are passed correctly.

Low Level code updates calculate automatically when running the following programs:

23.1 Net Change Materials Plan (mrmpnc.p)
23.2 Regenerate Materials Plan (mrmpup.p)
12.13.1 Net Change Distribution Plan (drmpnc.p)
12.13.2 Regenerative Distribution Plan (drmpup.p)

It is elective functionality when running:

23.3 Selective Materials Plan (mrmprc.p)
12.13.3 Selective Distribution Plan (drmprc.p)

Low Level Codes can also be calculated using:

36.25.3 Low-Level Code Update (utllup.p)
23.22 Low Level Code Update (mrllup01.p)
12.13.22 Low Level Code Update (mrllup01.p)

In MFG/PRO an item’s low level code (in_level) is set to a value of 99999 when the item is added/modified in the system (1.4.1 Item Master Maintenance (ppptmt.p)), or when the item is used/modified in 13.5 Product Structure Maintenance (bmpsmt.p), when a new Inventory Master (in_mstr) is created by the system such as in 22.1 Forecast Maintenance (fcfsmt01.p), or when 23.22 Low Level Code Update (mrllup01.p) is run

When the output from MRP/DRP runs, the low level code will be listed as 99999 if unresolved and should be researched for conflicts. Since MRP/DRP runs are usually outputted to a devnull file (trash), the output is never reviewed. In this case, another indicator that the low level code has not been resolved would be the MRP Required (in_mrp) flag remains at “yes”, and the part is unplanned.

In large environments, this may go unrecognized, and could be a potential area of concern. A possible solution (coupled with month end activities) could be to perform a search of the Inventory Master (in_mstr) where Level’s (in_level) are > 0 immediately after a full MRP/DRP regen. Should any exist, they should be reviewed and any problems resolved.

2020 Nucleus Research Report on ERP Technology

Free Download:

2020 Nucleus Research Report on ERP Technology

Download the guide ›