Schedule and Dispatch Screen Properties
Schedule and Dispatch Screen Properties
- Published on Apr 16, 2024
- 10 minute(s) read
- TL
Mobileforce Scheduling is built on top of EasyCLM. The key objects used by the Schedule & Dispatch Screen are as follows:
| Table | Description |
|---|---|
| Office | Office(s) owning the tasks and technicians. Scheduling is done on a per-office basis. |
| ServiceTask | A job that needs to be scheduled. |
| User | Technicians that can perform the tasks. Only users of role 'Technician' are considered. |
| Appointment | A scheduled task |
UI
There is no top-level ADL screen type for the schedule and dispatch screen. This is because it is designed to be an inner screen that is invoked after selecting an office.
The URL for the schedule and dispatch screen is
adlwebui/scheduledispatch.php?path=...&s=...&officeId=...
It requires three parameters, path, s, and officeId. path and s are the standard adlwebui parameters. officeId is the ID of the office EasyCLM object to schedule for.
There are two ways one can configure the ADL for the schedule & dispatch screen, depending on whether the application has one office or multiple offices.
ADL for single office scheduling
For single-office scheduling, the office ID is hard-wired into the URL. The adlwebui-extension property causes the web screen to go directly to the given URL instead of using an iframe. Also, it will automatically append the path and s parameters.
<screen type="web" name="Schedule & Dispatch"
iconportrait="..." iconlandscape="..." acl=""
url="https://apps.mobileforcesoftware.com/adlwebui/scheduledispatch.php?officeId=1" >
<data>
<prop key="screenid">scheddisp</prop>
<prop key="param-prefix">easyclm-</prop>
<prop key="adlwebui-extension">1</prop>
(other props)
</data>
</screen>
ADL for multiple office scheduling
For multiple-office scheduling, the top-level ADL screen is a datatable screen that displays all offices. It is configured such that clicking on an office will open the schedule & dispatch screen. Also, updates are disabled for this screen.
<screen type="datatable" name="Schedule & Dispatch"
iconportrait="..." iconlandscape="..." acl=""
url="https://apps.mobileforcesoftware.com/adapters/easyclm/schema.php#Office" >
<data>
<prop key="screenid">scheddisp</prop>
<prop key="param-prefix">easyclm-</prop>
<prop key="listitem-link-template-Office">scheduledispatchscreen.php?[[]]&officeId=[id]</prop>
<prop key="table-actions-Office">list</prop>
<prop key="content-body-header">Please select an office.</prop>
(other props)
</data>
</screen>
Customizing displayed fields
The Schedule & Dispatch screen displays detailed data from tasks, technicians, and appointments. Customers may need to change what info is displayed by default, perhaps showing custom fields. To support this, the Schedule & Dispatch screen uses datatable layouts to allow customization of list data, popups, and detailed info.
To customize a particular list, popup, or object details, create a layout with the layout type set to 'scheduler'. (This layout type can be changed via the ADL property 'layouttype'). The table below shows which UI component maps to which layouts.
| UI Component | Layout Table Name | Layout Action |
|---|---|---|
| List of Open Tasks | ServiceTask | list |
| Open Task Details | ServiceTask | read |
| Technician Popup | User | list |
| Appointment Popup | Appointment | list |
| Appointment Details | Appointment | read |
Customizing global action buttons
Scheduling often requires customized actions, such as autoscheduling or custom-built tools for a customer. To support this, the Schedule & Dispatch screen allows one to add custom global actions buttons to the top right of the screen. This is done via ADL properties of the form action-button-{id}, where {id} is a unique identifier for the button.
Some example properties are:
<prop key="scheduler-action-button-plugRoute">Plug Route|https://apps.mobileforcesoftware.com/customers/servicevelocity/servicevelocity/calendar/scheduler/php/plug_route.php</prop>
<prop key="scheduler-action-button-smartRoute">Smart Route|https://apps.mobileforcesoftware.com/customers/servicevelocity/servicevelocity/calendar/scheduler/php/smart_route.php</prop>
<prop key="scheduler-action-button-mapAppointment">Map Appt.|https://apps.mobileforcesoftware.com/customers/servicevelocity/servicevelocity/calendar/scheduler/php/mapAppointment.php</prop>
ADL properties
The Dispatch & Schedule ADL screen can be customized through several ADL Properties. These properties can be either in the ADL screen itself or in the parent app or applet elements. These properties can also be prefixed either by the screen's parameter-prefix, specified by the param-prefix ADL screen property, or by the global scheduler- parameter-prefix. This parameter prefix is optional when specified within the screen but required in the app or applet elements.
The table below lists all supported ADL properties.
Task Properties
| Property | Default | Description |
|---|---|---|
| all-offices | 0 | If 1, one can display all tasks, techs, and appts for all offices at once. |
| assignable-status-ids | 1 or 1,2 | A comma-separated list of service task status IDs for service tasks that one can create appointments for. |
| ignore-to-be-scheduled | 0 | If 1, don't check the tasks' to_be_scheduled field when determining which tasks are open. |
| office-id | Office ID to use if not specified in the URL. | |
| only-my-office | 0 | If 1, if the logged-in user has an office, then the scheduler will display only that office. The user will not be able to see tasks for other offices. |
| range-default | 25 | Default range one can select for filtering in-range technicians |
| range-max | 150 | Maximum range one can select for filtering in-range technicians |
| range-min | 2 | Minimum range one can select for filtering in-range technicians |
| service-status-filter-default | 1 | Specifies the default value for the task status filter. It may be set to either the ID or the label of the status. |
| service-type-filter-default | *any* | Specifies the default value for the task type filter. It may be set to either the ID or the label of the type. |
| show-only-schedulable | 1 | If set to 1, only open or assigned tasks with field 'to_be_scheduled' set to 1 will be displayed. This flag has no effect on tasks that are not open or assigned. |
| show-service-status-filter | 0 | If set to 1, a task filter dropdown is displayed that filters tasks by their status. |
| show-service-type-filter | 1 | If set to 1, a task filter dropdown is displayed that filters tasks by their type. |
| technician-role-ids | 4 | Comma-separated list of EasyCLM Role object IDs for technician roles. This is used to determine which users are technicians. |
| task-color-fields | service_task_type_id.color, color, id | List of fields to use to determine the task's color. If a field contains a valid RGB color of the form '#123456', that color will be used as is. Otherwise a color from the property 'task-color-palette' will be selected based on a hash of the value. |
| task-color-palette | #e6194b, #3cb44b, #ffe119, #4363d8, #f58231, #911eb4, #46f0f0, #f032e6, #bcf60c, #fabebe, #008080, #e6beff, #9a6324, #fffac8, #800000, #aaffc3, #808000, #ffd8b1, #000075, #808080 | Palette of colors to use to randomly select a color for a task when that task does not have a color explicitly assigned to it. |
| tasks-orderby | ServiceTask.priority DESC, service_task_status_id ASC, service_by_date ASC, val$account_id ASC, name ASC | Custom order by for ServiceTask List at top left |
Calendar Properties
| Property | Default | Description |
|---|---|---|
| calendar-hide-skills | 0 | If set to 1, hide the skills column in the calendar section. |
| calendar-max-time | 21:00 | Maximum time in calendar that one can schedule an appointment |
| calendar-min-time | 06:00 | Minimum time in calendar that one can schedule an appointment |
| calendar-modes | timelineDay,timelineWeek,timelineMonth,listWeek | List of supported FullCalendar modes. |
| calendar-modes-default | timelineWeek | Default selected FullCalendar mode |
| calendar-schedule-default-days | Monday,Tuesday,Wednesday,Thursday,Friday | Default list of days that one can schedule an appointment for a technician. |
| calendar-schedule-default-end-time | 17:00 | Default end time that one can schedule an appointment for a technician. |
| calendar-schedule-default-start-time | 09:00 | Default start time that one can schedule an appointment for a technician. |
| calendar-snap-duration | 00:30 | Granularity of time that one can set a start time for an appointment. |
| calendar-viewby-default | byTech | Default View-By mode for the calendar. May be 'byTask' or 'byTech'. |
Appointment creation properties
| Property | Default | Description |
|---|---|---|
| default-duration-minutes | 60 | The default duration for a newly created appointment |
| estimated-hours-default | 1 | Number of hours that a task is estimated to take if the task does not provide an estimate. |
| multi-assign | 0 | If set to 1, multiple techs can be assigned to the same task. |
| multi-day | 0 | If set to 1, the scheduler will allow one to create multi-day appointments |
| multi-day-split | 1 | If set to 1, multi-day appointments are split into multiple single-day appointments. |
| office-check-disable | 0 | If set to 1, checking that the technician is in the same office as the task is disabled. |
Map properties
| Property | Default | Description |
|---|---|---|
| hide-map-default | 0 | If 1, the map section will be hidden by default |
| show-assigned-appointment-markers | 0 | If set to 1, markers for all appointments will be displayed on the map. |
Email Properties
| Property | Default | Description |
|---|---|---|
| appointment-emails | 0 | If set to 1, emails will be sent whenever an appointment is locked or unlocked. |
| dashboard-email-apis | [] | JSON array of objects describing the list of email adapter APIs that are supported. This property is only used when the 'email-server' property is set to 'adapter'. |
| email-server | local | Type of email server to use to send invitation emails. May be local, smtp, or adapter. |
| smtp-email | From address to send emails when using SMTP. Used only when email-server is set to 'smtp'. | |
| smtp-host | Host name of SMTP server. Used only when email-server is set to 'smtp'. | |
| smtp-port | 587 | Port number of SMTP server. Used only when email-server is set to 'smtp'. |
| smtp-username | User name used to access SMTP server. Used only when email-server is set to 'smtp'. | |
| smtp-password | Password used to access SMTP server. Used only when email-server is set to 'smtp'. |
Task search filter properties
| Property | Default | Description |
|---|---|---|
| search-filter-update-shared | 0 | If set to 1, the user can update shared search filters |
Datatable integration
| Property | Default | Description |
|---|---|---|
| datatable-url | https://.../adapters/easyclm/schema.php | EasyCLM adapter schema URL. |
| datatable-{tableName}-listinfo | List of fields to display for the table if it doesn't have a layout. | |
| datatable-{tableName}-marker-listinfo | List of fields to display for the marker popup for the table if it doesn't have a layout. | |
| datatable-{tableName}-screenid | ID of ADL screen to go to when opening an external window to display details for the named table. | |
| datatable-{tableName}-layouttype | Datatable layout type to use when opening an external window to display details for the named table. | |
| layouttype | scheduler | Datatable layout type to use to fetch layouts for this screen |
| param-prefix | easyclm- | Parameter prefix to use for this screen and for calls to the EasyCLM adapter. |
Localization
| Property | Default | Description |
|---|---|---|
| date-displayformat | PHP date format to use for date fields | |
| datetime-displayformat | PHP date format to use for date and time fields | |
| timezone | (server timezone) | Server timezone to use for this page. |
| week-day-slot-label | 'ddd D' | Format of the weekdays displayed in the table header for the calendar week day view |
These ADL properties can be used to customize strings displayed in the Schedule & Dispatch screen:
| Property | Default | Description |
|---|---|---|
| appt-label-plural | Appointments | Displayed label used for multiple appointments |
| appt-label-singular | Appointment | Displayed label used for a single appointment |
| cal-by-tech-button-label | By Tech | Displayed label of the calendar 'By Tech' button |
| cal-by-task-button-label | By Task | Displayed label of the calendar 'By Task' button |
| cal-mode-label-listWeek | List | Displayed label for the calendar 'listWeek' mode |
| cal-mode-label-resourceTimelineDay | Day | Displayed label for the calendar 'resourceTimelineDay' mode |
| cal-mode-label-resourceTimelineMonth | Month | Displayed label for the calendar 'resourceTimelineMonth' mode |
| cal-mode-label-resourceTimelineWeek | Week | Displayed label for the calendar 'resourceTimelineWeek' mode |
| cal-mode-label-resourceTimelineWeekDay | Week | Displayed label for the calendar 'resourceTimelineWeekDay' mode |
| calendar-today-button-label | Today | Displayed label of the calendar 'Today' button |
| cancel-button-label | Cancel | Displayed label of the Cancel button |
| create-appt-button-label | Create | Displayed label of the Create Appointment button |
| delete-appt-button-label | Delete | Displayed label of the Delete Appointment button |
| delete-appt-menu-label | Delete Service Task's Appointments | Displayed label of the Delete Appointment menu item |
| email-login-button-label | Login | Displayed label of the Login button in the email login dialog. |
| edit-appt-button-label | Edit | Displayed label of the Edit Appointment button |
| exchange-login-email-label | Displayed label of the 'Email' field in the email login dialog. | |
| lock-appt-button-label | Lock | Displayed label of the Lock Appointment button |
| lock-appt-menu-label | Lock Service Task's Appointments | Displayed label of the Lock Appointment menu item |
| oauth-login-button-label | Log In | Displayed label for the OAuth Login button |
| ok-button-label | Ok | Displayed label for the Ok button |
| refresh-button-label | Refresh | Displayed label of the Refresh button |
| resched-appt-button-label | Reschedule | Displayed label of the Reschedule Appointment button |
| search-filter-save-button-label | Save And Run | Displayed label of the 'Save And Run' button in the search filter dialog |
| search-filter-name-submit-button-label | Ok | Displayed label of the 'Ok' button in the rename search filter dialog |
| skill-label-plural | Skills | Displayed label used for multiple skills |
| skill-label-singular | Skill | Displayed label used for a single skill |
| submit-button-label | Reschedule | Displayed label of the Submit button |
| task-label-plural | Tasks | Displayed label used for multiple tasks |
| task-label-singular | Task | Displayed label used for a single task |
| tech-label-plural | Tasks | Displayed label used for multiple technicians |
| tech-label-singular | Task | Displayed label used for a single technician |
| unlock-appt-button-label | Unlock | Displayed label of the Unlock Appointment button |
| unlock-appt-menu-label | Unlock Service Task's Appointments | Displayed label of the Unlock Appointment menu item |
| view-task-menu-label | View Service Task Details | Displayed label for the 'View Service Task Details' menu item |
Customization
These ADL properties allow one to customize the actions and display of the screen.
| Property | Default | Description |
|---|---|---|
| action-button-{id} | Data for a global action button to display on the top-right of the screen. |