Field Service Capacity and Reservations Management components
Several types of components are installed with the Field Service Capacity and Reservations Management feature, including tables, business rules, scheduled jobs, and script includes.
Install the Field Service Contractor Management plugin (com.snc.fsm_contractor_management) to take the external groups into account while reserving, defining, and assigning the work capacity. For more information, see Activate Field Service Contractor Management.
- Capacity Reservations: Reserve a capacity percentage of a group or agents availability to meet specific demands. For example, 60% for Break-Fix Work types and 40% for Install work types.
- Capacity Definitions: Allocate the correct amount of work to internal or external work groups based on defined hours, task count, or agent work schedules. You can define capacity for a day, week, month, or year.
- Capacity Assignments: Assign the capacity and capacity reservations to internal work groups and external groups of contractor companies.
- Capacity Usages: View the record of capacity used by different groups and agents.
Tables
| Table | Description |
|---|---|
| Capacity Assignment [wm_capacity_assignment] |
Stores capacity definition assignments to groups within a specific time period to help avoid conflicts in capacity in a given time period by validating the effective from and effective to dates. |
| Capacity Definition [wm_capacity_definition] |
Stores the details like source of capacity, allocation schedule, frequency of capacity definitions of a group or internal field service agent and the reservation rules to be used while assigning tasks. |
| Demand Channel [wm_demand_channel] |
Stores the details like name, conditions, and order of execution of a demand channel. |
| Capacity Demand Metrics [wm_capacity_for_demand] |
Stores the metrics data for all capacity assignments. |
| Capacity Reservation [wm_capacity_reservation] |
Stores the reservation definition and exclusion conditions. |
| Capacity Reservation Rule [wm_capacity_reservation_rule] |
Stores the reservation rules and the conditions for which the reservations should be used. |
| Capacity Usage [wm_capacity_usage] |
Stores the capacity used by an internal field service agent or a group within a specific time period. |
Business rules
| Business rule | Table | Description |
|---|---|---|
| Avoid Conflict in Capacity Time Period | Capacity Assignment [wm_capacity_assignment] |
Monitor the time period defined for the Capacity Assignment to ensure that any group does not have multiple capacity assignments in the same time period or overlapping intervals. |
| Update Capacity on task change | Work Order Task [wm_task] |
Add or update capacity when a task is assigned or unassigned. You can update capacity when the estimated work or travel duration changes. |
| Update Capacity on task delete | Work Order Task [wm_task] |
Update the capacity used whenever an open task is deleted within the given window. |
| Validate Capacity Value | Capacity Definition [wm_capacity_definition] |
Validates the value of the provided capacity for the capacity definition. Capacity should be a non-zero positive integer value. |
| Validate Effective to and Effective from | Capacity Assignment [wm_capacity_assignment] |
Validates the dates entered in the Effective to and Effective from fields in the capacity assignment table. The system calculates the Effective to date based on the value entered in the Repeat for field if the Capacity by value is not selected as for the agent schedule. The Effective from value should always be on or after the current date, and before or equal to the Effective to date. While updating the capacity assignment, theEffective to value cannot be set to a date before capacity usage exists. |
| Validate Percent Allocated value | Capacity Reservation Rule [wm_capacity_reservation_rule] |
Validates the allocated percentage value in the Capacity Reservation Rule table. This value should be a non-zero positive integer less than or equal to 100. |
| Update Domain for capacity assignment | Capacity Assignment [wm_capacity_assignment] |
The system assigns domains to records based on information in the Type field. If the Type is 'Territory internal agents' or 'Territory contractor group', the domain is set using the Territory field. For any other type, the domain is determined by the Group field. |
| Update capacity demand metrics table | Capacity Assignment Override [wm_capacity_override] |
Updates the Capacity Demand Metrics table when the aggregated agent schedule cutoff date or days is updated for a territory. |
| Update Capacity on task change | WorkOrder Task [wm_task] |
Enables you to customize the calculation of capacity by defining conditions for deducting capacity from the capacity usage. |
| Disallow capacity definition changes | Capacity Definition [wm_capacity_definition] |
Prevents modifications to capacity definitions when they're in use. |
| Disallow override for agent-schedule | Capacity Assignment Override [wm_capacity_override] |
Prevents overrides for schedules managed by agent scheduling system. |
| Disllow update on capacity usage | Capacity Buckets [wm_capacity_bucket] |
Prevents updating capacity and time values when capacity usage records exists. |
| Limit one Demand channel per reservation | Capacity Reservation Rule [wm_capacity_reservation_rule] |
Ensures that each capacity reservation rule is associated with only one demand channel. |
| Prevent Duplicate Name, Condition | Demand Channel [wm_demand_channel] |
Ensures that demand channels don't have duplicate names and conditions. |
| Prevent updating record to inactive | Demand Channel [wm_demand_channel] |
Prevents changing the status of the demand channel to Inactive when the demand channel is still in use. |
| Remove capacity for unsupported task | WorkOrder Task [wm_task] |
Removes capacity allocations from tasks that don't support capacity management. |
| Restrict changes to definition | Capacity Definition [wm_capacity_definition] |
Prevents changing Capacity by value of capacity definition to Agent Schedule when there are capacity assignment override records. |
| To verify usage not less than 0 | Capacity Usage [wm_capacity_usage] |
Validates that capacity usage values are greater than or equal to 0. |
| Validate different types of overrides | Capacity Assignment Override [wm_capacity_override] |
Validates that different types of overrides comply with business constraints. |
| Validate fields | Capacity Assignment Override [wm_capacity_override] |
Ensures that the required fields are populated for capacity override. |
| Validate fields based on type | Capacity Assignment [wm_capacity_assignment] |
Ensures that the required fields are populated based on the type of capacity assignment. |
| Validate on deleting definition | Capacity Definition [wm_capacity_definition] |
Ensures that the capacity definitions are not in use before their deletion. |
| Validate overall definition | Capacity Definition [wm_capacity_definition] |
Validates the capacity definition before adding or updating it. |
| Validate overlapping capacity buckets | Capacity Buckets [wm_capacity_bucket] |
Prevents defining overlapping time ranges in capacity buckets. |
| Validate percent allocated | Allocation Schedule [wm_allocation_schedule] |
Validates the allocated percentage value. The value should be a positive integer less than or equal to 100. |
| Validate percent allocated | Allocation Schedule Details [wm_allocation_schedule_detail] |
Validates the allocated percentage value. The value should be a positive integer less than or equal to 100. |
| Validate range | Allocation Schedule Details [wm_allocation_schedule_detail] |
Validates that the time ranges don't overlap. |
| Validate recurrence | Capacity Assignment Override [wm_capacity_override] |
Validates that the recurrence rules in capacity override are configured correctly. |
| Validate total percentage | Capacity Buckets [wm_capacity_bucket] |
Ensures that the total allocated percentage across all the capacity buckets doesn’t exceed 100. |
| Validation for rank | Capacity Assignment Override [wm_capacity_override] |
Validates the ranking order for capacity reservations to ensure proper priority. |
| Business rule | Table | Description |
|---|---|---|
| Update Capacity For Demand | Agent Schedule [sn_shift_planning_agent_schedule] |
Updates capacity when demand metrics is updated. |
| Update capacity demand metrics table | Agent Schedule Time Off Request [sn_shift_planning_agent_schedule_request] |
Updates demand metrics table for territory planning. |
| Business rule | Table | Description |
|---|---|---|
| Update capacity demand metrics table | Capacity Assignment Override [wm_capacity_override] |
Updates the Capacity Demand Metrics (wm_capacity_for_demand) table on updating the values for Aggregated agent schedule cut off or Aggregated agent schedule cutoff date fields for a Field Service Territory. |
| Update capacity demand metrics table | Schedule Entry cmn_schedule_span |
|
| Update capacity demand metrics table | Capacity Assignment [wm_capacity_assignment] |
|
| Update capacity demand metrics table | Territory [sn_tp_territory] |
|
| Update capacity demand metrics table | Capacity Buckets [wm_capacity_bucket] |
|
| Update capacity demand metrics table | Agent Work Schedule [agent_work_schedule] |
|
| Update Demand channel on WOT | WorkOrder Task [wm_task] |
|
| Update capacity demand metrics table | Agent Personal Schedule [agent_events] |
|
| Update capacity demand metrics table | Capacity Reservation Rule [wm_capacity_reservation_rule] |
|
| Update demand metrics table for 1 day | Capacity Assignment Override [wm_capacity_override] |
|
| Update capacity demand metrics table | Allocation Schedule [wm_allocation_schedule] |
|
| Update capacity demand metrics table | Capacity Definition [wm_capacity_definition] | |
| Update capacity demand metrics table | Schedule [cmn_schedule] |
|
| Update capacity demand metrics table | Allocation Schedule Details [wm_allocation_schedule_detail] |
|
| Update capacity demand metrics table | Territory Group [sn_tp_territory_group] |
|
| Validate Aggregated agent schedule cutof | Territory [sn_tp_territory] |
Validates the value Aggregated agent schedule cutoff days or date field in the Territory table. The agent schedule cut off days must be a non-zero integer value greater than or equal to 0 and less than or equal to 30. |
Scheduled job
| Scheduled job | Description |
|---|---|
| Compute Capacity Demand Metrics Data | Calculates and generates data for the Field Service Territory Capacity Analytics dashboard. |
Script includes
| Script include | Description |
|---|---|
| FSMCapacityAjax | Provides AJAX endpoints that allows client scripts to check agent capacity for tasks and retrieve assignment details dynamically from the server. |
| FSMCapacityAppnmtBookingUtil | Utility methods to support appointment booking in FSM. This utility method retrieves dispatch groups for a location and filters groups based on the configuration. It also determines the eligible groups for task assignment during appointment scheduling. |
| FSMCapacityBaseUtil | Customizable utility class that extends FSMCapacityBaseUtilSNC. This utility class provides methods to validate and calculate capacity. |
| FSMCapacityBaseUtilSNC | Provides read-only utility scripts to validate and calculate capacity. |
| FSMCapacityBucketApi | Manages capacity buckets, including CRUD operations and bucket allocation. |
| FSMCapacityBucketApiSNC | Contains utility methods to retrieve and map capacity buckets used by a task, based on assignment and schedule details. It supports advanced bucket-based capacity calculations and integrates with usage, reservation, and definition APIs. |
| FSMCapacityConstants | Holds customizable constants. It extends the base constants class (FSMCapacityConstantsSNC) and allows you to override or add new constant values specific to the requirements, without modifying the base constants. |
| FSMCapacityConstantsSNC | Holds read-only constants like table names, default values, and configuration options. It centralizes important static values used throughout the workflow. |
| FSMCapacityCoreApi | Provides methods to retrieve and calculate capacity details for tasks, supporting advanced capacity planning and usage tracking. |
| FSMCapacityDefinitionApi | Provides API class for capacity definitions. It extends the base API (FSMCapacityDefinitionApiSNC) and allows you to manage and override capacity definition as per the business requirement. |
| FSMCapacityDefinitionApiSNC | Provides API methods to calculate total capacity, handle overrides, and support different capacity calculation strategies based on assignment, agent schedule, or hours. |
| FSMCapacityManagement | Integrates with various Capacity and Reservation Management APIs to orchestrate capacity checks, calculations, and updates. It provides methods to manage capacity by determining the capacity for tasks and agent availability. |
| FSMCapacityQueryUtil | Utility class that provides query to find agent schedule assignments within a time window and retrieve all relevant assignments based on qualifiers and date ranges. |
| FSMCapacityReservationAllocationApi | Provides customizable utility class to manage capacity, reservations, and allocations. It extends FSMCapacityReservationAllocationApiSNC. |
| FSMCapacityReservationAllocationApiSNC | Read-only utility class that handles capacity, reservations, and allocations. It provides methods to calculate allocation percentages and reservation capacities, supporting advanced scheduling and capacity planning. |
| FSMCapacityUsageApi | Customizable API class that manages capacity usage records. It extends FSMCapacityUsageApiSNC and provides customizable methods to handle capacity usage calculations. |
| FSMCapacityUsageApiSNC | Provides methods to calculate and retrieve total and reserved capacity usage. It leverages caching and integrates with Capacity definition and reservation APIs to validate and track usage efficiently. |
| FSMCapacityUtil | Provides utility functions to ensure integrity checks and safe deletion Capacity and Reservation Management entities. It checks if the capacity definitions, reservations, or reservation rules are referenced in usage records. |
| ScheduleOptimizationCapacityResponse | Contains a utility class that provides methods to calculate the capacity horizons for groups or territories, to determine the available and allocated capacity for task optimization within a specified date
range. 注: The Schedule Optimization plugin (com.snc_schedule_optimization) for Field Service Management must be installed to enable this script include. |
| Script include | Description |
|---|---|
| FSMDemandManagementConstants | Extends the constants class FSMDemandManagementConstantsSNC. It allows you to override or add new constant values specific to your requirements without modifying the base read-only constants. |
| FSMDemandManagementConstantsSNC | Defines read-only constants such as queue names, metric calculation keys, and configuration values. It centralizes important string and numeric constants for reuse across the application. |
| FSMDemandManagementUtilSNC | Provides read-only core utility functions, including methods to calculate and update metrics data for territories and capacity assignments. |
| FSMDemandManagementUtil | Customizable class that extends FSMDemandManagementUtilSNC. It allows you to override or add demand management utility methods specific to your requirements. |
| FSMDemandManagementExtPoint | Provides method to retrieve the default demand channel. Implements the FSMDemandManagementExtPoint extension point, allowing you to customize demand management. |
| FSMDemandManagementQueryUtil | Customizable class that extends the read-only FSMDemandManagementQueryUtilSNC class. You can override or add new methods in FSMDemandManagementQueryUtil to customize demand management for your requirements. |
| FSMDemandManagementQueryUtilSNC | Defines utility functions such to fetch the default demand channel, retrieve future work order tasks, and delete metric records. It provides reusable logic to support Demand Management features. |
Roles
| Roles | Description |
|---|---|
| sn_fsm_capacity_mg.wm_capacity_write | Allows CRUD access to all the capacity related tables |
| sn_fsm_capacity_mg.wm_capacity_read | Allows read access to all the capacity related tables and Capacity console workspace |