• Home
  • About Me
  • Contact Me
  • Downloads
  • White Papers
  • Web Sites
  • Post List
  • Articles
  • FAQ

Olof Simren - Microsoft Dynamics NAV & 365 Business Central Blog

  • Home
  • About Me
  • Contact Me
  • Downloads
  • White Papers
  • Web Sites
  • Post List
  • Articles
  • FAQ

The Low-Level Code

June 4, 2014 Posted by Olof Simren Inventory, Manufacturing 7 Comments

Do you know what the low-level code in Microsoft Dynamics NAV is used for? And do you know how it is maintained? The low-level codes are critical for Dynamics NAV to function properly in a manufacturing environment where material planning takes place (which is in 9 out of 10 places). In addition to this, the cost adjustments in Dynamics NAV are also using the low-level codes.

The low-level code is a field in the item table that represents the items lowest level of usage in the production BOM or assembly BOM structures. It is used internally by Dynamics NAV to determine the sequence in which the materials are planned during the MRP run and the sequence in which the items costs are adjusted. Dynamics NAV plans the items with the low-level code of 0 first and then those with a low-level code of 1 and so on. The lower the code is the higher the item is in the product structures, 0 being a top level item. For the cost adjustment, NAV starts with the lowest level items and work its way up.

Below is an illustration of how the low-level codes relates to the explosion levels of the BOMs (which is in same cases not the same). Two finished products (FIN-01 and FIN-02) are sharing a subassembly (SA-02). The shared subassembly is in both level 1 and 2 in the BOM explosion of the two products. When the low-level code is calculated the subassembly SA-02 and its components are assigned the lowest level cross all the BOMs. This since SA-01 creates a demand for SA-02 and therefore needs to be planned first before the SA-02 is planned.

Low-Level-Code-Calculation-Planning-Dynamics-NAV

The low-level codes in Dynamics NAV can be calculated either automatically (called Dynamic Low-Level Code) or by running a batch job (called Calculate Low-Level Code).

Dynamic Low-Level Code

The dynamic low-level code is something that is activated by a checkbox in the Manufacturing Setup table.

Dynamic-Low-Level-Code-Dynamics-NAV

When using the dynamic low level code functionality Dynamics NAV updates the codes in the item table each time a production BOM is certified or added to an item. The dynamic low-level code could have an effect on the performance of the certification process. I have seen Dynamics NAV solutions with so many production BOMs and items (> 100.000) that it was not possible to use the dynamic low-level code. Another reason to turn this off is when you migrate production BOMs into Dynamics NAV, instead of having the low-level codes to be calculated for each of the production BOM that is certified it is much quicker to certify them all without the dynamic low-level code and then afterwards run the batch job described below.

Calculate Dynamic Low-Level Code

This is a batch job that runs through all the items and calculates the low-level codes.

Calculate-Low-Level-Code-Dynamics-NAV

Even if you have the dynamic low-level code activated it is recommended that you run this batch job from time to time, especially if you are making lots of changes to production BOMs on a daily basis.

I always recommend that you run this before you run any MRP job. The reason for this is that the dynamic low level code functionality in Dynamics NAV is not completely accurate; if you for example delete a production BOM the low-level codes of the components are not recalculated. If you run your MRP or the cost adjustments as scheduled activities, then just schedule this batch job to run before and you should be fine.

Planning Worksheet

The one place where you can see and use the low-level code as a user is in the planning worksheet. This can be used by the planner to know what items that potentially can be affected by a change to a suggestion. If you for example increase a quantity for an item with a low-level code as 2, then you know that items with low-level codes being 0 and 1 will not be effected but lower level items might be since the demand for those just increased.

Planning-Worksheet-Dynamics-NAV

Share this:

  • Click to share on Facebook (Opens in new window) Facebook
  • Click to share on X (Opens in new window) X

Related


Discover more from Olof Simren - Microsoft Dynamics NAV & 365 Business Central Blog

Subscribe to get the latest posts sent to your email.

Tags: Assembly BOMCost AdjustmentCostsLow-Level CodeMRPPlanningProductionProduction BOM
7 Comments
Share
8

