Scheduling Jobs Using the Master Production Calendar

The Master Production Calendar (MPC) allows schedulers to schedule production jobs based on inventory, resource availability, and due dates for jobs. It provides the flexibility to allow an experienced scheduler to manually manipulate the production schedule or for a user to quickly optimize the schedule using a number of different system driven inputs. The calendar was designed to schedule production jobs based on the availability of production resources, including Work Centers, Shop Areas and laborers. The link between the resource types and production jobs in DEACOM is a Routing, which contains the resource types that will be required, production rate information, and labor cost details.

The width of the hours columns may be adjusted via the "Pixels Per Hour" field located on the Production > Options > Scheduling tab. The minimum value for this field is 1.

Once the Master Production Calendar has been run, the selected Work Centers will be displayed down the left side of the form. If there is a job scheduled within that Work Center, the total number of hours and number of jobs are shown. Across the top of the calendar is the timeline for the schedule. Any hours highlighted in red are hours that the resource type is not available. Black bars appear running vertically for whole days that the resource type is not available for scheduling, as defined in Availability and Availability Exceptions. There are two buttons available in the toolbar to quickly view and modify the shop schedule basics and exceptions.

Configuration

Please refer to the Configuration section of Scheduling Production Jobs for the required items.

Process

Generating the calendar

The master production calendar was designed to schedule production jobs based on the availability of production resources, including work centers, shop areas and facilities. The selected resource type will run down the left hand side of the form. The basic process for using the MPC is detailed in the steps below.

  1. Navigate to Production > Job Calendar.
  2. Select a Report Type of "Master Production".
  3. Choose an appropriate "Date Based On" value. Options are Due, Planned Finish, or Planned Start.
  4. Select a production resource to check availability by entering a value in either the "Shop Area", "Facility", or "Facility Group" field.
  5. Fill in any additional fields as desired then click the "View" button to display the calendar.
  6. Unscheduled Jobs will be displayed in the list at the bottom. Users may drag and drop individual Jobs from this list to the appropriate production resource on the calendar. In addition, users may change the calendar time frame by using the arrow keys at the top of the form. Hours highlighted in red are hours that the Resource Type is not available. Black bars appear running vertically for whole days that the Resource Type is not available for scheduling.
    1. Note: Users can also select the job and move the mouse to the left or right to have the calendar automatically scroll to the desired date/time.
  7. When all changes to the calendar have been made, click on the "Save" button at the top of form. Changes are reflected in the Date fields on the appropriate Jobs.

Using the Schedule Optimizer

The wizard can be used in a number of situations including:

  • When a job is cancelled and space becomes available on the calendar.
  • When a job is moved to a later date and space becomes available on the calendar.
  • When a rush job is scheduled and other jobs must be pushed to a later date on the schedule.

Notes:

  • The optimizer will not schedule a job starting in a blackout time. Once the user clicks the "Schedule Optimizer" button the schedule optimizer form will be displayed. In addition, clicking the Schedule Optimizer button will automatically save any changes that have been made to the calendar before running the optimizer tool.
  • Gaps between Routings can be optimized or even closed by using a Schedule By of "Latest Available" and Sort By of "None" on the Schedule Optimizer form. In this situation, the Routings will be scheduled in the order they are placed on the calendar. The system will schedule them in groups based on the Work Center. Note that the sequencing logic does not include safety or QC days. In addition, when running the sort by "None" the End Date field on the Schedule Optimizer form will be used as the last date possible to schedule routings and will bud up against that date if brought in through the optimizer filter.
  • The optimizer will not adjust jobs with the Include in Optimization flag unchecked, located in Routings.

Splitting Jobs based on unavailability

The following functionality is available to split jobs based the unavailability times set on the calendar form.

  • When job gets dragged before unavailable shop time, end of job will be split to next available time.
  • When job gets dragged before blackout job (maint), end of job will be split around this unavailable slot.
  • When job gets dragged onto open availability and there is not enough time in that day, job splits to the next day.
  • When saving and reopening calendar, jobs will appear correctly split as they did before calendar was closed.

Scheduling Routing Sequences across days

Routing sequences may be scheduled across days on the production calendar if necessary. This allows for scenarios where production processes, for example, the drying or setting of paints or adhesives will occur even when the plant is closed for normal production. If a routing sequence is schedule across multiple days, the information displayed on the first field of the routing sequence, generally the job number, will include a number indicating which day this portion of the sequence corresponds to.

