Dynamic dispatching is the process of dispatching WO activities that become available between shift dispatching process runs (i.e., for example, WO activities created during the shift). In this scenario, the crew/employee is likely in the field working on their WO activities dispatched via the shift dispatching process, as new WO activities become available and are dynamically dispatched to them throughout their shift.
Customers can choose to enable shift dispatching ONLY, or they can use shift dispatching along with dynamic dispatching.
After configuring shift dispatching as described elsewhere in this document, configuration specific to dynamic dispatching can begin:
-
Start with each ‘Active’ Optimized Scheduler Setup record (OSSR) for which dynamic dispatching should be enabled. Each OSSR record defines all of the information that will be sent to the CO optimizer during shift dispatch processing. It stands to reason that the same record/information should be used to perform dynamic dispatching. Populate the DDOSSR organization option with the OSSR code for which dynamic dispatching should be run. This organization option should be performed for each WO organization in which you want to enable dynamic dispatching.
-
If there is more than 1 OSSR record for which dynamic dispatching should be enabled for the WO organization a comma delimited list of OSSR codes can be entered for DDOSSR.
-
The organization for which DDOSSR is populated must be a specific organization (i.e., DDOSSR is only valid for WO organizations, which are always specific) AND the OSSR record referenced must be ‘active’.
-
-
Go to the Dispatch Setup record whose organization matches the WO organization in which DDOSSR is populated, then select the Enable Dynamic Dispatching and Active check boxes. See the Optimized WO Sequence brief for details on how the remaining fields in the Dynamic Dispatching section are used.
-
Enabling dynamic dispatching for a Dispatch Setup record will make all crews and employees in that organization available for dynamic dispatching.
-
Individual crews and employees in that same organization can have dynamic dispatching disabled for them. This is done on the crew or employee record by selecting the Override Dispatch Setup check box, and then selecting the Disable Dynamic Dispatching check box. An individual crew or employee cannot be enabled for dynamic dispatching if this option is not enabled at the organization level (i.e., for the matching organization Dispatch Setup record).
-
-
Go to the Job Setup screen, then select the Active check box for the Optimized Scheduler Driver is activated (i.e., this driver will likely already be activated if shift dispatching is activated).
The Optimized Scheduler Driver performs shift and dynamic dispatching, if enabled. The driver run frequency is set to every 1 minute. As stated elsewhere in this document, each minute it checks to see if it is time to perform shift dispatching for an OSSR based on the Next Evaluation Date/Time on the record. Every 5 minutes, it the driver will check to see if there are WO activities in organizations for which dynamic dispatching is enabled.
The dynamic dispatching process is as follows:
The Optimized Scheduler Driver determines which WO organization(s) have dynamic dispatching enabled. An ‘active’ OSSR record code must be populated in the DDOSSR organization option for the WO organization for this to be true.
If this condition is true for a WO organization, the driver will attempt to dynamically dispatch WO activities in this organization. Else, dynamic dispatching will NOT take place for WO activities in the organization.
-
If the dispatching process (shift or dynamic) is already running for any OSSR record, the system will wait until it is complete to run the next dispatching process (shift or dynamic). If multiple dispatching processes are allowed to run at the same time, then conflicting results from the CO are very likely.
-
If a dispatching process is NOT already running and it is between shift dispatching runs for an OSSR record, the system will determine if it is time to run dynamic dispatching.
-
If the shift and dynamic processes are scheduled to start at the same time, the shift process will always take priority over the dynamic process. The dynamic process will begin after the shift process finishes.
-
Per the 5-minute interval, if it is time to run dynamic dispatching AND there is no other dispatching process running, the system will determine which WO organizations (i.e., specific organizations) dynamic dispatching is enabled. For each OSSR record in the WO organization’s DDOSSR org option, the system will:
-
Run dynamic dispatching if the current date/time is INSIDE the OSS record’s shift hours definitions. WO activities should only be dynamically dispatched if a shift is working (see 1 exception below directly below); else, the WO activity will be dynamically dispatched on the first working shift after it was created or the shift dispatching process will pick it up, whichever occurs first.
-
It will also run if the current date/time is OUTSIDE all OSS record’s shift hours definitions and is between the last shift dispatch run time and the next shift start time on the system date. This is the scenario where there are hours within a 24-hour calendar day where there are no shifts defined. It is during this time that the customer will likely schedule the shift dispatching process to dispatch for all upcoming shifts that day. It is the time after the shift dispatching process runs, in this case, and before the first shift starts for which dynamic dispatching should be performed, even though there is no active shift during that time.
-
Date/times mentioned here will consider server time offset.
-
See the “Shifts (i.e., AVAILABILITY)” section for behavior when no shifts are associated to the OSSR. If there are no shifts associated, the dynamic dispatching process will attempt to dispatch WO activities in its first scheduled run following the shift dispatching process run for the system date. It will run on schedule, all day, until the next shift dispatching process runs. There will NOT be times during the system date, based on OSSR shift, when the dynamic process will NOT run other than when the shift process is running.
-
-
The system will check if there are WO activities meeting the WO Activities Dataspy criteria on the OSSR record view. These are WO activities that are available for dynamic dispatching because they were either created after the last shift/dynamic dispatching process started or they failed to be dispatched during the last shift/dynamic dispatching process. If there are no WO activities meeting the WO Activities Dataspy, then no WO activities will be dynamically dispatched for the OSSR.
The value of the Undispatched WO Activities check box described in the Associated tabs section of this document will be ignored for the dynamic process (i.e., it will only consider undispatched WO activities).
-
Verify the maximum number of WO activities, per the DDMAXW organization option for the WO organization, that should be sent in each request to the Optimized Scheduler for dynamic dispatching.
-
Possible options are: 1) Send ALL WO activities available in each request, 2) Send up to the same number of WO activities as the number of crews in each request, 3) Send <integer parameter entered by the customer> WO activities in each request.
-
For option #2, the system must first determine the number of crews and employees that will be sent to the Optimized Scheduler, then limit the number of WO activities sent in each request to the same number (i.e., the Dispatch Setup record whose organization matches the crew/employee organization must be ‘Active’), the Enable Dynamic Dispatching check box selected, and the Disable Dynamic Dispatching check box on the specific crew/employee must be unselected for the crews/employees, from their respective tabs on the OSSR, to be counted here.
-
-
EAM will send the maximum number of WO activities to the Optimized Scheduler per request as specified in the WO organization option DDMAXW. In addition to WO activities, EAM will send the same related data (i.e., as associated to the OSSR record) as it does with the shift dispatching process, with the exceptions noted for the “Undispatched WO Activities” check box and the use of organization option DDMAXW.
-
EAM will send the shift availability of the crews and employees on the OSSR record, based on Shifts tab records. Instead of sending the full available hours for the system date, as is the case with shift dispatching, the system will send partial availability based on the shift in which the system date/time in currently inside (see the Differences between Shift and Dynamic Dispatching section for details). All shifts occurring after that shift will have full availability sent as they have not started yet and all shifts that ended prior to the system date time will not have any availability sent as those shifts have already ended.
-
EAM will send crews/employees; however, it is possible that some, or none, of the crews/employees that match the Crews Dataspy and Employees Dataspy will be passed to the Optimized Scheduler. The dataspy records are the maximum crews/employee that will be considered but other criteria must be satisfied for them to be sent to the OS. If the Dispatching Setup record whose organization matches the crew/employee organization is ‘active’, has its Enable Dynamic Dispatching check box selected AND the specific crew/employee record has its Disable Dynamic Dispatching check box unselected, then the crew/employee in the OSS record dataspy will be considered for dynamic dispatch. Else, it will NOT be considered.
-
In contrast to shift dispatching, the most recent crew or employee location will be sent to the CO for dynamic dispatching. This location comes from Digital Work breadcrumb records stored in the R5MOBILELBSDATA table. EAM user is stored with each breadcrumb record. The location of an employee is based on the associated user. The location of a crew is based on the user associated to the crew employee whose “Determines Crew Location for Dispatching” check box is selected.
-
When EAM sends OSSR information to the CO for dynamic dispatching, the system will do the following to each WO activity:
-
Set Dynamic Dispatching Status = “Processing”
-
Clear Dynamic Dispatching Fail Date/Time
-
-
Once the CO determines the optimal crew or employee to dispatch to the WO activity, it must evaluate how the newly dispatched WO activity should be fit into their currently dispatched WO activities. It is possible that the new activity is a higher priority than one or more currently dispatched activities or is closer geographically; therefore, the CO must re-evaluate the new activity, along with existing activities to determine the optimal solution for the crew/employee. So, dispatch Sequences can be re-worked and existing activities can be dropped from the crew/employee because they no longer have the availability after adding in the new activity. Activities that are completed or ‘started’ (i.e., Start Activity button clicked) will NOT be dropped or have their Sequence changed; however, all other dispatched WO activities for the crew/employee will be re-considered, along with the new WO activity.
-
For currently dispatched WO activities having been started by the crew/employee AND completed dispatch records, the system should update their dispatch Sequence to be at the top of their list (i.e., completed records followed by started records), without gaps in Sequence.
-
When EAM creates the new dynamic dispatch records with sequences, it should always sequence new dispatch records after completed dispatch records and dispatch records where the work has already started.
-
-
If the WO activity is dispatched by the Optimized Scheduler, the system will:
-
Set work order activity Dynamic Dispatch Status = Complete
-
Clear Dynamic Dispatch Failed Date
-
Clear Optimized Scheduler Dispatch Errors
-
Set Assignment Status per organization option ACTDISST value
-
Create new and/or update existing dispatch record Sequence values.
-
-
WO activities that failed to be dispatched by the dynamic dispatching process, for any reason, will NOT be considered for dynamic dispatching again during the same shift and day on which it last failed to dispatch. This is based on the Dynamic Dispatch Failed Date populated for the WO activity. A failed WO activity becomes available again for dynamic dispatch after the start of the next shift following the failed attempt. The system assumes if an appropriate crew/employee cannot be dynamically dispatched to the WO activity for a shift, it is unlikely they will successfully be dispatched at any other time during that same shift so we should not attempt to dispatch it again during the same shift. This assumption was put in place primarily because of performance concerns.
-
If the WO activity is NOT dispatched by the Optimized Scheduler, the following will occur. This could occur if a WO activity is currently dispatched to the crew/employee can no longer be dispatched because the CO has dynamically dispatched a new activity to them with a lower Sequence value, so it is dropped from their dispatch schedule:
-
Set work order activity Dynamic Dispatch Status = Complete
-
Populate work order activity Dynamic Dispatch Failed Date with the system date/time
-
Populate work order activity Optimized Scheduler Dispatch Errors field
-
Delete all existing dispatch records for the WO activity.
-
If an error occurs that prevents the dynamic dispatching process from running (i.e., the error is NOT WO activity specific as mentioned above), it will be stored on the OSSR record for which the driver was attempting to dynamically dispatch. The field that these OSSR record level errors are stored for dynamic dispatching is a db-only field called OPS_DERRORS in table R5OPTIMIZEDSCHEDULES. This field was not added on the front-end of the Optimized Schedule Setup screen. However, a user defined screen can be created to include this field so that any OSSR record level errors can be viewed. Again, OSSR record level errors for dynamic dispatching must be viewed via the db-only field OPS_DERRORS. They cannot be viewed using the Errors field on the Optimized Scheduler Setup screen record view because this field only displays OSSR record level errors for the shift dispatching process.
-
It is recommended to create a user defined grid, with the OPS_DERRORS column, that shows records where this field is populated. If WO activities are not being dynamically dispatched as expected AND there is no WO activity level error displayed, then use this user defined grid to determine if an OSSR record level error occurred that prevented the process from dynamically dispatching WO activities.
-
-
If dynamic dispatching runs prior to the first shift on the OSS record and a WO activity fails to be dispatched, it will be picked up by the dynamic dispatching process on the run after the start of the first shift.
-
If a WO activity fails to be dispatched dynamically, it is possible that the next shift dispatching process will attempt to dispatch it before the next dynamic process gets to it.
-
If no shifts are associated to the OSSR and a WO activity fails to be dispatched, the system will NOT attempt to dynamically dispatch it again until after the next shift dispatching process has attempted to dispatch.
-