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

Olof Simren - Microsoft Dynamics 365 Business Central Blog

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

Posting of Actual and Expected Production Time

August 25, 2015 Posted by Olof Simren Manufacturing 8 Comments

When implementing Microsoft Dynamics NAV in a manufacturing environment this question is always discussed; should the time posted against production orders be according to the expected values (e.g. the setup and run times in the routings, sometimes also referred to as nominal values) or should it be according to the actual time (entered by a user)? In my mind the answer to this should be driven by business requirements and should not be determined by the functionality available in a software (just like many other things when it comes to implementing an ERP system).

My experience is that 3 out of 4 companies prefers to use the expected values and not the actual values. Most of the time the argument against using actual times are that it would be hard to capture it in a way that you can rely on the information (and base your financials on it). Things like operators that are running multiple jobs on different machines at the same time (for example) could complicate capturing how much time that are actually spent on the different operations for each of the jobs. It does not have to be one or the other either, maybe some types of operations/machines are posted with the expected values while other type of operations are being posted with the actual values.

Companies that choose to use the expected values then instead have procedures in place that keeps the expected values as accurate as possible. Those procedures could for example be to do time studies on individual operations and/or to follow up on how many hours that are posed in a period of time verses how many hours you have payroll in the same period (as an example).

Companies that choose to use actual hours are doing it to get more accurate numbers in Dynamics NAV, both in order to get realistic costs of the products and also to have a place to follow up and report on what is actually spend on the different operations (which in the long term could improve planning).

Below are some methods of capturing the actual and expected times in Dynamics NAV. The examples are described using the output journal, but the same functionality would also apply to the production journal.

Posting of Actual Production Time

When you post actual production time the user will either have to enter the time as setup/run time or enter the starting time, ending time and the concurrent capacity.

If you enter the starting time, ending time and concurrent capacity then Dynamics NAV will automatically calculate the run time for you in the journal (where the concurrent capacity represent the number of resources used). With this method there is no way to record it as a setup time, it will always be recorded as run time. The cost will be the same but if you want to do some kind of reporting on setup vs. run time then you probably want to do a small modification to allow this (maybe to add a ‘setup starting time’ field that will calculate the setup time).

Output-Journal-Actual-Time-Dynamics-NAV

One thing that is worth knowing is that if an operation starts on one day and finishes on another day, then you need to enter multiple lines in the output journal for the same operation with different posting dates (or you post the journal twice). Something like below.

Output-Journal-Actual-Time-2-Dynamics-NAV

This is a bit hard to enter in a production journal since you can’t have multiple lines in it for a single operation (without making a modification that is), but it works well in the output journal.

If you prefer to enter the setup and run times directly then you just enter this in their individual fields and you leave the starting and ending times empty.

Output-Journal-Actual-Time-3-Dynamics-NAV

Practically, posting actual times are typically either done by the operators themselves, or a production supervisor that enters the information based on filled out job cards received from the operators.

An alternative option to record actual production times is to have functionality that will record when operations are stopped and started. Programming this is actually easier that it sounds, one good/simple way of doing it is to create a transactional table where stop and start entries are recorded and then having a function in the output journal that is similar to the standard explode routing function that will populate the times based on the entries in the new table. If you use a barcode solution (like my shop floor barcode system), then you can have barcodes that are scanned to stop and start operations. If you create a page for the table and publish it as a web service you can have other application (such as a 3rd party scanning solution or a PLC system) populating it. I might actually do a future post with a solution like this.

Posting of Expected Time

If you typically produce the same quantities as on the production orders and you want to post the capacity according to the expected times from the routing, then the far easiest way to do this is to backflush the operation (something like scenario A in my previous blog post about flushing methods). If you backflush operations then there is no need to do any type of posting in the output or production journal, all you need to do is to finish the production order and the capacity and output will be posted automatically by NAV.

If you happen to be in an environment where you frequently produce quantities that are not the same as the production order quantity or if you have production orders open for a longer period of time and want to record output multiple times against the same order then backward flushing will not work. Here you need to use either the output or production journal and enter the output quantity along with the setup and run time. To streamline this task you can make a small change and have Dynamics NAV to calculate the setup and run time based on the quantity entered as output and scrap. Below is and example of how this can be done.