For example, assume a routing sequence includes a step for "drying" which takes 10 hours. If the start time of the sequence is set for 5:00 PM, the sequence will continue into the next day. Let's assume the job number is 2014-00000. In this case the master production calendar will display a routing sequence from 5:00PM - 12:00 PM with the first line in the display as 2014-00000 (1). Directly after this, to the right hand side, a routing sequence from 12:00 AM - 3:00 AM will be displayed as 2014-00000 (2).

Another example, Created a job with a routing that would take up most of the day and set to schedule by latest available. Create another job with the same due date as the previous job and a routing that would be slightly more than the available time on the due day. In this case, the system will schedule routing/job as late as possible, crossing the two days.

Scheduling Routing Sequences during blackout periods

Routings scheduled on the Master Production Calendar, Planned On Hand Calendar, via MRP, or on the "Edit Job" form may not be scheduled during blackout periods unless the "Process Jobs Over Non Maintenance Blackouts" option on the Production > Options > Scheduling tab is checked. If this option is checked:

  • If the routing is started in a non-blackout period, overlaps no other routings, and ends on a non-maintenance blackout period then it will be scheduled without splitting the routing.
  • If the routing overlaps a maintenance routing, the routing is moved to the end of the maintenance routing scheduled from there instead of being split. If the end of the maintenance routing happens to start during another blackout period, then the start of the job routing is moved to the end of the blackout period.
  • In situations where a routing is split around several blackouts, the system will use the actual job end date and time and not the start date and time + duration to schedule the routing. This is done to prevent overlapping Routings that use the same work center in the Master Production Calendar.
  • NOTE: The "Schedule Around Blackouts" field (added in version 17.02.101) changes the way splitting routings can occur if the field is unchecked. The field is checked by default. If the field is unchecked, the system will use various evaluations methods (describe in the Routings help section) to ensure the routing Sequence is not scheduled. Depending on the scenario, this may result in the entire job being unscheduled.

Scheduling overlapping Routing Sequences

Starting in 15.03.012, Routings are allowed to overlap within the same Work Center and are allowed from multiple Jobs at the same time, provided the Routing/Work Center selections adhere to the restrictions set via the Edit Routing Sequence form. This option is primarily useful if multiple operations overlap with an offset. For example, if a batch of material is made then must dry, a second batch may be made while the first batch is drying. If it takes 25 minutes to make the first batch, then the second batch can start 25 minutes later.

When scheduling using the "Earliest Available" option, the Routing Steps will be scheduled for the earliest possible available times for any of the Work Centers based on the Routing Step setup. The list of Work Centers is determined using the "Restrict To Work Center" selection on the Routing step. The earliest available time is determined by looping through the "Earliest Available" calculation for each Work Center from the available list, and breaking ties using the Sequence value. This process is repeated for the next Routing step, where the optional Start Date/Time is calculated by the Start Date/Time of the previous Routing step plus the Lead Time in hours.

  • If the Lead Time is 0 and "Lead Time Based On" is set to "End", the end of the previous step will be used.
  • If the Lead Time is 0 and "Lead Time Based On" is "Start", the start time of the previous step will be used.

When scheduling using the "Latest Available" option, the Routing Steps will be scheduled for the latest possible available times for any of the Work Centers based on the Routing Step setup.

Scheduling concurrent Routing Sequences

Starting in 16.04.010, Routing Sequences for different Work Centers can be made concurrent, so that they start at the same time on the Master Production Calendar. This option works when scheduling by the "Earliest Available" or "Latest Available" options, either by the "Schedule By" field on the Job or via the "Optimize" button on the Master Production Calendar.

To set a Routing Sequence to start at the same time as the previous sequence, set it's "Lead Time Based On" to "Start Time" and it's "Lead Time" to 0.

For example, consider a Routing with the following Routing Sequences:

Seq

Operation

Work Center

Lead Time Based On

Lead Time

1

Mixing

Tank 12

N/A (can be Start or End Time)

N/A (can be set to any value)

2

Mixing

Pump 12

Start Time

0

In this setup, the Routing Sequence for the Mixing operation at Pump 12 will start at the same time as the Mixing operation at Tank 12 when scheduling via "Earliest Available" or "Latest Available."

Rescheduling, adding, or removing Routings Sequences with linked(subsequent) jobs

Beginning in version 17.02.003, the Master Production Calendar has been enhanced to better handle the scheduling of Routing Sequences that are part of chain of linked (subsequent) jobs. The "Subsequent Job" field on the Edit Job form. This applies when dragging and dropping jobs on the calendar or when double clicking and modifying the date and time for a routing sequence on the "Edit Data" form.

