Finite capacity, infinite capacity, and max. order sizes

The terms “infinite capacity” and “finite capacity” always confused me a bit when I was a user.  I always thought “well, how can scheduling working if the capacity is infinite – I must need to use finite capacity.”  I was not understanding these two terms properly.

In AX, scheduling (either of planned or actual production orders) uses the route to see how much time it’s going to take to make a certain quantity of material.  For example, let’s say it takes 4 hours for us to build 50 pieces of a given widget.  If you need to make 50 pieces of this widget, AX will try to find capacity on the resource specified on the route for 5 hours or time, backward from the requirement date and time, to work on this product.

The thing is, in a vacuum where there are no other orders being scheduled on that resource, both finite and infinite capacity are going to do exact same thing here.  Since the route specifies it takes 4 hours to build the widgets, 4 hours of capacity are required.  Using infinite capacity doesn’t mean AX can do this particular job immediately; it still uses the route to determine 4 hours are required.  The difference between infinite and finite capacity is seen in the behavior when there are multiple orders being scheduled across the same resource.

For our example, take the following table’s assumptions:

Assumptions for our examples

In this case, we have the same widget that takes 4 hours to build 50 pcs.  We’re going to look at when we need to build 500 pieces, though, and have a maximum order size of 50 pieces.  In this case, AX will split our overall order for 500 pieces into 10 individual orders for 50 pieces.

In both cases, AX only has 8 hours available for a single work order each day.  In order words, a single work order can only have 8 hours scheduled for it each day.

When finite capacity is enabled, AX will try to schedule each of the production orders sequentially and backwards from the requirement date.  It is not allowed to overburden the capacity available on the finite capacity constrained resource.  This will result in a situation as seen in the spreadsheet below.

Finite capacity enabled
Example shown with finite capacity enabled

As you can see, each of the orders is staggered sequentially; AX enforces that each resource is only allowed to be scheduled for 8 hours a day.

In the case of infinite capacity, though, a different behavior is seen.  In this case, although a single work order can only be worked on for 8 hours a day, AX DOES NOT enforce that the resource only has 8 hours to give; AX allows the resource group to work 8 hours per day, but on an infinite number of production orders.  The table below shows what our example looks like when finite capacity is disabled.

Infinite capacity example
Example shown with finite capacity disabled

As seen above, since the delivery date is 12/12/16 for each of these orders, AX schedules the 4 hours of work for every production order on the day immediately before the delivery date.  This bring us to a situation where our resource is overburdened and would not be able to satisfy this demand.

If we hadn’t used a max order size in this case, AX would not have split our production order for 500 pieces into 10 orders.  Since only a single order would have existed, regardless of finite capacity or infinite capacity, AX can only work on a single order for 8 hours per day (based on our calendar.)  This means that, regardless of the finite or infinite capacity, we would have gotten single production order with a scheduled start date of 12/7/16.  Even though finite capacity is disabled, you’d see AX require 5 days of labor to make this order.

There’s obviously business cases for both infinite and finite capacity.  It’s important to understand what they mean, though, and what kind of impact other settings (like max order size) can have with scheduling.