Introducing task constraints for production scheduling

    Jan Viergutz
    September 30, 2020

    A couple of weeks ago Elmar wrote a blog post introducing the concept Referred Constraints. We started working on this topic when we introduced job networks in the second to last update giving you more interconnection for your jobs.

    With the current release, we return to the topic of referred constraints as the main point amongst smaller updates to existing functionality. We thought about how to incorporate the area of referred constraints into the not yet tackled requirement of referred resource constraint. We decided that task constraints should be the first step on that journey.

    Task Constraints

    We now added a new constraint type to resource groups, called a task constraint. When setting a task constraint on the resource group constraint of a task, the scheduling engine will guarantee that the resource selected for the task you selected as a constraint, will also be selected for the current task.

    --> Want to learn more about the just plan it features? Join us for a webinar  on Oct 7, 2020 <--

    To set a task constraint your task routing must meet a few requirements:

    • The task you want to use as a constraint must come earlier (for ASAP)/later (for JIT) in the routing of the current task
    • The task you want to use as a task constraint must contain the same resource group constraint

    The reason for these requirements is that we wanted to guarantee a plannable result. If you could select any task as a constraint we could not guarantee that there will be a resource suitable for the current task, which would lead to moments of frustration when you try to figure out why something wasn’t scheduled.

    Now let’s see how you can set up a task constraint with the following example job.  

    task constraint 1-1

    As you can see in the image above we added a new column to the task table in the “Manage Job Details” dialog. In this, you can add a task constraint for any given task that follows the criteria above.

    In this case, I set up task T005 as a task constraint for task T045. This means that T045 is guaranteed to be run on the same resource that is (automatically) assigned to T005. Please Note: You can’t set a resource constraint and a task constraint on the same task at the same time. The above set up will result in the following scheduling result:

    taskConstraints 2

    You will notice that:

    • T005 is assigned to resource “Emily”.
    • Because of the task constraint “Emiliy” is automatically assigned to T045, too.

    If you change the schedule e.g. by changing the sequence number of this job, then this can lead to another resource that is assigned to T005. But via the task constraint you always ensure that T045 will get the same resource, too.

    As an additional visual indication of a task constraint, you will see the highlighted icon appear on all tasks with a task constraint.

    Task constraints can also be set inside of both job templates and component templates, but as for components, they can only reference other component tasks.

    We do recognize that there is room to grow here and we are more than willing to upgrade this feature in the future, but we do feel that this is a very powerful start already, letting you build an even more powerful automatic schedule.

    --> Want to learn more about the just plan it features? Join us for a webinar  on Oct 7, 2020 <--

    Additional Enhancements

    Disassociating Components from Jobs and Job Templates

    When we introduced components a couple of releases ago, it was not possible to modify the job tasks created by components without impacting the component directly. Of course it unrealistic in the environment of volatility on the job floor that everything will always happen the way originally envisioned.

    This is why we wanted to enable you to make adjustments if necessary while still benefiting from components when initially creating the jobs.

    With this release, we follow the same approach we do when a job is being created by a template. This means that when you want to change anything about the component reference for a job we disassociate the component from the job and create the component tasks directly in the job, allowing you to edit them just like any regular task.

    To do this just open the “Manage Job Details” dialog for the job you need to edit and click on the pen icon next to the component you want to disassociate.

    component disassociation 1

    This will trigger a quick confirmation dialog to inform you about what will happen. Click Ok to continue.

    component disassociation 2

    Finally, you will see the tasks formerly created and associated with a component as normal tasks with all the information previously being present imported and ready for you to change. You might also notice that this updated the predecessors of task T040 to incorporate the newly created tasks instead of the component.

    component disassociation 3

    Automatic calculation for Task Progress

    If you are using the execute mode you already have a powerful tool to incorporate your shop floor realities into your planning. But what the execute mode did not tell you without your own research is how far along you running jobs and tasks are. This changes with this update as we now calculate the completion of your task using your estimated production times and the current planning start. Furthermore we now also show the average completion of all tasks on the job tooltip to help you get an immediate sense of how far along your jobs are.


    To see the task completion you can either look into the task details dialog or set the field as a tooltip for any view you would like to see it by selecting the field “Task Progress” in the tooltip configurator. In addition to those functionality upgrades, we of also fixed a few bugs and errors and enhanced our testing capabilities to keep everything running smoothly. We also continue working on making just plan it better and giving you the best possible planning solution.

    Happy Scheduling!

    Curious to see the new capabilities in action? Join us for a webinar on October  7.  >>

    Subscribe by Email

    No Comments Yet

    Let us know what you think