This section explains the logic the booking engine uses to identify and assign available appointment slots. The system follows a tiered evaluation process that prioritizes ordinary availability before moving to alternative or extended searches.
Included/excluded feature
Booking with Scheduling: Managed Features and Limitations
The Booking with Scheduling logic operates based on a specific subset of FSM features. Below is the breakdown of what is currently supported and what is excluded during the scheduling phase.
Supported Features
When calculating availability, the scheduling engine takes the following into account:
-
Fixed teams and Crew shells
-
Unavailability
-
Mandatory and excluded resources defined on the schedulable Work Order
-
Preferred resources defined on the schedulable Work Order
-
WO permit requirements defined on the schedulable Work Order
-
Scheduling zones (Geographic constraints)
-
On-duty availability
-
Day occupation rules
-
Lock scheduling days rules
-
Resource work schedule types: All options are currently managed
-
Multistage: Only pre-existing multistage links between activities in the daily plan are considered
-
Resources in mixed teams in daily plan: These resources are integrated only with single activities
-
Supported Work Order (WO) Types for WO created during appointment booking:
-
WOs by Order: Fully supported.
-
WOs by Operation:
-
Supported if they contain a single operation.
-
If they contain multiple operations, only the first operation is managed.
-
-
Non-Managed Features and Limitations
The following features and rules are not managed within this specific scheduling logic:
-
Formations
-
Day saturation rules
-
Contractors management and Container resources management
-
Mandatory and excluded resources defined on the target booking Work Order
-
Preferred resources defined on the target booking Work Order
-
WO permit requirements defined on the target booking Work Order
-
Supported Work Order (WO) Types for WO created during appointment booking:
-
WOs by Order: Fully supported.
-
WOs by Operation:
-
Supported if they contain a single operation.
-
If they contain multiple operations, only the first operation is managed.
-
-
Understand appointment slot identification logic
This section explains the logic the booking engine uses to identify and assign available appointment slots. The system follows a tiered evaluation process that prioritizes ordinary availability before moving to alternative or extended searches.
1 . Ordinary availability evaluation
The system searches for available slots based on the following criteria:
Search window
-
Start date: must be greater than or equal to the calculated start date (based on the First Date parameters, or the previous appointment's end time).
-
End date: must be earlier than the Service Level (LDS) — the minimum between the Work Order Type's LDS and the deadline sent in the request — and earlier than the defined Programming Horizon.
Process
-
The identified interval is divided into sub-periods based on the model's specified length.
-
The system filters for slots where the number of booked appointments is lower than the maximum appointments allowed.
Assignment
The engine searches sequentially through the sub-periods using Gisware to identify the required slots (Primary + Additional). The slot containing the assigned start time of the activities is selected.
Failure
If no slot is found, the system proceeds to Step 2.
2. Alternative slot evaluation
This phase is governed by the Work Order Type attribute "Booking Handle minimum number (Only Capacity Booking)".
-
If the flag is set to 1: the system looks for an alternative slot within the Service Level.
-
It identifies slots where booked appointments are lower than the minimum appointments.
-
It sorts these slots by (Minimum − Booked) in descending order, then by date in ascending order.
-
It selects the first slot — the one with the most availability to reach the minimum, and furthest from the current date.
-
-
If the flag is 0 or null: the system does not force a slot within the Service Level, and proceeds to Step 3.
3. Final evaluation (beyond Service Level)
If no slot is found within the Service Level, the system repeats the Gisware search logic described in Step 1 for sub-periods beyond the Service Level, extending up to the full Programming Horizon.
Back-up logic (timeout handling)
To prevent the process from hanging, a timeout is enforced on Gisware calls, configured via company.fsm.booking.schedulingcall.timeout. If this timeout is exceeded, the system falls back to the following logic:
-
From the initial set of slots, it identifies those where booked appointments are lower than the minimum appointments.
-
It sorts them by (Minimum − Booked) in descending order, then by date in ascending order.
-
It assigns the first slot — the one with the highest availability to reach the minimum, furthest in time.