Edit

Customization considerations for the work order form

This article lists common considerations when customizing the work order form in Dynamics 365 Field Service. In addition, this article lists code components or PCF controls that are available in the form designer when editing a work order form. Makers can use these components on their forms and views to customize the experience for their users. Learn more in Code controls in the Power Apps developer documentation.

Tip

Configure field-level security to ensure users update only the intended fields. For example, if a field in a form is set to read-only, users might still update some fields. The system doesn't save the updated form if the user doesn't have the correct field-level security.

Work order form header and command bar

Work order subgrids as popups

Configure work order subentities to pop out as dialog boxes and edit them without leaving the work order form. This configuration helps dispatchers keep the work order context. Administrators can enable the Work Order Subgrid Records Open as Popups setting in Field Service Settings > Other.

Simplified work order commands

The work order command bar uses the simplified view by default and shows only the most relevant commands. To show all commands, administrators can disable the Show Simplified Work Order Commands setting in Field Service Settings > Work Order / Booking.

You can customize the command bar to show the commands that are relevant in your context.

Custom work order statuses

Don't edit work order system statuses because system jobs and plug-ins rely on these statuses. Instead, administrators can create custom work order substatuses that map to work order system statuses. For more information, see Don't edit option set (choice) values.

Add maps to the work order form

If you manually remove the maps control from the default work order form, you can't add it back.

To enable the maps button in the form designer, add the ValidForMap mask to at least one of the address-type attributes in the form.

<DisplayMask>ValidForAdvancedFind\|ValidForForm\|ValidForGrid\|ValidForMap</DisplayMask>
  1. Create a solution on a sandbox environment that includes the form to which you want to add the maps control. Export it as managed solution.

  2. In the solution's customizations.xml file, go to the formxml section.

  3. Add the following maps control to the <controlDescriptions>.

        <controlDescription forControl="{8b67ae03-1701-54d2-09be-35295876ca8a}">

        <customControl id="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}">

        <parameters>

        <datafieldname>msdyn\_mapcontrol</datafieldname>

        </parameters>

        </customControl>

        <customControl formFactor="0" name="MscrmControls.Map.MapControl">

        <parameters>

        <value>msdyn\_mapcontrol</value>

        <mapSourceSwitch isGroup="true" static="true">CoordinatesGroup</mapSourceSwitch>

        <latitude>msdyn\_latitude</latitude>

        <longitude>msdyn\_longitude</longitude>

        <addressEditableSwitch isGroup="true" static="true">isAddressEditableYesGroup</addressEditableSwitch>

        <outputLatitude>msdyn\_latitude</outputLatitude>

        <outputLongitude>msdyn\_longitude</outputLongitude>

        </parameters>

        </customControl>

        <customControl formFactor="1" name="MscrmControls.Map.MapControl">

        <parameters>

        <value>msdyn\_mapcontrol</value>

        <mapSourceSwitch isGroup="true" static="true">CoordinatesGroup</mapSourceSwitch>

        <latitude>msdyn\_latitude</latitude>

        <longitude>msdyn\_longitude</longitude>

        <addressEditableSwitch isGroup="true" static="true">isAddressEditableYesGroup</addressEditableSwitch>

        <outputLatitude>msdyn\_latitude</outputLatitude>

        <outputLongitude>msdyn\_longitude</outputLongitude>

        </parameters>

        </customControl>

        <customControl formFactor="2" name="MscrmControls.Map.MapControl">

        <parameters>

        <value>msdyn\_mapcontrol</value>

        <mapSourceSwitch isGroup="true" static="true">CoordinatesGroup</mapSourceSwitch>

        <latitude>msdyn\_latitude</latitude>

        <longitude>msdyn\_longitude</longitude>

        <addressEditableSwitch isGroup="true" static="true">isAddressEditableYesGroup</addressEditableSwitch>

        <outputLatitude>msdyn\_latitude</outputLatitude>

        <outputLongitude>msdyn\_longitude</outputLongitude>

        </parameters>

        </customControl>

        </controlDescription>

  1. Search for "Maps" in the same file.

  2. Add the control with the following code to the row and cell where you want to add it.

    <control disabled="false" id="msdyn\_mapcontrol" classid="{F9A8A302-114E-466A-B582-6771B2AE0D92}" uniqueid="{8b67ae03-1701-54d2-09be-35295876ca8a}" datafieldname="msdyn\_mapcontrol"/>
  1. Save the file and create a new managed solution zip file.

  2. Import the solution to the affected environment.

Tip

If the map control still isn't visible on the form after following these steps, try removing the active form customizations.

Work order form controls

The following controls are available for use on custom work order forms. Review each control for options and limitations. To add a control to a form, follow these steps unless instructed otherwise in the control's description:

  1. Sign in to Power apps and select the environment where you want to customize the work order form.

  2. Open your solution and select Tables > Work Order > Forms.

  3. Select the form you want to customize and select Edit.

  4. Select Component and search for the component you want to add. Drag and drop the component to the form.

  5. Save and publish the form.

Work order Copilot recap

A control that summarizes work orders and associated bookings, including timeline notes, with the help of Copilot in Field Service. Copilot currently can't summarize custom fields. It only summarizes default fields.

This control works on the default and custom work order forms, but not on non-work order entities.

Work order status

A control to select the work order status and substatus. You can add custom system substatuses. Field Service doesn't support custom system status. If you add one, it doesn't have a status icon. You can't change colors for the system status.

This control works on other entities, but:

  • It doesn't support icons.
  • All status colors are purple.