About Olof Simren

I am a Microsoft Dynamics NAV and 365 Business Central Expert, I started implementing Microsoft Dynamics NAV in 2002, back then it was called Navision Attain. Throughout the years there has been many exciting implementations in different parts of the world, all of them with different challenges but with one common theme; manufacturing. As a consultant, I bring over 20 years of experience in implementing Microsoft Dynamics NAV and 365 Business Central within manufacturing and distribution companies. The services I offer includes project management, consultation, development and training. Feel free to contact me if you need help with anything related to Microsoft Dynamics NAV or 365 Business Central. I work through my company Naviona where I team up with other skilled Microsoft Dynamics NAV and 365 Business Central Experts.

You also might be interested in

Custom Progress Bar in Dynamics NAV 2013 R2

May 6, 2014

Here is an example of how you can create a[...]

Assembly Order Posting to General Ledger

Jul 20, 2015

I have previously described how production orders are posting into[...]

Inventory With Zero Value

Mar 20, 2014

Dynamics NAV has an ‘Inventory Value Zero’ field in the[...]

7 Comments

Leave your reply.
  • Steve Pena
    · Reply

    October 17, 2016 at 2:47 PM

    Hi Olef,

    I have an item with a low-level code of 2 (wheel). When the corresponding 0 item (bike) is on a firm planned production order, I run the Planning Worksheet, and the production order suggestion for the item with low level code 2 (wheel) comes out perfectly.

    However, we have a situation where the wheel can be placed directly on a sales order. Furthermore, the wheel can be on a sales order and a firm planned production order at the same time. I run MPS and get a production order suggestion to make a wheel and accept the suggestion.

    At this point, I have a firm planned production order for a bike and a wheel. I have no inventory for the wheel or bike. However, when I run MRP, I don’t get any suggestions for the wheel.

    In conclusion, it seems that when an item with a low level code of 2 is the top level item on one production order, as well a subassembly for a different production order for the 0 item, there are no production order suggestions created for the level 2 item. Do you know why this is happening?

    The wheel in question have replenishment system = production order. Manufacturing Policy = Make to Stock. Reordering Policy = Lot for Lot.

    Thanks,

    Steve

    • Olof Simren
      · Reply

      Author
      October 19, 2016 at 8:31 PM

      Hi Steve,
      Don’t know, seems wrong. Have you tried to see what happens if you run mps and mrp together?

      /Olof

      • Steve Pena
        · Reply

        October 27, 2016 at 12:41 AM

        Hi Olof,

        Thanks for the reply. That seems to have taken care of the issue I was experiencing.

        Thanks!

        Steve

  • Magno
    · Reply

    March 24, 2017 at 7:34 AM

    Hi Olof,

    How do you do?

    When we don’t have any records at production BOM table, how can I know the low-level?

    For example, if I know my last level, I could do an logaritm with the inverted logic. However, this logaritm doesn’t check the production BOM table, but consumptions about the source (my last level, RAW01, RAW02, RAW03, RAW04). This process must be repeated level by level and fisnish when I won’t have more comsuptions.

    Thanks,

    Magno

    • Olof Simren
      · Reply

      Author
      March 25, 2017 at 6:48 PM

      Hi Magno,
      Thank you for your comment.
      I am not sure I completely understand your question.
      If you don’t have any production BOMs (and I assume assembly BOMs) then there will be no MRP or cost rolls that includes components, so the low level codes are not being used.
      If you don’t have any BOMs but create production orders and add components ‘on the fly’ during consumption then I guess you could do a custom function to calculate something like a low level code if it is needed for something, this function could then use the item ledger entries to calculate it.
      Did this help? Or your question is about something else?

      /Olof

      • Magno
        · Reply

        March 27, 2017 at 4:11 AM

        Good morning Olof,

        Yes, that’s it!
        I’ll need a custom fuction to calculate it.
        When I’ll have the “real” low level codes, I’ll draw an illustration of how the low-level codes relates to the comsuptions.

        Thanks,

        Magno

  • Manish Malode
    · Reply

    January 2, 2019 at 5:32 AM

    Hello Olof,

    I have a client where we have done integration between their design software with Bill of material is Navision.
    The BOM is multi-level and runs in to 10 levels.With engineering changes a lot of BOM changes and data flows from design software to Navision.Hence Dynamics Low level code is kept false.
    The current BOM line database count is 40 Lacs(4 Million).

    Here we have a problem where low level code calculation batch job gets stucks and the code runs in to loop because of circularity ,but i am unable to find that since the database is huge. Do you suggest any method to check the data ?

