Optimization extension - The Flexible Scheduler

Use the Flexible Scheduler to set specific timeframes for scheduling jobs.

Overview

The Flexible Scheduler extension provides dynamic job time constraints that enable schedulers to set specific timeframes for scheduling jobs on any day of the week, down to the hour.

With this extension, schedulers can define flexible time constraints for the following types of jobs:

  • Jobs that start after a specific time, end or start before a specific time, or start within a specific time range during the day.
  • Jobs scheduled for a specific day of the week (Monday to Sunday).
  • Overnight jobs completed within a specific time range.
  • Any combination of the above.

For example:

  • Jobs must be completed between 9 AM and 4 PM on any given day, regardless of resource availability (e.g., business hours that account for resources’ travel time from home).
  • Jobs scheduled every Saturday and Sunday.
  • Jobs can only start in the afternoon, after 3 PM.
  • Jobs must start in the morning, no later than 12 PM.
  • Jobs must be done overnight between 10 PM and 5 AM (to avoid traffic congestion).
  • Jobs scheduled on Monday or Wednesday: on Monday, they must start in the morning; on Wednesday, they must start in the afternoon.

To use the Flexible Scheduler extension, contact your Customer Service Representative for more information about getting the skedulo-extension/dynamic-job-time-constraints package installed. This package includes the data model and the Flexible Scheduler extension required for implementing dynamic job date constraints.

Prerequisites

  • The skedulo-extension/dynamic-job-time-constraints package has been installed on your team. Contact your Customer Service Representative for more information about getting this package installed.
  • Administrators have enabled the Use Optimization Extensions option in Beta feature settings.

Data model

The package includes a data model with a custom object and custom fields, as described below, enabling you to define dynamic job time constraints.

For more information about objects and fields in Skedulo, refer to this article.

DynamicJobTimeConstraints (custom object)

Once the package is installed, the DynamicJobTimeConstraints custom object and some custom fields will be generated automatically. Refer to the following table for more information:

Field name Field type Description
Job Lookup The job associated with the dynamic job time constraint.
StartAfter Time Specifies the earliest local time that a job is allowed to start.
StartBefore Time Specifies the latest local time that a job is allowed to start.
EndBefore Time Specifies the latest local time by which a job must be completed.
FeasibleDays Multipicklist Lists the days of the week when the job can be scheduled. All days are feasible by default.

Jobs object

Once the package is installed, some custom fields will be generated in the Jobs object. Refer to the following table for more information:

Field name Field type Description
ViewDynamicJobTimeConstraints URL (read-only with default) A link that takes the user to the platform page list view to see dynamic job time constraints.
DynamicJobTimeConstraints HasMany The HasMany relationship to DynamicJobTimeConstraints.

Overnight jobs

If the StartAfter time is set later than either the StartBefore or EndBefore time, the time constraint will apply overnight. This means the job can start within the feasible time range from the current day and to the next day.

If only StartAfter is set, the end of the time range is implicitly midnight of the current day.

If only StartBefore or EndBefore is set, the start/end of the time range is implicitly midnight of the previous day.

Use the Flexible Schedule extension

Do as follows to apply the Flexible Schedule extension:

  1. Create an optimization recipe or open your existing optimization recipe that you want to apply this extension.

  2. Once the set up is done, scroll down to the bottom of the recipe details page.

  3. In the Extensions section, select dynamic-jtc-optimization-extension from the drop-down.

    Choose the dynamic job time constraints extension

  4. Click Save when you have finished.

  5. Go to the work details page of your desired work item.

  6. Switch to the Field tab.

  7. Select the link to open the dynamic job time constraints page list view. Then select Create new.

    View all dynamic job time constraints

  8. The Create a dynamic job time constraint modal appears.

    Create a dynamic job time constraint modal

    a. Choose the time that suits your requirements. See this table to learn about each field.

    b. Select Create.

  9. Run your optimization using the recipe with the Flexible Scheduler extension that you’ve just set.

Once you’ve run your optimization using a recipe with this extension, the time constraints will be applied to each job they are associated with.