Work order priority

A control to set the priority of a work order. You can add custom priorities and color.

This control works on the work order form and on the work order grid, but not on non-work order entities.

Timeline count

A control that shows the number notes in the timeline. Select the number to go to the timeline tab on the form.

  • This control doesn't work on custom entities, even if they have the timeline control in it.
  • This control supports custom work order forms.

If you place this control on the same tab as the timeline control, the count doesn't increase automatically when you add a new note. Refresh the page to see the updated number. If activities and notes are disabled for the work order entity, the count always shows zero (which is accurate).

Location card

A control that shows the location of where to complete work and information about the functional location where available.

  • This control works on custom work order forms but it doesn't work on entities other than the work order.

The default zoom level is currently fixed and you can't change it. The functional location picker only shows the child-most entity, and doesn't show breadcrumbs of the higher levels such as Building > Floor > Room.

Contact card

A control that shows the service or billing account contact, and the reported by contact (when available).

  • This control works on custom work order forms. If you place it on a non-work order form, the control doesn't enter edit mode.

The contact can map to the billing account contact, service account contact, or reported by contact. It doesn't work with any other type of contacts. The lookup doesn't work when pointed to non-contact fields.

Asset card

A control that shows assets from the primary asset, and any secondary assets set through the products, services, and tasks in the work order. The control renders child nodes of an asset.

You can place this control on custom work order forms, but it doesn't work on non-work order entities.

If you place the control in a three-column form layout, the icon to open the full screen asset view doesn't load because the control adapts to narrow form factors.

Booking card

A control that helps service managers ensure work orders are moving along by providing recommendations on the next action. For unscheduled work orders, it suggests a booking. For scheduled work orders, it shows booking details. When you complete the work order, it provides a summary.

  • This control doesn't work with non-work order entities.
  • This control requires that the mapping of the system status, substatus, and primary resolution is configured correctly. Otherwise, the control fails to load. Specifically, if the system status doesn't map to the right work order system status field.

Financial summary card

A control that summarizes the cost and price for a work order based on the products and services related to it.

  • This control works on custom work order forms.

Ensure cost and pricing features are enabled to see data in this control. You can set a different not-to-exceed (NTE) proximity value for this control than the one set for the work order.

Products and services subgrid

A control that you use to edit the products and services in a work order. Update the estimated and actual duration and quantities inline and change the status. You can make detailed changes to fields in the side pane.

  • This control works on custom work order forms.
  • The control is bound to work order products. You can choose to map a second entity:
    • Work order products: Services tab is blank
    • Work order services: Product tab gets bound to work order services but the tab still references products in the interface.
  • This control doesn't work on the work order entity as it has a dependency on work order product and work order services.

Custom values for products or service status aren't supported. You can't hide the product or services tab. Both tabs need an entity mapped.

Tasks summary card

A control that summarizes the tasks in a work order.

  • This control works on custom work order forms.

  • Ensure that the % completed, estimated duration, and actual duration fields are included in the view used by the control.

Task subgrid

A control that you use to manage tasks in a work order by using inline actions to mark tasks as complete and enter inspection results. You can make detailed changes to fields in the side pane.

  • This control works on custom work order forms.
  • This control doesn't work on non-work order entities.

If the % completed field isn't visible in the view, the progress doesn't render and the action to mark as complete or incomplete doesn't work.

References > Knowledge article card

A control that you use to see and link Knowledge Articles to a work order. The control also enables you to create new articles right from the work order directly.

  • This control works on custom work order forms.
  • It doesn't work on non-work order entities because it has a hard dependency on work order and knowledge articles.

References > Guides card

A control that summarizes the linked Dynamics 365 Guides for tasks in the work order. You can't preview the Guides on the web, but you can see their name and their associated folder.

  • Use this control on custom work order forms.
  • You can't use this control on non-work order entities because it has a hard dependency on work order service tasks and the work order entity.

References > Media card

A control that shows thumbnails of the media that is attached to timeline notes.

  • This control works on custom work order forms.
  • This control works on custom entities as long as the entity has activities and notes enabled, and the timeline control is present.

Work order grid controls

The following controls are available for use on the work order grid.

Grid and action bar

A control to view and select work orders. This control allows you to make inline edits to the priority and make further edits in the side pane. System status is a combined field of system status and substatus.

You can't apply this control to non-work order entities.

Known issues and limitations:

  • When you apply this control to subgrids, the view selector isn't visible. You can only see the view you select in the Maker portal.
  • If you customized the work order grid, the new control doesn't render due to solution layering rules. Remove these customizations first to see the control.
  • The new grid experience doesn't support column filtering. Change to the Read-Only Grid to filter columns.
  • If you remove the new grid control from the environment, you can't install it again. Contact support for help.
  • The Booked Resources column (msdyn_bookingsummary) works only with the new work order experience. It isn't supported in the classic grid view.

Context menu

An inline menu when you choose a work order to take quick actions.

  • This control is available to the work order entity.
  • Context menu options change depending on the status of the work order.

You can't change the items in the context menu.

Side pane

You can load multiple forms inline for further edits from the work order form.

  • Work order: Edit the information in the side pane by modifying the Work Order Light form.
  • Assets: Edit the information in the side pane by modifying the Customer Assets – Simple form.

The following side panes render the same form as if you opened the full record:

  • Products: Work Order Product
  • Services: Work Order Service
  • Tasks: Work Order Service Task

You can open only one side pane at a time. You can't change the width of the pane.

Next steps