Screenshots are from this version of Microsoft Dynamics 365 (“D365”) for Supply Chain Management shown below. Content is valid for all older versions as well.
Capacity functionality in D365 for Supply Chain Management could not function without the table WrkCtrCapRes. This table is directly accessible via “Capacity reservations” page. (Navigate to Production Control > Inquiries and reports > Resources > Capacity reservations.)
By default, the “From” date is today. We can change the date to an earlier date.
Capacity reservations in the past
Does it make sense to have capacity reservations in the past? Of course, and this is called “backlog.” As long as a company is not executing with 100% perfection to the plan, there will always be capacity reservations in the past.
- Planned production orders can have dates in the past if the parameter in the Master plan allows it. Because there is unfulfilled demand in the past, the planned order will create capacity reservations in the past.
- Not-rescheduled production orders. Production orders cannot have dates in the past. The system “reverses scheduling direction” if we backward schedule and end up in the past. But if time passes and the production order does not get rescheduled, it will have capacity reservations in the past. To see my backlog, I have to dig into the past. It is preferable to reschedule the production orders routinely so my backlog shows in the current period and the delivery date will tell me how far I am behind with a production order.
Offloading worked hours
One of the key things in production capacity management is the timely offloading of the hours after they have been reported as actual. Only then can we trust the remaining load showing on a Resource (group) and can we make decisions on personnel, outsourcing etc. This offloading does not automatically happen as you probably would expect. In the system we have TWO parameters for that.
Navigate to Production control > Setup > Production control parameters > General tab.
We will of course say ”Yes” to the “Delete capacity reservations” parameter. Whatever hours are still showing in the capacity reservations table will be removed after the Report as finished (“RAF”) transaction. But this is not enough.
When my production order takes weeks until it gets to the RAF status, which is quite common for final assembly of big equipment, I can’t have the hours that I already have completed still showing as “reserved hours.” But that is what happens unless we set a second parameter that is well hidden.
Navigate to Production control > Setup > Production control parameters > Journals fast tab.
When “Update capacity plan” field is set to “Yes,” it will reschedule a production order each time an operation is reported as complete. This will be visible for a user in the Job card device or terminal.
Now the completed hours have disappeared from the “load” of the Resource (group).
Sounds like a winner, but we have two problems.
PROBLEM 1: This instant “rescheduling” of the production order is using job scheduling even though we are using operation scheduling (as dictated by the parameter in Production control and visible in every order in its scheduled status).
SOLUTION: This problem has been resolved with a fix in Release 10.0.11, KB number: 4550154.
PROBLEM 2: Advanced warehousing creates a problem for scheduling. When there is open raw material picking work, you cannot reschedule the production order.
You can easily imagine why this prevents my remaining workload on a Resource (group) from being correct. I’m reporting operations complete while there is open picking work. I will get the error, because the system cannot reschedule and cannot remove my worked hours from the WrkCtrCapRes table.
I don’t understand why this dependency was considered a good idea. I have requested to remove this connection in the ideas database and for our customers we have customized and removed the dependency. Please vote for the idea!
“Marked for delete” records in WrkCtrCapRes
This paragraph is a work-in-progress, because we still do not know everything about this phenomenon, and it is counter-intuitive. If something has to be deleted, why not delete it instead of “marking it” for deletion? Leaving that discussion aside, here is the behavior we have seen. Normally, when the system is rescheduling production orders that are getting posted Route card or Job card journals, it will offload any completed operations and reduce remaining hours if the operation is not complete yet. These are deletions and modifications in the WrkCtrCapRes table. If for some reason it cannot run the normal scheduling (ie missing calendar on Resource, effective date for calendar, or resource is outside of the production order dates, open picking work when using Advanced warehousing), it switches the “type” of the capacity reservation record it tried to remove to “Marked for deletion.” This type normally says “Operation” or “Job” scheduling. These virtually deleted records do NOT show in the “Capacity load” or “Capacity load graphically” screen.
But the “Marked for deletion” capacity reservations are included in the Master Planning capacity requirement statistics.
There is another situation that creates “Marked for deletion” records described in the KB below:
KB number: 4555429
Referenced production orders that are scheduled together with the “main” production orders seem to get “Marked for deletion” records.
Deleting “Marked for deletion” records
Remembering our first parameter “Delete capacity reservations” under the Report as finished section, we would expect that this includes the deletion of “Marked for deletion” records, but this is not always the case. That means you can end up with “Ended” production orders that still have “Marked for deletion” capacity reservations. They can be deleted without a problem, but Microsoft must do this for you if you are on D365.
We have not been able to reproduce this problem consistently, and no hot fix is in the works yet. As soon as we have news, this blog will be updated.
Manufacturing customers using D365 are typically very focused on material planning, but managing the shop floor capacity is just as important. One of the main things is detecting overloads early, so you can make timely subcontract decisions or get additional people.
The D365 Capacity Management functionality has enough viewing capabilities to assist with this task, keeping in mind the problems that are described in this blog. However, there is no “what if” or “optimization” functionality. This is provided by dedicated scheduling software such as Planet Together or Preactor advanced scheduling (now called Opcenter APS).