Schedule and Dispatch Screen Properties

Schedule and Dispatch Screen Properties

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 &amp; 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 &amp; 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?[[]]&amp;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 Email 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.