Skip to content

Scheduling Logic

Planning is done at aggregate level where it selects alternate resource or routing, generates supply demand pegging and gives a date to the orders. In scheduling, it loads the orders on individual sub resource and sequences the orders taking into account upstream and downstream constraints.

img

Scheduling starts with a clean up which deletes all unlocked schedule. It retains only those orders, which are already loaded in individual sub resources, and have a quantity completed greater than zero. It ensures that once an order is loaded in a sub resource, it retains that sub resource.

Different strategies can be employed to do scheduling and explanation of each strategy is given below:

Bucket Based

Bucket based scheduling takes the bucket date generated by planning as the EPST of the work order. It tries to schedule the work order within that bucket date. If it does not find capacity, then it will push it to later bucket date.

This logic works bucket-by-bucket. For each bucket, it finds the critical resource and sequences the order on this resource first. Then it finds the next critical resource and sequences the orders. This process is repeated till all the resources are scheduled on this bucket. Then it moves to next bucket and does the same.

img

  1. User gives the start and end bucket dates when scheduling has to be done

  2. Scheduling logic starts from the first bucket. Number of buckets to be considered at a time is specified by a parameter. Like user can say schedule one bucket at a time or two buckets at a time.

  3. For the selected set of buckets, critical resource is found out taking into account sequence dependent setup time as well.

  4. Work orders are sequenced first on the critical resource.

  5. EPST is generated for the downstream orders based on the sequencing

  6. Next critical resource is found and the orders are sequenced

  7. Once all the resources are scheduled, next set of buckets are considered and process repeats till end bucket date is reached.

  8. Priority of sales orders are not considered explicitly. Orders within the bucket date are sequence based on EPST and Quantity.

Pull-Push

Pull-Push based scheduling does not consider the bucket date generated by planning. It only respects the pegging and alternate resource or routing selection generated by planning. The logic is explained below:

img

  1. User provides the start and end dates

  2. Sales orders are selected with requested delivery date before the end date

  3. Sort the sales order based on due date in descending order

  4. Pick a sales order. Let this be demand order

  5. Get the supply order pegged to demand order

  6. Generate Latest Possible Start Time (LPST) of this supply order by considering

    a. Resource constraint

    b. Downstream constraint (demand order start time)

  7. Change this supply order to demand order and go to step 5. If no demand order, then go to step 4. If no sales order, go to step 8.

  8. Sequence all the orders based on LPST in ascending order

  9. Pick a order and generate Earliest Possible Start Time (EPST) by considering

    a. Resource constraint

    b. Upstream constraint (supply order start time)

  10. If any order feeding to higher priority sales order is getting delayed, then sequence of orders will not be based on LPST as specified in step 8. Instead, orders within the bucket span will be sequenced based on priority. For instance if bucket span is 7 days, then all the orders coming within the 7 days will be sequenced based on priority. Then next 7 days will be considered.

  11. If Scheduling Type is just-in-time, then PST is max (EPST, LPST). If scheduling type is resource utilization, the PST is EPST

In Pull-Push based scheduling, sequence dependent setup time is not considered. If this needs to be respected, then the user has to go for bucket-based scheduling.

Suppose we have the following pegging as generated by planning.

img

Then after scheduling, gantt chart will show like the one below

img

Resource Utilization

Resource Utilization works in reverse of Just-in-time. Instead of picking the maximum of EPST and LPST, it always picks the EPST time. So it pulls the orders earlier so that resource is not sitting idle. This will reduce the resource gaps.

img

Running Automatic Scheduling

  • Go to Planning -> Interactive Scheduler

  • Select to bucket date. For bucket based scheduling, all the work orders whose bucket date falls within from and to date will be scheduled. For pull-push based scheduling, all the sales orders whose due date falls within from and to date will be considered and its work orders will be scheduled.

  • Click on Run

img