Planning and Scheduling Optimization is a scalable optimization framework which conducts advanced workforce scheduling. It comprises a number of separate calculation and optimization engines - one of these is the Appointment Booking Engine (ABE).
The ABE receives Appointment Requests, and then rapidly returns a set of Appointment Offers - time slots that are currently suitable for the work to be performed. Once a particular slot has been selected, as suitable, the Appointment can be confirmed, and the reservations on the remaining unused slots are cancelled.
The integration of ABE with IFS Cloud provides functionality for the booking of appointments to carry out work tasks / Request tasks in order to:
An Activity (Demanded resources for a Work Task work tasks / request task) is sent from IFS Cloud to the Appointment Booking Engine using an Appointment Request. The Activity details are accompanied by a set of Availabilities - time slots, over a defined period, that are considered suitable for the work.
The booking engine is required to rapidly return a set of Appointment Offers. To do this, it uses a different set of algorithms to those used by the Dynamic Scheduling Engine (DSE) - optimized to give a quick response, rather than the very best schedule. The offers are constrained by the available resources, skill limitations, travel times, resource and travel ‘costs’. The engine is not trying to find the best overall value for the organization (as the DSE does) - rather it is looking at whether the appointment slot is feasible - and if so - what is the resulting ‘value’ of the slot. The ‘value’ is the difference between the positive ‘revenue value’ attributed to carrying out the activity, minus the associated resource/travel ‘costs’. If the ‘costs’ are greater than the ‘revenue value’, then no appointment offer will be made for the slot.
The ‘values’ are returned to IFS Cloud, with the slots, and are then displayed to the user to assist them in choosing an appointment that will maximize the benefit to the organization and that will suit the customer - they are free to choose any proposed offer slot.
Offers will be returned for the period defined in the dataset (Appointment window days + Scheduling window days), or a shorter period, defined by the Period Start/End dates in the Appointment Booking session. There are indicators in the Appointment booking page, to distinguish for each offer whether it is in the Scheduling SLA range - subdivided into Primary (meets the required SLA) or Secondary (missed the SLA, still schedulable) periods.
The appointment offer, from the ABE, may be for the whole slot, or can be for a shorter window, within the slot (depending upon the booking session parameters). Shorter windows are used where an appointment (say - 2 hours long) is to be booked within a morning (4 hours) - only one offer is made, per morning - the booking engine decides when the best 2 hour window is, within the 4 hour slot. The appointment start and end dates are visible on the work task's / request task's scheduling information when the appointment booking is accepted - the booking session is then concluded.
The following IFS Cloud components must be installed in order to use the Planning and Scheduling Optimization integration:
An appointment request is a message from IFS Cloud to the ABE, detailing the activity to be booked, and the possible time slots that should be considered.
An appointment offer is a message from the ABE to IFS Cloud, detailing, per requested slot, whether the slot can be offered as an activity booking, and if so - the ‘value’ of the offer. For each slot, the proposed appointment start/end time is defined. When an offer is made, all the offered slots are ‘reserved’ against the request - as this may prevent other activities also being scheduled for the same times, with the same resources, the offer has a timeout - if the offer is not accepted within the timeout, the offer will automatically lapse after the timeout. Typically a timeout should be 10 minutes, or less, to ensure slots are not kept reserved for too long.
An appointment acceptance is a message from IFS Cloud to the ABE, telling ABE to accept one of the offered slots, and to unreserve all the other slots.
To decline an appointment offer is to ask the ABE to unreserve all the offered slots. Another request can be made - immediately - and other activities can be freely scheduled, as the resources ‘reserved’ to the requested slots have now been ‘unreserved’
Scheduling activity types should be defined. The following scheduling information should be defined per activity type, for use with the appointment booking process:
An availability per activity type. The availability defines the default parameters that will be used by an appointment booking session.
The Dataset has two time periods set against it, in Basic Data. The Scheduling Window is the time span used by the DSE to schedule activities, using the most powerful algorithms. The Appointment Window is a period, following on from the Scheduling Duration, that is also processed by the DSE, using a faster, less optimized algorithm. Even if the appointment booking engine is not being used - this Appointment Window is still relevant - the DSE performance is better if the workload is split across the two windows - short term and medium term activities do not need the same algorithms - all activities are scheduled across both time periods.
However - if the ABE is to be used, it is mandatory that an Appointment Window is defined, and the Process Type must be set to ‘Appointment’ for an Appointment Window to be considered by the scheduling engine.
If an appointment needs to be booked in a period beyond the Appointment Window - this will not be possible using the ABE. The Appointment Window can be extended, but a new LOAD message must be sent to PSO, before this change can be used. As a new LOAD is not normally sent whilst planners are using the system, the Appointment Window should be chosen so that it encompasses the period over which appointments will be made, using the ABE.
Availability is defined in Basic Data for Scheduling as a template, that can be attached to Activity Types. The purpose of the Availability is to hold the key data that defines the appointment parameters. The Availability header records data for the default period (Period Start Offset - the number of days from today, that the bookings can commence, and the Period Length - number of days over which to ask for booking offers), the type of Appointment (Appointment to Start/Appointment to Complete), the default for Slot Availability (all slots are initially Available, or Not Available) and the auto request option( initiate a request to ABE immediately after opening the appointment booking page). An Availability template has one or more Slot templates linked to it. One Slot template is the default. Each linked slot has a Calendar.
When a new Appointment Booking session is created, the relevant Availability is fetched - appointment slots are generated based on the Availability and Slots defaults. Slots are created, of a time period defined by the Slot Length, and on working days from the linked Calendar.
Slot templates are defined in Basic Data for Scheduling- a library of slot types that can be used within Availability templates. A Slot has two times - a Slot Length and a Slot Window. The Slot Window is optional. The Slot is defined by the Length - if the Window is less than the Length, then the ABE will return an offer, per slot that is more tightly constrained than the slot length - used typically where a premium service is being offered, with tightly defined appointments. Also, when a slot is connecting to an availability, it is possible to define an offer rounding factor which determines to what extend the offer times from ABE are rounded (e.g. offers only to be made on the half hour intervals) .
For more information on the scheduling parameters related to the Planning and Scheduling Optimization Integration please refer to the activity Define Scheduling Configuration.
In order to book an appointment for a work task/ request task, the task must be set to a status less than Work Started. All information required by the Planning and Scheduling Optimization also needs to be present for the work task / request task.
For a work task / request task to be appointment booked, it must
The Appointment Booking session is started from a click the Appointment Booking under Sheduling command in header of the page. Depending on the parameter Appointment Booking Layout Mode (Scheduling/Basic Data/Scheduling Configuration), the new layouts can select either in Grid mode or Calendar mode.
The booking form has a header, showing the main appointment parameters, below which is a table area (or calendar) to display and manage the appointment slots and offers. All actions on the form are made via local form buttons.
The Appointment session follows a workflow
Status | Description |
Preliminary | An Appointment Booking is started at the status Preliminary. The default parameters are loaded from the Availability, linked to the work order (via the work type). If an Availability is not linked to the order, the booking session remains at this status |
Slots Generated | If a valid set of Availability/Slot parameters exist for the work task / request task, then the parameters are used to generate appointment slots, and the session is automatically changed to status Slots Generated. The slots are shown in the table/calendar area |
Request Sent | Once slots have been generated, the Request button is activated. Selecting the Request button sends the status to Request Sent. A message is sent to the ABE - whilst this is in progress the booking form fields cannot be changed. |
Offer Received | When a set of offers is received from the ABE, the details of the offers are updated against each slot, and the status changes to Offer Received. When a slot has an offer, the offer value, offer rank, and offer times are displayed. If the offers are not acceptable - the offers can be Declined - the status returns to Slots Generated, allowing the parameters to be edited, and a new request made |
Offer Accepted | If an offer is suitable - the relevant slot line/record can be selected - and Accepted. The form will automatically close. The details about the appointment mode booked and the dates of the appointment for the work task will be set in Work Task/Scheduling/General (for request task, Work Task- Scheduling & Allocation/PSO SCHEDULING INFO). |
The Availability parameters on the booking form header can be edited, in states Preliminary and Slots Generated.
Selecting a Slot ID, from a list of values, sets the Slot Length and Slot Window.
The Period Start and End dates default from the Availability (calculated using the Period Start Offset and Period Length) - these can then be edited - the Period End Date must not be later than the end of the Dataset Appointment Window.
The Appointment mode is set from the Availability, but can be changed. An Appointment to Complete assumes that the job has to be started and finished within the slot - if this is selected, a check is made against the activity duration - if the duration is longer than the slot, then a booking cannot be made, and a longer slot needs to be selected.
The Slots are generated based on the Slot Length, and the Availability calendar, for the period defined by the start and end dates - slots are only created for working hours. Slots are defaulted to Available/Unavailable - depending upon the Slot Availability setting on the Availability.
All of the parameters, although derived from the default Availability/default Slot ID, can be edited, either directly, or by choosing a different Slot ID. Once a change has been made, the Apply button is selected to save the changes. The original defaults can be reset, using the Default button. The Refresh button reloads the stored values - used if changes have been made, that should not be saved - so the previously saved values need to be restored.
Once offers have been received, the only fields that can be edited, at Offer Received status, are the Slot Value Factor and the Slot Available selector button.
If an appointment has already been made (shown on the Scheduling tab of a work task / request task - Appointment Dates and Appointment Mode), then it can be cancelled, if required, by the use of the button option ‘Cancel Appointment’. This will remove the appointment from the work task / request task and from Planning and Scheduling optimization.
An appointment can also be rebooked. If an appointment has already been made and a new appointment booking session is initiated, a warning is given- that an existing appointment already exists. No change to the existing appointment is made until a replacement has been booked. If no suitable replacement can be found, then the booking session is closed and the existing appointment is left unchanged.
If a rebooking is made then a work order journal entry is registered to assist with analysis of bookings and ensure that a full record of changes is maintained.
If an offer is accepted, that is outside the Primary SLA period (i.e. it is too late), then a reason code (with optional notes) is a required entry - generally only offers within the SLA should be selected - but sometimes these are not available, or the customer requests a later date - the reason coding allows for these different circumstances to be recorded accurately.
In the appointment booking window the option Override Appointment is available as an option to book an appointment outside the given slot-times. If the customer/appointment stakeholder is not satisfied by the available appointment slots given from the Appointment Booking Engine the user can override the appointment slot. In the Override Appointment page there are possibilities to manually create the appointment slot for the work. The user can freely enter a start and end-time for the appointment slot which will be applied for the work task / request task activities. This should only be used for exception handling of appointments when the slots given by the Appointment Booking Engine is not acceptable by the customer.
Note: When overriding an appointment and creating it manually through the Override Appointment page it will not be sent as an appointment request to the scheduling engine. This means that an appointment slot entered as an override appointment will not consider if there are available resources during the time-slot booked, or if the constraints for the work task / request task activity can be fulfilled during this time-slot. Therefore it is recommended that the option to override an appointment only should be used for exception handling when booking appointments in Planning and Scheduling Optimization.
When the appointment slot is created as an Override Appointment the scheduling type for the work task / request task activities will be set as the defined scheduling type used for appointments. In Work Task/Scheduling/General (for request task, Work Task- Scheduling & Allocation/PSO SCHEDULING INFO).the appointment mode will be set from the appointment mode defined when overriding the appointment. The start and end-date of the appointment slot will also be set. The work task / request task activities are now considered as appointment booked and will be sent to the scheduling engine to be scheduled. The scheduling SLA for the activities will be set accordingly to the appointment slot entered.
It is possible to configure appointment booking to allow work task
/ request task
appointments to move other task activities with less importance or business value.
This functionality would typically be used when appointment work tasks
/ request task should
be favored over certain low priority work tasks
/ request task.
In order to accomplish this behavior the “MaxDisplaceableActivityPriority”
parameter in Scheduling Workbench (Workspace - Administration) which per default is set to "-1" must be changed to
"2".
Below is an example on how the Displacement functionality works:
Appointment Availability
Appointment Booking
Appointment Reason
Appointment Slots
Appointment Value
Location
Location Addresses
Location Region
Location Type
Locations
Modelling Dataset
Prepare Work Order
Scheduling Activity Type
Scheduling Broadcast
Scheduling Configuration
Scheduling Dataset
Scheduling Resource Type
Scheduling Resources
Scheduling Type
Travel Cost Model
Travel Profile
Weighting
Work Task
Work Task - Scheduling & Allocation
Work Types
e