Create a new function in table 83 – Item Journal Line, call it something like UpdateTimes. The function will be called when the output or scrap quantity is entered in the output journal and it should then calculate the setup and run time for the journal line based on the expected values in the production order routing. The below code is kind of self-explained; it grabs the production order routing line record and calculates the run time by multiplying the run time from the routing by the output plus the scrap quantity. The setup time is entered if there are no other transaction on the operation, if there is then it is zero (the concept with a setup time is that is supposed to be only once per production order). There is also a way to turn the calculation on/off through a new field in the manufacturing setup table, I always do modifications so they can exists together with how the standard functionality works (if you for example have additional companies in the same database that don’t want to use it this way).

Code-To-Calculate-Setup-and-Run-Time-In-Output-Journal-Dynamics-NAV

Next you add the call to the function in the OnValidate triggers of the output quantity and scrap quantity fields like below.

OnValidate-Code-Output-Journal-Dynamics-NAV

Now when you enter the output or scrap quantity in the output or production journal the setup time and run time is automatically calculated and populated by Dynamics NAV according to the expected values. Nice! 🙂

Output-Expected-Tim-Based-On-Output-Quantity-Dynamics-NAV

That was all for this post, remember to share it on social media! 🙂

Share this:

  • Share on Facebook (Opens in new window) Facebook
  • Share on X (Opens in new window) X

Related


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

Subscribe to get the latest posts sent to your email.

Tags: CapacityCostsOutputProductionProduction OrdersRouting
8 Comments
Share
10

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

The Low-Level Code

Jun 4, 2014

Do you know what the low-level code in Microsoft Dynamics[...]

Revalue Closed Item Ledger Entries

Feb 25, 2014

I have meet many experience Dynamics NAV consultants and end[...]

Inventory With Zero Value

Mar 20, 2014

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

8 Comments

Leave your reply.
  • Steve Pena
    · Reply

    October 13, 2015 at 10:19 AM

    Hello Again Olof,

    On my routing, I have setup time and run time on one operation. My Setup U of M is HOUR. My run time U of M is MINUTE.

    My routing flushing method is Manual. My problem is when I go to the output journal (or the Production Journal), and enter an output quantity, setup and run time must use the same capacity U of M. This is obviously incorrect and causing my labor to be way off.

    If I backflush my labor, setup and run time are converted correctly during the posting.

    Is there something I’m missing to have the setup and run time convert properly when entering the output journal when the flushing method is manual? Do I have to split the setup and run time lines into two different operations?

    Thanks,

    Steve

    • Olof Simren
      · Reply

      Author
      October 16, 2015 at 8:15 AM

      Hi Steve,
      This is just the way it is in NAV.
      You can have different unit of measures in the routings, but the journals are always going to be in the unit of measure that is on the work center card.
      You will have the same issue if you separate it into different operations (if it is for the same work center).

      The options as I see it is either to make a modification (like a new field you can enter in that does the conversion for you) or you teach the users to enter both the setup and run time in the same unit of measure (show them that you can enter formulas like 30/60 and 3*60 in the fields and I bet they don’t think it is that bad anymore).

      /Olof

  • JONARD
    · Reply

    February 3, 2016 at 4:09 AM

    Hi Olof-

    I just like to ask why does the concurrent capacity doesn’t have an expected value?

    I think it should have a default value already since it’s define in the Item Routing?

    Thanks,
    Jonard

    • Olof Simren
      · Reply

      Author
      February 9, 2016 at 5:38 PM

      Hi Jonard,
      Good question, don’t know exactly, but it could be that the thought is to post the journal ones for each capacity (like if the concurrent capacity is referring to two people doing the work simultaneously each of them might post the journal). Just a though. It is probably easy to change.

      Thanks for your comment!

      /Olof

  • Partha Bhattacharyya
    · Reply

    January 14, 2018 at 1:15 AM

    Find the below query we are unable to FIT in NAV

    – 1000 qty sales order
    – Will take 10 days for total production as per machine capacity
    _______________
    Query
    ————————
    – Need, per day production planning execution and accordingly consumption (transfer orders and purchase order)

  • Steve Pena
    · Reply

    December 4, 2018 at 2:51 PM

    Hi Olef,

    I like your suggestion, to manually flush labor with slight code adjustment, for orders that are open for a long time, or for orders that don’t produce the same quantities as specified by the order.

    One basic question here. Other than the last operation, is it really necessary to enter the output quantity on each operation for a single posting? Setting preset quantities to zero or to the expected quantities is still going to force our users to enter the output quantity, and this can be very time consuming, if there are 20+ operations.

    Have you ever done a customization, to perhaps allow an “Output Quantity” field on the production or output journal, that would roll down to all lines, or anything else to address this type of issue? I’m trying to make the entry of expected time on a production journal as efficient as possible for the end users.

    Thanks,

    Steve

    • Olof Simren
      · Reply

      Author
      December 8, 2018 at 9:02 AM

      Hi Steve,
      I think you should enter the output quantity on each operation since it collects some data that can be used (like if you want to see the throughput for certain work centers, or how long it takes to do certain operations per qty.), it is also used if you backflush components together with the routing link codes (the output quantity of each operation then determines the quantity to backflush for the related components).
      Adding an ‘Output Quantity’ in the header of the production journal that defaults all the lines (run time, setup time, quantities, etc..) is a good suggestion. We work a lot with a manufacturing vertical that have that exact feature.

      /Olof

  • David
    · Reply

    December 2, 2019 at 8:48 AM

    Hi Olof,
    We have a production order and I have a problem. I want to have a fixed start time and end time for Released Production Order (regardless to quantity). I want to enter time manually. For example if we melt 700 KG iron or 900 KG the routing time must be 8 hours. but when I change the quantity start time or end time is being changed.
    Thank you for your help.

