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.

<endpoint address="http://HOSTNAME:8744/ThreeSixty/Gateway/Service/ Data" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IDataRequest" contract="GatewayService.IDataRequest" name="WSHttpBinding_IDataRequest" />
<endpoint address="http://HOSTNAME:8744/ThreeSixty/Gateway/ Service/SystemManagement" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ISystemManagementRequest"
contract="GatewayService.ISystemManagementRequest"
name="WSHttpBinding_ISystemManagementRequest" />
<endpoint address="http://HOSTNAME:8744/ThreeSixty/Gateway/ Service/Session" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ISessionRequest" contract="GatewayService.ISessionRequest" name="WSHttpBinding_ISessionRequest" />
                                 <endpoint address="http://HOSTNAME:8744/ThreeSixty/Gateway/ Service" binding="wsHttpBinding"                           bindingConfiguration="WSHttpBinding_IRemotingInterface" contract="GatewayService.IRemotingInterface" name="WSHttpBinding_IRemotingInterface" />


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.
  • ASSIGNED
  • APPOINTMENT
  • CANCELED
  • COMMITED
  • COMPLETE
  • COMPLETED
  • CLOSED
  • HOLD
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.

Details


Field Label

Description

Scheduling Resource Identifies whether the person is considered a resource and can be scheduled for work using dynamic scheduling.


Places


Field Label

Description

Relationship Identifies the person’s relationship with the specified place. For dynamic scheduling, the following relationships must be specified:
  • Starts work from
  • Ends work at


If you want to consider parts availability when scheduling, you must also set up a place for stock relationship.
Place Identifies the place with the specified relationship to the person.


Calendar Exception

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

Persons


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

Header


Field Label

Description

Dataset ID Identifies the dataset ID used by dynamic scheduling to access the appropriate data for this team.


Task Template

Header


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.

Work Time

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

Skills


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

Skills


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

PSO Resource Type ID Selection (Process 98)

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.

PSO Task Base Value Selection (Process 99)

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

Part Need Send to PSO Selection (Process 109)

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.

Header
Buttons
  • 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.


Significant Fields

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.

Header
Buttons
  • 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



Significant Fields

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.

Header
Buttons
  • 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



Significant Fields

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.

Header
Buttons
  • 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



Significant Fields

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.

Header
Buttons
  • New—used to create a new scheduling exception
  • Delete—used to delete a scheduling exception
  • Save—used to save changes to a scheduling exception



Significant Fields

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.

Header
Buttons
  • New—used to create a new utilization record
  • Delete—used to delete a utilization record
  • Save—used to save changes to a utilization record



Significant Fields

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.

Header
Buttons
  • New—used to create a new task template
  • Delete—used to delete a task template
  • Save—used to save changes to a task template



Significant Fields

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.


Significant Fields

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.


Significant Fields

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

  1. Set up the referenced code tables and any other code tables required by your organization.
  2. Set up the referenced records and any other records required by your organization.
  3. Set the referenced application parameters to the appropriate values.
  4. Set up the referenced business rules and any other business rules required by your organization.