We have to start with a general statement about scheduling.

MRP systems, including Master scheduling in Microsoft Dynamics AX, are hard coded to schedule backward from delivery date. (I am assuming we are not using the finite capacity scheduling option in Master Planning) There is no parameter to change that and there does not need to be. If I am in the manufacturing discrete industry and I look at my demand long term (typical time horizon is one year) I should schedule everything backwards from the delivery date, it is the only reasonable choice.  But a second important statement has to be made.

Since Microsoft Dynamics AX 2012, Master scheduling will automatically reverse scheduling direction for all three types of planned orders. (In the 2009 version, planned purchase orders still could get a start date or order date in the past).

This means that Master Scheduling will schedule forward automatically when the backward scheduling calculation hits the brick wall of “day today”.  Older MRP systems never did that automatically. They scheduled backward from delivery date and left the past due situation for the planner to solve. The user (planner/buyer) was presented a list of past due planned orders. Of course the order dates in the past sent a very clear message to the planner that something had to be done.

The importance of the functionality of Order Promising drove a change in many MRP systems. Order Promising is of course also scheduling backward from the delivery date,  because it is nothing but a mini MRP-run. But when I do order promising, I can’t use planned order dates in the past. I have to schedule forward from today where needed. This creates my “futures” dates that result in a futures date for the finished product in the sales order line.  In earlier versions of Dynamics AX planned production orders already could not start in the past. But planned purchase orders could. Now in 2012 that is no longer the case. It is now impossible to generate planned orders with a start date in the past.

So now we have an ‘honest’ view of delivery dates as long as our lead times defined in the system have been updated and are realistic. One would expect these forwarded calculated dates to be easily accepted by Master Planning users, but I have not found that to be the case.  Apparently the user population with MRP experience is very much used to planned orders with past due dates.  When the system does automatic forward scheduling, some users experience this as presumptuous. The painful reality of our defined lead times is now biting us. An honest check on the lead times becomes more urgent now because the cumulative result of forward scheduling is often unacceptable. It is an understandable response. When we backward schedule and we are talking about months into the future, we gladly accept the dates as it is pure theory at that point. When we are forward scheduling, every day counts. Most companies are able to shorten lead times, something the ERP scheduling system can of course never know nor calculate. As everybody in manufacturing knows, when we are expediting, we realize lead times that the ERP system would be surprised about.

Even though in Dynamics AX 2012 planned orders in the past are now impossible, we still have  parameters that control the “impact” of delays on orders on the next higher level in the BOM. We can choose that a planned purchase order that was forward scheduled (so it has a futures date) is not allowed to automatically push forward a planned production order also. Most customers I know prefer this setting. It makes the MRP dates easier to understand. The setting to control this is on the master plan under the futures message tab and is called  “Use futures date as requirement date” for planned production orders.

Let’s now talk about what happens when we firm a planned production order.

When planned production orders are firmed, they should arrive in the production order module in status “scheduled”, which means “backward from delivery date” unless the scheduling direction was reversed during the MRP run. Any other setting (we only have the choices “Release” or “Start”) puts too much power in the hands of the planner. The production office or the supervisor needs the ability to reschedule the order if needed to create a feasible weekly schedule. There is also the requirement to do a material shortage check before any “release” or “start” of the order.  

In the production module, the default scheduling direction is “forward from today”.  That is hopefully not the correct setting for your shopfloor!. In putting together a weekly production schedule, the supervisor or shopfloor scheduler should have the freedom to do anything with the scheduling direction. And there are many scheduling directions to choose from. But if we don’t make a conscious choice, it will be “forward from today”, conflicting with the idea that orders should be started as late as possible so when an order starts in the ERP-system, the actual work starts too. But we know that some companies never get out of the ‘expedite’ mode and they do indeed schedule everything forward routinely!    

We often get the question whether it is possible to manually schedule a production order. The answer is a cautious yes.Why cautious?  Because the user cannot manually enter both the scheduled start and finish date. We can use the scheduling direction 'Forward from scheduling date" (or backward) which is when the field "scheduling date" is actually used in the calculation. (it is slighty distracting in all other cases) So the user can determine one of the two dates, start or finish, but the other date will be calculated by the system using the routing or the defined lead time under the inventory tab of the "Default order settings". (or the site specific order settings). This seems correct to me. The user can now freeze the scheduled dates of this production order by clicking the box "locked" in the setup vertical tab in the field group "Scheduling". Now it is time to talk about priorities. 

While MRP has no way to deal with priorities of orders, for the short term production schedule that we create in the production module, using the batch-style scheduling options in the periodic section, we still have to set manual priorities. It makes no sense using the priority field on the production order if we are not using finite scheduling. So without using finite capacity, we still have to decide which order goes first and which one goes next.  Our obvious recommendation is to always start the short-term scheduling  run with scheduling direction = “backwards from delivery date” to see which overload problems we have to resolve. This scheduling direction should be the user default. Then we make  our decisions, we make sure the most important orders have available workers and machinery and at some point we have determined the final schedule for the coming week.  To realize this, we have probably scheduled certain orders forward from a scheduled date of our choice, and hopefully for the majority we accept the dates that came out of the initial scheduling run using "backward from delivery date".

In a next blog post more about Finite scheduling in Dynamics AX 2012 and the new routing functionality.