Leave a Reply

Your email is safe with us.
Cancel Reply

My Dynamics NAV Partner

Naviona, LLC

Developers Wanted

Naviona is looking for NAV/BC developers. Let me know if you want to work with the best (instead of the rest :-)).

Categories

  • Assembly (3)
  • Development (31)
  • Finance (14)
  • General (26)
  • Inventory (22)
  • Manufacturing (34)
  • Miscellaneous (25)
  • Purchase (9)
  • Sales (11)
  • Warehouse (7)

Tags

.net Add-in Assembly Assembly BOM CAL Capacity Components Consumption Contact Costs Customer Development Dimensions Excel Finance Flushing General Ledger Inventory Item Items Lot Size Low-Level Code MRP NAV 2015 NAV 2016 Output PDF Planning Production Production BOM Production Orders Purchase Orders Receipts Reporting Reports Role Center Routing Sales Sales Order Sales Orders Stockkeeping Unit Subcontracting Task List Warehouse Warehouse Shipment

Recent Posts

  • XML Buffer and CSV Buffer Tables
  • Functionality Improvements in NAV 2017
  • Reversing Production Output and Consumption
  • Return Merchandise Authorization (RMA)
  • Sales Quote without Customer
  • Parallel Routings
  • Add Fields to the Item Tracking Lines
  • Field Level Security using Events in Dynamics NAV 2016
  • Schedule MRP
  • Activate WMS Functionality for Existing Location

Categories

  • Assembly
  • Development
  • Finance
  • General
  • Inventory
  • Manufacturing
  • Miscellaneous
  • Purchase
  • Sales
  • Warehouse

Contact Us

We're currently offline. Send us an email and we'll get back to you, asap.

Send Message

Categories

  • Assembly (3)
  • Development (31)
  • Finance (14)
  • General (26)
  • Inventory (22)
  • Manufacturing (34)
  • Miscellaneous (25)
  • Purchase (9)
  • Sales (11)
  • Warehouse (7)

Tags

.net Add-in Assembly Assembly BOM CAL Capacity Components Consumption Contact Costs Customer Development Dimensions Excel Finance Flushing General Ledger Inventory Item Items Lot Size Low-Level Code MRP NAV 2015 NAV 2016 Output PDF Planning Production Production BOM Production Orders Purchase Orders Receipts Reporting Reports Role Center Routing Sales Sales Order Sales Orders Stockkeeping Unit Subcontracting Task List Warehouse Warehouse Shipment

Recent Posts

  • XML Buffer and CSV Buffer Tables
  • Functionality Improvements in NAV 2017
  • Reversing Production Output and Consumption
  • Return Merchandise Authorization (RMA)
  • Sales Quote without Customer
  • Parallel Routings
  • Add Fields to the Item Tracking Lines
  • Field Level Security using Events in Dynamics NAV 2016
  • Schedule MRP
  • Activate WMS Functionality for Existing Location

Recent Comments

  • Isabel de los Santos on Production Lot Sizes
  • Abdelatif EL HANI on Reversing Production Output and Consumption
  • Roshan on Processing of Receipts
  • kuldeep Nama on Subcontracting Part 1: The Basics
  • Janine on Flushing Methods
  • Nathalie on Activate WMS Functionality for Existing Location
  • Georges W on Bill-to vs. Sell-to Customer
  • Richard L on Subcontracting Part 4: Warehouse Receipts

© 2025 · Olof Simren

  • Home
  • About Me
  • Contact Me
  • Downloads
  • White Papers
  • Web Sites
  • Post List
  • Articles
  • FAQ
Prev Next