Dynamic Scheduling
Optional Features
Setting Up Dynamic Scheduling
About Dynamic Scheduling
The following components must be installed:
- ABE—Appointment Booking Engine
- ARP—Advanced Resource Planner
- BMS—Broadcast Manager Service
- DSE—Dynamic Scheduling Engine
- PSO Gateway
- IMS—Input Manager Service
- SDS—Schedule Dispatch Service
About the Web.Config File
Edit the following bindings in your IFS Field Service Management (FSM) web.config file, replacing HOSTNAME with the hostname of the dynamic scheduling engine server location. If necessary, change the default port numbers to match your installation.
About Code Tables
Table Name |
Location |
Description |
person_relationship | Global Codes | Contains values that define the relationships between products and persons |
priority | Global Codes | Contains priority codes. They are used to correlate with priority information for dynamic scheduling |
resource_type | Global Codes | Contains resource type codes. They are assigned to resources based on application parameter and business rule. |
task_category | Global Codes | Contains task category codes. They are used to determine which tasks can be scheduled using dynamic scheduling. |
task_status | Code Tables | Contains task status codes. They are used to identify the status of the task and can be set based on information received from dynamic scheduling. The following task_status codes must be set up to use dynamic scheduling: |
task_type | Global Codes | Contains task type codes. They are used
to determine which tasks can be scheduled
using dynamic scheduling.
|
threesixty_dataset_id | Global Codes | Contains the dataset ID used by dynamic scheduling to access the appropriate data. The default value is “360”. |
About Important Records
Person
The fields below have significance when setting up persons.
Field Label |
Description |
Scheduling Resource | Identifies whether the person is considered a resource and can be scheduled for work using dynamic scheduling. |
Field Label |
Description |
Relationship | Identifies the person’s relationship
with the
specified place. For dynamic scheduling, the following
relationships must be specified:
|
Place | Identifies the place with the specified relationship to the person. |
The following fields appear in the Scheduling Breaks area.
Field Label |
Description |
Earliest Start Time | Identifies the earliest time that the break can be scheduled. |
Latest Start Time | Identifies the latest time that the break can be scheduled. |
Duration | Identifies the duration of the break in minutes. |
SLA Type ID | Identifies the service level type associated with this break. |
Schedule Value | Identifies the value of scheduling this break relative to tasks to be scheduled in the same time block. |
Products
The fields below have significance when setting up products. These relationships affect which persons are scheduled
Field Label |
Description |
Relationship | Identifies the person’s relationship with the specified product. |
Person | Identifies the person with the specified relationship to the product. |
Rosters
You must create rosters to be able to use dynamic scheduling.
Teams
Field Label |
Description |
Dataset ID | Identifies the dataset ID used by dynamic scheduling to access the appropriate data for this team. |
Task Template
Field Label |
Description |
Appt Block | Identifies the number of minutes to use for each offer block when performing appointment booking for tasks with this template. |
Crew Size | Identifies the number of resources to assign to this task. |
On-Location Incentive | Identifies the incentive for tasks using this template to score tasks at the same place to the same person and time. A value larger than one increases this possibility. Values larger than two are not recommended. |
Work Calendar
The following break information applies to all persons using this work calendar.
The following fields appear in the Scheduling Breaks area.
Field Label |
Description |
Earliest Start Time | Identifies the earliest time that the break can be scheduled. |
Latest Start Time | Identifies the latest time that the break can be scheduled. |
Duration | Identifies the duration of the break in minutes. |
SLA Type ID | Identifies the service level type associated with this break. |
Schedule Value | Identifies the value of scheduling this break compared to tasks to be scheduled. |
Place
Field Label |
Description |
Share With Co- Requisites | Indicates whether skills specified for related tasks are also considered to be specified on co‐requisite tasks. |
Model
Field Label |
Description |
Share With Co- Requisites | Indicates whether skills specified for related tasks are also considered to be specified on co‐requisite tasks. |
Addresses
Field Label |
Description |
Extra Time | Identifies additional time that is added to travel time to account for any time required to access the work site, for example check‐in or travel between buildings. |
About Scheduling Application Parameters
ALLOCATED_TASK_STATUS. Set this value to a value on the
task_status code table that corresponds to the task status you want to set when a task allocation is received from dynamic scheduling.
ALLOCATION_RESOURCE_TYPE. Set this value to a value on the resource_type global code table that corresponds to the resource type you want to set when creating a task resource when a resource allocation is received from dynamic scheduling.
APPOINTMENT_BOOKING_DISPLAY_CUSTOMER_TIME. If you want to display times in the customer’s time zone when booking appointments, set this value to Y (yes).
APPOINTMENT_BOOKING_FUTURE_DAYS. If you want to define the number days in advance that appointment booking can schedule a task, which determines the number of shifts sent to PSO during initialization, set this value to an integer representing the number of days.
APPOINTMENT_BOOKING_WINDOW_MINUTES. Set this value to the number of minutes to use for each time block when performing appointment booking. This value is ignored when using appointment templates.
APPOINTMENT_BOOKING_SHOW_SCHEDULEVIEW. If you want to view the appointment booking window as a schedule instead of a list, set this value to Y (yes).
APPOINTMENT_LEAD_TIME. Set this number to the amount of minutes lead time you want to use. The earliest appointment offer is now plus the specified number of minutes.
APPOINTMENT_WINDOW_DEFAULT_DURATION. Set this value to the number of days to consider when performing appointment booking.
APPOINTMENT_WINDOW_MAX_DURATION. Set this value to the maximum number of days to consider when performing appointment booking.
APPT_BOOKING_MAX_OFFERS. Set this value to the maximum number of appointment offers that appear when performing appointment booking.
APPT_SCHEDULE_VALUE_MULTIPLIER. Set this value to an integer multiplier used to adjust the schedule value of appointment‐booked tasks. These tasks are identified by a time commitment with PRIMARY response code value.
APPT_TASK_STATUS_VALUE. Set this value to a value on the task_status code table that corresponds to the task status you want to set when a task initiates appointment booking.
BROADCAST_URL. Set this value to the URL of the web service that receives broadcasts from dynamic scheduling.
CHECK_PARTS_AVAILABILITY. If you want to check parts availability when scheduling a task, set this value to Y (yes).
COMMITED_TASK STATUS. Set this parameter to the task status used to indicate a task commitment when the task has been scheduled. Values are defined on the task_status code table.
DEFAULT_ACTIVITY_BASE_VALUE. Set this value to an integer that represents the default value to assign to a task’s schedule value when not assigned by business rule. A higher number means a more valuable task.
DEFAULT_UTILISATION_PERCENT. Set this value to the default utilization percent when utilization for a shift is not specified.
ENABLE_OUTPUT_LOGGING. If you want to enable logging to the threesixty_output_history table, set this parameter to Y (yes).
EXPORT_TASK_CATEGORIES. Set this value to values on the task_category code table that correspond to categories of tasks you want to make available to dynamic scheduling. Multiple values can be specified and must be separated by commas without spaces.
EXPORT_TASK_STATUSES_TO_EXCLUDE. Set this value to values on the task_status code table that correspond to tasks with the specified status that are excluded from availability to dynamic scheduling. Multiple values can be specified and must be separated by commas without spaces.
EXPORT_TASK_TEAMS. Set this value to teams whose tasks are available to dynamic scheduling. Multiple values can be specified and must be separated by commas without spaces.
EXPORT_TASK_TYPES. Set this value to values on the task_type code table that correspond to types of tasks you want to make available to dynamic scheduling. Multiple values can be specified and must be separated by commas without spaces.
GATEWAY_PASSWORD. Set this value to the password used to access the PSO Gateway. This value is not encrypted.
GATEWAY_USERNAME. Set this value to the user name used to access the PSO Gateway. This value is not encrypted.
INPUT_REF_DURATION. Set this value to the number of days in the future to use for dynamic scheduling.
ISWB_ADDRESS. Set this value to the URL used to access Schedule Workbench from the Smart Client.
ISWB_PASSWORD. Set this value to the password used to access Schedule Workbench. This value is not encrypted.
ISWB_WEBCLIENT. Set this value to the URL used to access Schedule Workbench from the Web Client.
ISWB_USERNAME. Set this value to the user name used to access Schedule Workbench. This value is not encrypted.
MAX_COMMITTED_ACTIVITIES. Set this value to the maximum number of tasks that can be committed to a resource at one time.
MAX_RESCHEDULE_STATUS. Set this value to the maximum dynamic scheduling status value for which rescheduling a task is still allowed. If the task has a status with a dynamic scheduling status value higher than this, the existing task is canceled and a new task is created when rescheduling occurs.
MAXIMUM_FREQUENCY. Set this value to the number of minutes before receiving plan information from dynamic scheduling.
MAXIMUM_WAIT. Set this value to the maximum number of minutes before receiving plan information from dynamic scheduling. When not specified, the values of MAXIMUM_FREQUENCY and MINIMUM_PLAN_QUALITY determine when plan information is received.
MINIMUM_APPT_OFFER_MINS. Set this value to the number of minutes you want to specify for the shortest appointment offer.
MINIMUM_PLAN_QUALITY. Set this value to an integer that represents the minimum quality of plan to receive from dynamic scheduling.
MWM_SERVER_TIME_ZONE_ID. Set this value for the time zone on the dynamic scheduling engine. Values are defined on the time_zone code table. For Azure installations, this value must be UTC.
OFF_BREAK_WORK_STATUS. Set this value to the status that identifies that the person is off break. Values are defined on the work_status global code table.
OFF_SHIFT_WORK_STATUS. Set this value to the status that identifies that the person is off shift. Values are defined on the work_status global code table.
ON_BREAK_WORK_STATUS. Set this value to the status that identifies that the person is on break. Values are defined on the work_status global code table.
ON_SHIFT_WORK_STATUS. Set this value to the status that identifies that the person is on shift. Values are defined on the work_status global code table.
READONLY_BREAKS. If you want to disallow scheduling tasks during breaks, set this value to Y (yes).
RESCHEDULE_TASK_COPY_MAP_ID. Set this value to the copy map to be used when rescheduling a task requires that the task is canceled and a new task is created.
REQUIRE_REASON_CODE_TO_ACCEPT_OUTSIDE_ORIGINAL_WINDOW. If you want to require a reason code to accept an appointment outside the suggested appointment window, set this value to Y (yes).
SDS_ENABLED. If you want to use Schedule Dispatch Service to schedule tasks, set this value to Y (yes).
SNAP_TIME. Set this value to the number of minutes before a person’s normal shift when, if the person logs on, tasks can be assigned.
THREESIXTY_ENABLED. Set this value to Y (yes) to enable dynamic scheduling.
THREESIXTY_INPUT_FOLDER. Set this value to a URI that identifies where you want to place input files for dynamic scheduling. This value does not apply to Azure environments.
TIME_HORIZON. Set this value to the number of minutes within which a resource must begin traveling to be considered committed to the task.
TREAT_TEAMS_AS_SKILLS. If you want to consider a team to be a skill, set this value to Y (yes). Activities assigned to a team can then only be scheduled for a resource that is a member of the team.
The following FSM application parameters apply to dynamic scheduling.
REJECTED_TASK_STATUS. Set this value to the status that identifies that the person rejected the task. Values are defined on the task_status code table. If you are using task resources, you must also create a resource type that matches the rejected task status.
USE_SHIFTS_FOR_WORK_SCHEDULES. Set this parameter to Y (yes) if you want to include roster information when calculating work schedules. When N (no), only work calendar is used.
About Business Rules
Required Business Rules
This process assigns a resource type to a resource. Rules are evaluated after specified information is inserted or updated on the database and evaluation stops after the first match.
You can use any resource information as an input parameter. The output parameter is a resource type ID.
This process assigns a base value to a task’s schedule value. Rules are evaluated after specified information is inserted or updated on the database and evaluation stops after the first match.
You can use any task information as an input parameter. The output parameter is a schedule value.
Recommended Business Rules
This process determines whether part needs are shared with dynamic scheduling. Rules are evaluated after specified information is inserted or updated on the database and evaluation stops after the first match.
You can use any part need information as an input parameter. The output parameter is a Y (yes) or N (no) value in the part_need.send_to_threesixty table column.
About the SLA Types Screen
This screen is used to set up types of service level agreements. They affect how tasks and breaks are assigned, with higher levels of service level agreements receiving a higher priority.
The service level type is a parameter of the response code.
- New—used to create a new service level type
- Delete—used to delete a service level type
- Save—used to save changes to a service level type.
Field Label |
Description |
Start Proportion | Identifies the multiplier applied to the base value that identifies how important the start of the scheduling period is than the end. |
End Proportion | Identifies the multiplier applied to the base value that identifies how important the end of the scheduling period is than the start. |
Early SLA Benefit | Identifies how important it is to schedule activity early in the SLA period. |
Generate Jeopardy Exceptions | Indicates whether to create jeopardy exceptions. |
Curve Shape | Identifies the exponential factor used to determine how the activity value changes with time.For values less than 1, the value drops quickly as time approaches the end of the scheduling period. For values greater than 1, the value drops slowly as time approaches the end of the scheduling period. For a value of 1, the value drops linearly as the time approaches the end of the scheduling period. |
Revenue | Identifies the cost expected to perform this activity within the SLA. Appointment Window Length Identifies the length |
Mechanism Type | Always SLA. |
Activity Aging Factor | Identifies the aging factor for the activity. |
Cost | Identifies the cost expected to perform this activity within the SLA. |
Appointment Window Length | Identifies the length in days to use for the appointment window when appointment booking tasks with commitments of this SLA type. |
About the Priority Mapping Screen
This screen is used to set up priority codes. These codes correspond to priorities defined on dynamic scheduling.
- New—used to create a new priority code
- Delete—used to delete the priority code
- Save—used to save the priority code
- Refresh—used to reload priority code information from the database
Field Label |
Description |
Priority | Identifies the priority as it appears on FSM. |
Priority Mapping | Identifies the corresponding priority on dynamic scheduling. |
About the Relationship Preference Screen
This screen is used to set up relationship preferences. Person‐to‐place relationships correspond to preference values on dynamic scheduling.
- New—used to create a new relationship preference
- Delete—used to delete the relationship preference
- Save—used to save the relationship preference
- Refresh—used to reload relationship preference information from the database
Field Label |
Description |
Relationship | Identifies the person to place relationship as it appears on FSM. |
Preference | Identifies the preference as it appears in dynamic scheduling. A value of 0.0 means never consider and a value of 1.0 means only consider. |
About the Resource Types Screen
This screen is used to default values for resources based on the resource type.
- New—used to create new resource type defaults
- Delete—used to delete resource type defaults
- Save—used to save resource type defaults
- Refresh—used to reload resource type default information from the database
Field Label |
Description |
Resource Type | Identifies the type of resource used as a default. |
Cost per KM | Identifies the cost per kilometer of travel. |
Location ID Start | Identifies the address of the resource at the start of the shift. |
Location ID End | Identifies the address of the resource at the end of the shift. |
Travel With Resource | Identifies the resource that other resources of this type travel with. |
Hire Cost | Identifies the cost of hiring resources of this type. |
Travel Profile ID | Identifies the travel profile as defined in dynamic scheduling. |
Cost Per Hour | Identifies the Cost Per Hour, on shift, for this resource. |
Travel From | Identifies the maximum unpaid travel time, in minutes, at the end of shift. |
Travel To | Identifies the maximum unpaid travel time, in minutes, at the beginning of shift. |
Out Of Region Multiplier | Identifies a value, from 0.0 to 1.0, that describes how likely a task can be completed out of the region. 0.0 means that a task is never completed out of the region. |
Release Cost | Identifies the cost of releasing resources of this type. |
Utilization | Identifies the maximum amount, in per cent, that resources of this type can be scheduled into one shift. |
Cost Per Hour Overtime | Identifies the cost per hour, off shift, for this resource. |
Max Travel | The value of the maximum travel field identifies the maximum travel time, in minutes, the resource can travel from the location start. |
Speedfactor | Identifies the multiplier to apply to the estimated travel time to get the assumed travel time for scheduling purposes. |
Shift Cost | Identifies the one‐time cost of assigning work to a resource during a shift. |
Relocation Cost | Identifies the cost of relocating a resource of this type. |
About the Scheduling Exceptions Screen
This screen is used to set up a rule to change the task status and create a task event when a scheduling exception occurs during dynamic scheduling.
- New—used to create a new scheduling exception
- Delete—used to delete a scheduling exception
- Save—used to save changes to a scheduling exception
Field Label |
Description |
Scheduling Exception Type | Identifies the scheduling exception type in dynamic scheduling that causes a change in task status and creates an event. |
Scheduling Exception Reason | Identifies the scheduling exception reason in dynamic scheduling that causes a change in task status and creates an event. |
Task Status | Identifies the task status to set. If this value is not specified, the task status is not changed. |
Event Type | Identifies the type of event to create. If this value is not specified, no event is created. |
About the Response Codes Screen
This screen is used to correlate responses with service levels. For dynamic scheduling, you specify a value in the SLA Type ID field.
About the Utilization Screen
This screen is used to set the utilization percentage used during scheduling. Utilization is defined by shift. We recommend that you lower the utilization percentage as time passes so that you can assign urgent tasks more easily.
- New—used to create a new utilization record
- Delete—used to delete a utilization record
- Save—used to save changes to a utilization record
Field Label |
Description |
Dataset ID | Identifies the dataset used by dynamic scheduling to access the appropriate data. |
Shift Number | Identifies the shift by the number of days from today when it occurs. |
Utilisation Percent | Identifies the amount of the shift, in percent, that can be assigned tasks. |
About the Task Template Screen
This screen is used to default values for the task.
- New—used to create a new task template
- Delete—used to delete a task template
- Save—used to save changes to a task template
Field Label |
Description |
On-Location Incentive | Identifies the incentive for tasks using this template to score tasks at the same place to the same person and time. A value larger than one increases this possibility. Values larger than two are not recommended. |
About the Appointment Template Screen
This screen is used to set up appointment templates. You access it using Scheduling Workbench, on the Planning Workspace, on the Data Management tab.
Appointment Templates (upper part of screen)
This part of the screen contains day and time information for the template as a whole.
Field Label |
Description |
ID | Identifies the appointment template. |
Description | Describes the appointment template. |
Day Pattern | Identifies which days of the week are available. |
Number of Slots | Identifies the total number of slots to return. |
Window length | Identifies the slot length for returned appointment offers. |
Granularity | When the window length is less than the total length of the slot, identifies the slot starting time, always an exact multiple of the granularity. |
Min. Delay | Identifies the minimum delay. |
Start Day | Identifies the day of the week on which the template begins. |
Time of Day | Identifies the time of day on which the template begins. |
Appointment Template Items (lower part of screen)
This part of the screen contains information on slot start and end times.
Field Label |
Description |
Slot start time | Identifies the start time of the slot. |
Slot end time | Identifies the end time of the slot. |
Dynamic Scheduling Setup Procedure
- Set up the referenced code tables and any other code tables required by your organization.
- Set up the referenced records and any other records required by your organization.
- Set the referenced application parameters to the appropriate values.
- Set up the referenced business rules and any other business rules required by your organization.