Skip to main content

Changelog

November 2024

  • Introduced PatternConstraint which is an improved version of the ShiftPatternConstraint. Switching to this new constraint should improve many previously existing challenges with configuring the ShiftPatternConstraint.
  • Introduced maxConsecutivePeriods on the PeriodDistributionConstraint. This allows you to set a maximum number of consecutive periods that an employee can work.
  • Introduced minWorkedPeriods on the PeriodDistributionConstraint. This allows you to set a target minimum number of periods that an employee must work.

October 2024

  • Added days on periods to allow for more flexible period definitions.
  • Added idealShifts and idealHours on EmployeeUtilizationConstraint to allow for more flexible utilization targets.
  • Introduced overlapRules on EmployeeUtilizationConstraint and PeriodDistributionConstraint which allow you to configure under which conditions a shift is considered to have enough overlap for the constraint to take it into account.
  • Introduced EmployeeAvailabilityConstraint as a replacement for BlockedTimeConstraint and WorkingTimePreferenceConstraint.
  • Grouped filter options into filters on all non-deprecated constraints. This has improved consistency between constraints in terms of the available configuration options, and made it easier to find which filters a constraint supports.

September 2024

  • Marked many constraints as deprecated. These constraints will be supported via new or previously existing constraints in an effort to simplify the constraint configuration. This update comes with signifcant improvements to our internal handling of the constraints, improving solver performance. Below shows the mapping of the deprecated constraints to their replacements:
Deprecated ConstraintReplacement ConstraintDetailed Description
BlockedTimeConstraintEmployeeAvailabilityConstraintStrict and undesired instances of the EmployeeAvailabilityConstraint will completely block an employee from working the specified times.
WorkingTimePreferenceConstraintEmployeeAvailabilityConstraintNon-strict instances of the EmployeeAvailabilityConstraint can prioritize or avoid (based on whether the constraint is desired) certain time periods or shifts for employees.
ShiftPatternConstraintPatternConstraintThe PatternConstraint is a more robust version of the ShiftPatternConstraint, with a uniform way of handling desired/undesired versions of the constraint.
WeekendDistributionConstraintPeriodDistributionConstraintThe PeriodDistributionConstraint is a more generalized version of the WeekendDistributionConstraint, allowing for more flexible period definitions.
WeekRestConstraintPeriodicRestConstraintThe PeriodicRestConstraint is a more generalized version of the WeekRestConstraint, allowing for more flexible period definitions.
ShiftUtilizationConstraintEmployeeUtilizationConstraintThe EmployeeUtilizationConstraint is a more generalized version of the ShiftUtilizationConstraint, with more filter options and with the option to set targets in either shifts or hours.
ShiftLayoutConstraintRestBetweenShiftsConstraintBecause they serve similar functionality, our goal is to make RestBetweenShiftsConstraint be able to handle all functionality within the same constraint.
ConsecutiveTimeOffConstraintPeriodicRestConstraintBecause they serve similar functionality, our goal is to make PeriodicRestConstraint be able to handle all functionality within the same constraint.
NewWorkingDayConstraintTBDNo name has been decided yet, but our goal is to group this constraint together with ExistingWorkingDayChangeConstraint because of the high similarity between the two.
ExistingWorkingDayChangeConstraintTBDNo name has been decided yet, but our goal is to group this constraint together with NewWorkingDayConstraint because of the high similarity between the two.
  • Introduced priorities on demands, allowing you to prioritize certain demands over others.
  • Introduced periodLabels in configuration. These allow you to easily reuse period definitions in other places in the payload. For example, it could be useful to create a generic 'weekend' periodLabel, or a 'public-holiday' label.

August 2024

  • Introduced PeriodDistributionConstraint, a generalized version of the WeekendDistributionConstraint.
  • Improved the configuration options on EmployeeUtilizationConstraint. It now also supports periods.
  • Introduced the option to track bonus FTE hours during inconvenient times. Configured in the EmployeeUtilizationConstraint and configuration.

July 2024

  • Improvements to the request payload format for better readability and structure
  • id, organisationId and scheduleType are now grouped in the new jobInfo object
  • demandDefinitions have been renamed to timeSlots
  • shifts and shiftTemplates are now top-level objects in the request payload
  • dayDemands has been renamed to demands
  • It is now possible to set min/ideal/max demand levels on ShiftDemands.

June 2024

New

Fixed

  • Refactor json schema to improve readability and structure
  • Several fixes for handling locked shifts
  • ConnectedShifts with DAYOFF in a shift pattern did not work well for shift templates
  • Fixed handling shift templates that are not spanning midnight with DayIndicatorRule END_DAY

May 2024

April 2024

New

  • Allow partial demand coverage for pre-assigned and locked shifts
  • Throw a validation error in the feasibility checker if the request contains too many employees or shifts
  • Validate min/max/cooldown durations per Task(Group) in an xml request
  • Changelog implemented

Fixed