Leave a Reply

Your email is safe with us.
Cancel Reply

Subscribe to My Blog via Email

Check Out Our Apps in AppSource

My Dynamics NAV Partner

Naviona, LLC

Categories

  • Assembly (3)
  • Development (35)
  • Finance (14)
  • General (28)
  • Inventory (24)
  • Manufacturing (36)
  • Miscellaneous (27)
  • Purchase (9)
  • Sales (11)
  • Warehouse (7)

Tags

.net Add-in AI AppSource Assembly Assembly BOM Business Central CAL Capacity Consumption Contact Copilot Costs Customer Development Dimensions Excel Finance Flushing General Ledger Inventory Item Item Tracking Low-Level Code MRP NAV 2015 NAV 2016 Output Planning Production Production BOM Production Orders Purchase Orders Receipts Reporting Reports Routing Sales Sales Order Stockkeeping Unit Subcontracting Task List Warehouse Warehouse Shipment Work Center

Recent Posts

  • Business Central Configuration Audit using Vibe Coding
  • Copilot in Planning Parameter Worksheet
  • Copilot in Planning Worksheet
  • Copilot Inventory Queries
  • Record Deletion Tool for Business Central in AppSource
  • Reopen Finished Production Orders
  • XML Buffer and CSV Buffer Tables
  • Functionality Improvements in NAV 2017
  • Reversing Production Output and Consumption
  • Return Merchandise Authorization (RMA)

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 (35)
  • Finance (14)
  • General (28)
  • Inventory (24)
  • Manufacturing (36)
  • Miscellaneous (27)
  • Purchase (9)
  • Sales (11)
  • Warehouse (7)

Tags

.net Add-in AI AppSource Assembly Assembly BOM Business Central CAL Capacity Consumption Contact Copilot Costs Customer Development Dimensions Excel Finance Flushing General Ledger Inventory Item Item Tracking Low-Level Code MRP NAV 2015 NAV 2016 Output Planning Production Production BOM Production Orders Purchase Orders Receipts Reporting Reports Routing Sales Sales Order Stockkeeping Unit Subcontracting Task List Warehouse Warehouse Shipment Work Center

Recent Posts

  • Business Central Configuration Audit using Vibe Coding
  • Copilot in Planning Parameter Worksheet
  • Copilot in Planning Worksheet
  • Copilot Inventory Queries
  • Record Deletion Tool for Business Central in AppSource
  • Reopen Finished Production Orders
  • XML Buffer and CSV Buffer Tables
  • Functionality Improvements in NAV 2017
  • Reversing Production Output and Consumption
  • Return Merchandise Authorization (RMA)

Recent Comments

  • Olof on Business Central Configuration Audit using Vibe Coding
  • Andrew Trayfoot on Business Central Configuration Audit using Vibe Coding
  • Barrett Allen on Reopen Finished Production Orders
  • Kateryna on Business Central Configuration Audit using Vibe Coding
  • Takeshi Setoya on Reopen Finished Production Orders
  • Steve on Consignment Inventory
  • Olof Simren on Copilot in Planning Worksheet
  • Omaer Amjad on Copilot in Planning Worksheet

© 2026 · Olof Simren

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