Rescheduling/moving routing sequences

If subsequent jobs have routing sequences earlier and/or later on the Master Production Calendar, the system will prompt the user to ask if they want to move the sequences for the linked jobs.

  • If no is selected, the sequences will not be moved.
  • If yes is selected the system will move the sequences in the same way as would be done for a multi line job.

The prompts to move additional sequences in a routing vary based on the movement that occurred as indicated below:

  • Do you want to move later sequences for linked jobs backward?
  • Do you want to move later sequences for linked jobs forward?
  • Do you want to move earlier sequences for linked jobs backward?
  • Do you want to move earlier sequences for linked jobs forward?

Removing routing sequences

When removing a routing sequence from the calendar, if there are linked/subsequent jobs, the user will be prompted if they wish to remove sequences of linked jobs. If yes is selected the system will un-schedule all sequences for linked jobs. 

Adding Linked Jobs not originally scheduled

When Linked Jobs, not originally scheduled, are added to the Master Production Calendar the system will prompt to schedule/update other Linked Jobs with the following prompt "Would you like to schedule sequences of linked jobs?" If "Yes" is selected on the prompt the system will schedule all sequences for linked jobs forward and backward in the chain. If "No" is selected, the system will not move the sequences.

Moving Routing Sequences to different Shop Areas

Users may move Routing Sequences to different Shop Areas on the Master Production Calendar. When a Routing Sequence is moved, the system checks to see if all Routing Sequences have Work Centers that are within the same Shop Area.  If so, the system will update the job header to the new Shop Area so that when backflushing from Shop Area locations, the correct Shop Area is used. If any Routing Sequence is on a Work Center that is in a different Shop Area, the system will not update the job header.

Moving Routing Sequences to different Work Centers

The system allows all Routing Sequences for a job line to be moved from one Work Center to another on the Master Production Calendar. When a user moves a routing sequence from a job line, the system will display the following prompt: "Would you like to move all Routing Sequences for this job to this new Work Center?"  If the user clicks yes, the system moves the routing sequences to the new Work Center. 

Notes:

  1. If there are already other sequences scheduled on this new Work Center during the same time period that the new ones would be scheduled for, the system will not display the prompt.
  2. Beginning in version 16.04.027, moving same-job routing sequences, where one or more sequences in the job are in different Work Centers, users will have the option to move all routing sequences as a group. In this case, users will be presented with the following yes/no prompt: “Would you like to move this job’s routing sequences in this work center to the new work center?” If yes is clicked, the system will only move the sequences on the current work center where the sequence is being moved from for that specific job.  If no is clicked, the system will not move all sequences.
  3. Beginning in version 17.01.010, a new feature has been added which was designed for situations where a work center will be tied up and needs to be marked unavailable for scheduling based on where and when operations on subsequent sequences on the same job occur. Additional information is available via the Configuring Availability and Availability Exceptions

Scheduling Continuous Routings

Version 17.02.010 and higher introduces somenew methods to schedule Routings Sequences that both enhance and differ from some of the scheduling sections contained on this page. The concept is called Continuous Routings and is designed to have the system automatically schedule a job when there is sufficient time on the calendar to schedule the connected, continuous sequences. For example, if a job will take 6 hours to complete, have the system evaluate and shift sequences without any gaps. Gaps might be another routing sequence, blackout, or open space. This features applies when scheduling routing sequences manually or automatically (earliest, latest, etc.). 

Configuration

The beginning of this page refers users to the Configuration section of Scheduling Production Jobs for the required items. This configuration still applies and the configurations required to use the Continuous Routings feature are contained on that page as well. Some additional configuration notes on the Continuous Routings are listed below.

  • Three field have been added to support this feature:
    • Allow Sequences To Shift - Located in Production > Options and used to determine how the system will schedule routing sequences on Work Centers (on the Master Production Calendar) when there is a conflict with another already scheduled sequence.
    • Schedule Continuously - Located on the Routings form and used to ensure sequences on the same routing will be schedule together without any gaps.
    • Schedule Around Blackouts* - Located on the Routings form and used to determine if routing sequences (on the Master Production Calendar) will be scheduled or not schedule over non-maintenance blackouts. *The Schedule Around Blackouts field may be used independent of the other two fields and functionality listed above.

Continuous Routing Scheduling Process and Logic

