Workflow Scheduling
Technicians may be auto-assigned Workflow in Service Desk and Service Desk Actions. The application assigns a Worker and a scheduled date to each Workflow, the Order and Actions are processed separately from each other.
Scheduling Requirements
Service Desk Order or Action "Due Date" field. This field is set one the Manage Service Order or Action forms.
The Workflow 'Estimated Time' field. This field is set on the 'Manage Service Desk Workflow' form.
Worker Assignment
The Auto Schedule process assigns a Worker to a Workflow based on several factors. To start auto-scheduling the Workflows click on the "Auto Schedule" button on the Workflow tab of Service Desk Order / Actions.
First, the Auto Schedule process gets all of the Workers in the Workgroup assigned to the Workflow. If the Workflow has a Location it will be limited to only the Workers by that Location. Next, the process organizes the Workers based on their workload for the day that the scheduling is set for. If there are multiple Workers with the "least amount" (a group of Workers with no workload for example) of workload, those Workers will be selected at random.
The process will then check the list of Workers and for an available for the time slot. Availability is determined by looking at the Worker's existing Workflow, Schedule, and Time Entries . The Worker can only be scheduled if there are no conflicting Workflows or Time Entry items and if the time to be scheduled is within the Worker's schedule.
If the Worker is available the Workflow will then be scheduled for that Worker. If the Worker is not available the process will continue to go through the possible list of Workers until all the Workflows are assigned.
Date Assignment
The Workflow's scheduled date and scheduled end date are set based on the End Date of the Order/Action and the Cushion set by the SLA . Depending on the TECH_SCHEDULING_MODE constant will determine whether we are scheduling backwards or forwards in time.
FORWARDS If we are scheduling forwards in time the process establishes the first possible scheduling window by starting at the current date and adding the cushion amount (this would be the scheduled end date). For the "scheduled end date" it adds the calculated "scheduled date" by the estimated time to complete the Workflow. If a Worker is available to work within this time-frame it will schedule the workflow. If no workers are available it will reset the scheduled date to the date/time of the end of the last conflict and try again (going forwards in time). If it runs out of time (by going past the due date on the order/action) it can't schedule the Workflow.
BACKWARDS If we are scheduling backwards in time the process establishes the first possible scheduling window by looking at the end date of the order/action minus the cushion amount from SD_WORKFLOW_DEFAULT_CUSHION (this would be the scheduled end date). For the scheduled date it subtracts the calculated scheduled end date by the estimated time to complete the Workflow. If a worker is available to work within this time-frame it will schedule the Workflow. If no Workers are available it will reset the scheduled date to the date/time of the start of the last conflict and try again (going backwards in time). If it runs out of time (by going before the current date/time) it can't schedule the Workflow.
Related Fields and Constants
TECH_SCHEDULING_MODE (Constant) - Set technician scheduling to process forward or backward in time. Forward scheduling schedules Workflow starting at the current date and working towards the set end date. Backward scheduling will start at the end date and schedule backwards in time until it reaches the current date.
SD_WORKFLOW_DEFAULT_CUSHION (Constant) - Amount of time to space before the first Workflow is scheduled. If TECH_SCHEDULING_MODE is set to FORWARD the first Workflow will start scheduling beginning at the current time plus the value of SD_WORKFLOW_DEFAULT_CUSHION. If TECH_SCHEDULING_MODE is set to BACKWARD the first Workflow will start scheduling beginning at the end date minus the value of SD_WORKFLOW_DEFAULT_CUSHION.
JOB_SPLIT_THRESHOLD (Constant) - Maximum amount of time a Workflow can be scheduled in one day before being split into the next day.
JOB_SPLIT_MIN_DURATION (Constant) - Minimum amount of time a Workflow can be scheduled in one day.
Cushion (Field) - Located in Catalog > SLAs >SDC Time Specifications tab. Specifies the amount of time to add between the end date of the Action/Order and the scheduled end date of the last Workflow.
Actual Hours (Check-Box) - Located in Catalog > SLAs > SDC Time Specifications tab. When this is checked, instead of using business hours (specified in constants) it will schedule using a 24/hr period.
End of Day (Check-Box) - Located in Catalog > SLAs > SDC Time Specifications tab. When this is checked, on the day the Workflow is scheduled to end, instead of using an arbitrary end date based on the estimated time it will instead set the Workflow to end at the end of the work day.