Features Overview:

  • Provide a way for all sequences within a single routing to be scheduled together.
    • Option would apply during automatic scheduling(earliest, latest, optimize) and when manually rescheduling and systematically moving earlier/later sequences. 
    • Functionality will not work with lead time days on routing sequences. These will be disabled and set to 0.
  • Allow the system to schedule sequences on any valid work center using the work center routing sequence relationships. 
    • This option is not applied during automatic scheduling, only when manually rescheduling and then systematically moving earlier/later sequences. 
    • This option only works when the sequences must be scheduled together. If the sequences don't have to be scheduled together the current logic of looking forward and finding an open space is still valid. 

Manually Re-Scheduling an Already Scheduled Sequence(drag and drop)

  1. When manually re-scheduling continuous routings sequences that are already scheduled on a work center, the sequence a user drags and drops must land in a valid open space because shifting will not be allowed. In this case, the system will not prompt the user to move earlier/later sequences, since it assumes the answer is yes.
  2. If the user moves a sequence from one work center to another, but the time does not change, it should not trigger rescheduling of the other sequences.
  3. When attempting to move earlier/later sequences forward or backward if there is a conflict on the default work center the sequence cannot be moved to a different time on the schedule because this would violate the continuous logic. Instead the system will evaluate other valid work centers to determine if the sequence can be scheduled on one of them.
  4. The system will then use the settings in the "Restrict To Work Center" field on each sequence when scheduling.
    1. If a work center can be found where the sequence can be scheduled, the system will schedule it there and move to the next sequence.
    2. If any one sequence on the routing can't be scheduled on a valid work center, nothing should be rescheduled, because the continuous logic would be violated. The user will receive the following prompt ”Sequences <<sequences that can’t be scheduled>> could not be scheduled to remain continuous.” The system will then put everything back to where it was on the schedule already before the user moved a sequence. 
    3. NOTE: The system will consider that run rates could be different on the other work centers and ensure there is time for the rate on the alternate Work Center. The system will also evaluate if each sequence is allowed to schedule around blackouts. If a sequence is not allowed to schedule around blackouts then a blackout or sequence scheduled for another job would be treated the same, and the system will prevent the sequence from being scheduled on the work center.

Manually Scheduling an Un-Scheduled Sequence

  1. When manually moving a sequence for a continuous routing from off the schedule at the bottom onto a Work Center, the system maintains the existing prompt that asks to schedule the other sequences. 
    1. If the user says no, the system will allow them to schedule the 1 sequence. 
    2. If the user says yes, the system will attempt the schedule the other sequences first on the default work centers, and then, if necessary, evaluate other valid work centers. If all sequences can’t be scheduled to maintain the continuous logic, the users will be presented with the same prompt as before: ”Sequences <<sequences that can’t be scheduled>> could not be scheduled to remain continuous.” At this point, the system will remove all of the sequences from the schedule. 

Scheduling and Rescheduling

Since this new feature will allow users to schedule 1 sequence, but when rescheduling the system must move all sequences, the following changes are added to reconcile these differences.

  1. Any time a continuous routing has more than 1 sequence on the schedule, if the users moves a sequence to a different time, it will attempt to automatically schedule all other scheduled or un-scheduled sequences. If they can’t be scheduled continuously the user will be prompted (with the same prompt listed in the previous sections) and put all sequences back where they were originally.
  2. If only one sequence is schedule and a second is dropped on the calendar, then:
    1. If the sequence is dropped at a time that does not violate the continuous logic, it is not necessary to move the already scheduled sequence.
      1. If the user says yes to schedule the other un-scheduled sequences, then the system will attempt to schedule them, and prompt (same prompt as above) and revert changes if they can’t be.
      2. If the user say no to schedule the other un-scheduled sequences, the second sequence will be scheduled. 

This will allow a user to manually schedule each sequence for a continuous routing as long as they do not violate the continuous logic when placing any individual sequence on the Master Production Calendar. 

Un-scheduling

  1. When a sequence for a continuous routing is un-scheduled the user will be presented with the the prompt to ask if they want to un-schedule the other.
    1. If the user selects yes – the system will un-schedule the other sequences.
    2. If the user selects no – the system will leave them as they are on the calendar.

Diagnostic Tips

When attempting to schedule multiple Routings at the same time in the MPC, I received a system prompt stating "Unable to schedule routing sequences for XXXX-XXXXX."

This occurs when you drag a routing onto the calendar, choose yes to “Would you like to schedule subsequent sequences for this job line after this sequence?” and the date/time is before the current date/time. The user should receive an error specifying the exact job number and error type the attempted job is causing. One common example is that Deacom does not allow scheduling prior to the current date.