Finally I started using the new customization experience on a regular base and in general I have to admit that I really like it. However there are still some shortcomings compared to our good old Solution Explorer.
More (white) space
One thing is that it takes more space in many aspects, because, at least this is what I think, Microsoft wants to be ready for touch screen users using and customizing) their system.
As this is related not only to the customization experience but also in general to the front end of all Model Driven Apps, I would really wish to have a button or setting somewhere the Personal Settings where I as a User can switch between mouse usage and touch usage. But at the moment I don’t think that this is somewhere in focus for MS.
On the other hand my assumption is that having a more streamlined customization portal that is more aligned to the front end saves valuable developer resources for MS because UI adjustments always take some additional time.
Missing Table Name (Primary Entity) in Processes View
In the old experience you could easily see which table/entity a Process is based on:
In our new experience this column is not there anymore which makes it unnecessarily hard to get an overview of which processes are used on which table.
Therefore I’m still preferring the old entry gate for customizing processes.
Missing Description column
In the old component overview we had a column “Description”. I often use this to leave a kind of technical hint like “Used on Contact-Form”.
In new component lists I’m really missing that column:
Missing Publish-button on “entity” level
In old experience we had this useful Publish button on entity level. You could press it to publish only components from the same entity/table at once. This happens often that after having edited something you just want to publish this table/entity only.
In the new experience I can’t really find something similar an entity level. Only after editing a View or a Form or similar you can publish this single component. Publishing the whole solution however takes much longer than what it took to publish the Entity only.
In the new Unified Interface your surely stumbled already over this new Subgrid layout called “List View”:
This layout will change to the “old” Grid View as soon as you allow the section to have more horizontal space. This can be done by formatting the Form (or simply make your browser window wider).
This mechanism is called “Reflow”.
But did you know that you can also determine whether you want to display the Subgrid List View or the “old” Grid View by deactivating Reflow for a certain Subgrid?
Just open the parent Form in edit mode, double click on the Subgrid => Controls =>Add Control… => choose the “Read Only Grid”.
Than you can edit the property “Reflow behavior” to fix the Grid layout to the one or the other View type.
Another very nice feature is that you can customize the content displayed in the “List View” by creating a Card Form and referencing it in the Control properties (see above).
You would than be able to get something like this:
For that, create a new Form of the Type “Card” and adjust it as to your needs:
Up to now I couldn’t find out how to get the “Color Strip” working. I tried this without success. There is an Idea out there that indicates that it doesn’t work (yet?). So if you know more please let me know.
You can also add more than three columns into the Card’s body and additional fields into the Header and the Footer of the Card Form. To control whether the footer is expanded by default or not go to System Settings => “General” => “Set the default card state for Interactive Dashboards” => “Display cards in expanded state”. Sadly this setting can be done only once system wide.
But still, I’m really exited by the great capability to customize the List View.
to model out the location structure of a larger site
i.e. Building, Floor and Room on different levels
can also be used when not having a fixed location or location is frequently changing
Assets and Locations can easily be moved or reparented (drag n drop) if their location changes
Locations can be manually ordered by drag n drop
can be Physical or Functional location
available on mobile where technicians can add locations and assets
Address in Work Order gets updated according to the Functional Location Address, or if this is empty, the system searches across all Parents Location’s addresses (on more than one level!), and takes these if found
In Work Order form when first picking a Primary Incident Customer Asset, then the Functional Location gets auto-populated
After creating a Work Order, the Primary WO Incident will also be related to the Functional Location chosen in the WO
Creating a second WO Incident does NOT automatically relate the WO’s Functional Location to this 2nd WO Incident. Instead it can be manually set i.e. to another Functional Location (or create field mapping if you want it to be the same.)
Data Model of Functional Location
possibility to add individual address which automatically gets geo coded
Work Order Incidents
Agreement Booking Incidents
native N:N relationship to Account
So if a User would want to track Work Order Products, WO Services, WO Service Tasks on it, the Functional Location is NOT the best table to use. This brings us to the decision that a HVAC Unit and its components like Compressor, Fan, Thermostat… are better represented as Customer Asset than as Functional Locations (see screen above and note the different symbols for Location versus Asset).
Why N:N relationship to Account?
Imagine you have a big campus and you have different Service Accounts responsible for managing Work Orders of different typesbe .
Or a big construction site with different subcontractors working on the same Functional Locations and Assets.
=> This helps to be flexible enough to have those Locations used be more than one Service Account.
To keep in mind with hierarchies and lookup prefilters here
Functional Location lookup field on Work Order
When creating a Work Order the Functional Locations are prefiltered to those of the Service Account.
Note: Creating a new Asset from the hierarchical tree view f the Account form automatically adds the Account to the created Asset. However creating a new Functional Location from the hierarchical tree view does ONLY automatically ad the Account to the created Location if that is on the highest level directly under the Account.
When adding a Functional Location to a Work Order after the Service Account has been filled in, only those Locations are suggested by the OOB Lookup View that have the Service Account directly related or related to one of the parent Locations (also over more than one hierarchy level). However if you’re either removing the Parent Location on the Location form or if you remove the Service Account from the N:N subgrid of the highest level Location, then your Locations won’t be found by the Functional Location Lookup view on the Work Order or Case form anymore. You would need to click Change View and then guess which Location was the one you needed.
I personally think it would be more convenient if Microsoft would automatically add the Account to all levels of Functional Location when created from Account form, as it does for the Customer Asset [improve@microsoft]. A user could still delete the Account from the N:N subgrid if not needed.
Until than it could be solved by a custom cloud flow.
Primary Incident Customer Asset lookup field on Work Order
When creating a Work Order the Primary Incident Customer Asset lookup is prefiltered by the Functional Location chosen before, but only for the Assets that are directly related to the Functional Location via ‘Customer Asset’.’Functional Location’ lookup, not for the Child Assets of such an Asset. Why? The child assets do not automatically inherit the Functional Location of the Parent Asset.
With the hierarchy above you wouldn’t find any Asset when chosing Basement and you would still not find Monitor 1 when chosing Room 005. However you can click Change View and remove this flag and then be able to get a list of all Assets of the Service Account:
Depending on your use cases you could surely also solve this by a custom process (Workflow/Flow) that updates the Child Asset’s Location to the Parent Asset’s Location each time there’s a change in the Asset hierarchy.
Customer Asset Form
In a Microsoft Video there is a Customer Asset Form visible in a browser that contains the new Functional Location/Asset-Hierarchy-View:
I wasn’t able to find this form in my latest OOB installation until I found out that I need the Security Role Field Service – Resource to be able to see the form Customer Asset – Mobile (below screenshot). Being “just” System Admin is not enough to get this form provided ;-).
Tip: As stated somewhere else in relation to WO Products and WO Services already, if you’re customizing Field Service, make sure to also assign yourself the other Field Service Security Roles available OOB. System Admin role does NOT provide you access to all the forms used in Field Service [improve@microsoft].
Here it is to mention that only those Assets are visible in the new hierarchy control if one of the parent Functional Locations is related to the Account AND the Top-Level Asset (aka Master Asset) belongs to the Account.
This could also be a little bit improved [improve@microsoft] so that also Asset Hierarchies/Assets are visible that have no Functional Location related to the Account but where only one of the parent assets or at least the Asset itself is related to the Account.
So if you use this feature on the Account form make sure to always add your Functional Locations to all necessary Accounts (n:n) and remember that Assets only show up on the Account form if the Master Asset belongs to the account.
Also remember, that on the Asset Form you might get a better overview of how the Asset in embedded in the Location/Asset structure.
Self Scheduling Portal
In this new portal the Functional Location is displayed next to the affected Customer Asset for which you are Scheduling a Service Call/Technician:
Even if there are still some things to consider and improve, in general this is a very great addition to overall Field Service functionality as many Field Service organizations have a need for a deeper structuring of their locations. Servicing industry clients regularly needs more specific information for the field tech about where to go than simply the main Service Account address.
We even had a need to create graphical inhouse maps of floors and rooms to make transparent where exactly the work has to be done.
The much improved flexibility that comes with Functional Locations can be used for rental services or large machinery, which regularly change places (like construction machines, trains, ships, and similar).
Also I think the long standing problem of a Return & Repair process could be addressed with a Functional Location similar to a “Repair Warehouse”.
A great combination is the new ability to “Disable Customer Asset Validation” which turns off the necessity that a Customer Asset handled during a Work Order needs to belong to the Service Account of the Work Order.
There is an OOB Work Order Report which can be generated even offline by the mobile application.
It contains the signature of the customer captured via the mobile device. The outcome is a PDF that can be attached to a Work Order.
It can also be sent out to a customer by email, however – of course – online is required for that mail.
To adjust the content an dformat of this Work Order Report (PDF Output) the sistem integrator has to adjust a PCF-Control using Visual Studio Code.
An alternative I think is still to use “kind of old school but proven” DocumentsCorePack (DCP) report (highly and easily customizable via MS Word) and let the report be generated when back online via the DCP-Server.
The big question, as this was a weakness in the former mobile signature process where the signature was stored as a picture file attachment within a Note, how does the new mobile app handle the storage of the signature…
It looks like it is stored as a base64 field directly on the Booking:
That means for tools like DCP (or Power Automate) that they have to “interpret” this file format if one wants to use these for a creating a report using the signature.
Sum of all estimated durations coming from Work Order Incidents or Work Order Service Tasks.
First Arrived On
when the first technician arrived onsite / switched the status of a booking to In Progress. It looks at the Actual Arrival Time field of the Booking even if this Arrival Time got updated later.
If Bookings aren’t used the field can be updated manually.
when the last booking was completed. If there are more than one bookings it should be the latest of all the bookings.
It looks at the End Time of the Booking combined with the Booking Status Completed.
If Bookings aren’t used the field can be updated manually. For example if you have subcontractors providing their data differently that through the Microsoft apps.
When the System Status of the Work Order was switched to Closed – Posted.
This field should never be customized as it drived the whole Field Service process and has many implications and automatically triggering lots of Microsoft plugins..
System Status Closed – Posted
If you switch the System Status to Closed – Posted while there are still Scheduled Bookings, they will automatically be set to ‘Booking Status’.’Field Service Booking Status’ Canceled.
While having Bookings in Status In Progress it isn’t possible to switch the Work Order to Closed – Posted or Canceled.
Reported By Contact
Can be a Contact that doesn’t belong to the Account.
Is not being filled OOB from Case.Contact.
Lookup to Resource.
If using Remote Assist this should be used for the remote expert a technician should call when (s)he needs remote support.
Is not being filled OOB from Case.Contact.
Primary Contact, Email, Address Phone
The Primary Contact is part of an embedded Quick View Form, so you can’t edit it directly on the Work Order unless you would embed it via a Form Component Control.
It is the Service Account’s Primary Contact.
Sometimes a bit misleading are the Email and Address Phone fields in the Quick View. Those are data of the Service Account directly and not of the Primary Contact. In my opinion they could have been slightly renamed on the Quick view form to make that more transparent. Even more strange is that these fields on the Account Summary Card: Email (emailaddress1) and “Address Phone” (address1_telephone1) are per OOB installation not available on the Account form. So here is one of the “always to do customizations” [improve@microsoft] to somehow change the Quick View or at least put these fields onto the Account Form.
The Primary Contact of the Work Order is also used for the Info Card displayed on tap on the mobile app’s map pin:
Prices for Work Order Products and Work Order Services are pulled out of this Price List. If Products don’t have a Price List Item in this Price List, then the Product.’List Price’ is used for the Work Order.
If the Billing Account (priority 1) has an associated Product Price List, this will be auto-populated (also if the Billing Account was determined by the Service Account).
If the Billing Account has no associated Price List, the System pulls the Price List from the Work Order Type (priority 2), also if the WO Type was determined by a chosen Incident Type.
Even if the you set the WO Type first and afterwards the Billing Account, the system is setting/keeping the price list with the highest priority.
Also even if a Price List was set first and then a Billing Account, the former Price List gets overwritten.
And by the way, the same logic works on the new Get Started=>Work Order Form, even if the Billing Account Lookup isn’t visible there OOB:
Create Incident Type
A new button in the command bar has been introduced with wave1 2021 which helps to create new Incident Types out of an existing Work Order.
Estimated Duration can be manually adjusted by removing the tick from “Copy Tasks”:
Attention! When customizing WO Product or WO Service form and do that how I sometimes do by creating own custom forms, you might stumble across the default forms not being visible anymore. That is because the default “Information” forms for both are only enabled for the following Security Roles:
Field Service – Administrator
Field Service – Dispatcher
Field Service – Inventory Purchase
What of course is strange and missing is the enablement for System Admin [improve@microsoft]!!
So what I recommend is as long as you’re customizing Field Service to assign your own User the Field Service – Administrator role additionally to System Admin.
Hide price and cost related fields
My “fastest” resolution has been to create a Hidden Tab and put all the unnecessary fields in it. This way you’re not getting in trouble when trying to remove fields that aren’t supposed to be removed from the form.
However I thing Microsoft is working on a general solution on how to disable pricing for Field Service in general because there have been so many customers not using pricing in Field Service but keeping it completely in their ERP.
Tooltips that are defined once across all Schedulable Entities:
Resource Map Pins: Resource Tooltips View
Organizational Unit Map Pins: Organizational Unit Tooltips View
Tooltips individual per Schedulable Entity:
Requirement Map Pins (here also personal view possible): Requirement Map Pin Tooltips View
Booking Map Pin or Booking Tile: Booking Tooltips View
Note: the Booking Tile’s Booking Tooltips View in the Daily/Weekly and Monthly View are not customizable as of now [improve@MS].
Sliding out from the right after selecting an item.
Views that are defined once across all Schedulable Entities:
Resource Map Pin or Resource Card: Resource Details View
Organizational Unit Map Pin: Organizational Unit Details View
Views individual per Schedulable Entity:
Booking Map Pin or Booking Tile: Booking Details View
Requirement Map Pin or Requirement from Requirements List (here also personal view possible): Requirement Details View
Map View filter
Requirement Map Filter View
Determines which Requirements (Requirement Map Pins) are shown on the map.
only the filter, not the columns matter
is independent of the Views on the Requirements Panel /Requirement Lists)
if Apply Territory Filter from Tab parameters (gearwheel symbol) is set to yes, ADDITIONALLY the Territories of the filter fields will be applied to sort out the displayed Requirement Map Pins
Increase Booking width (zoom in): slider at the bottom right. This is saved for the Schedule Board Tab (for all users).
remove columns from List View directly: only temporarily/local, not saved.
to hide certain bookings for example of Custom Entities from the Schedule Board has to be done by using the Field Service Booking Status Canceled for these Bookings and than setting this Status to be hidden.
make default schedule board not editable per Security Role
if the setting for a Schedule Board Tab from 2nd gearwheel, upper right corner, should be saved, the User needs update privileges for this Schedule Board Settings entity record. Changes would be visible for all other Users of this tab as well than. More information: Shared vs. personal Schedule Board (by Microsoft).
Create a new Client Extension record and associate it to the Schedule Board Setting record that contains your Schedule Board Tab or leave the Schedule Board Setting id field empty to have it affecting all Schedule Board Tabs .
What I mean here by “Resource Pool” is a Bookable Resource of the Resource Type: Pool.
Create a new Resource with Resource Type: Pool
optional: add members to the Pool as Child Resources (entity: Bookable Resource Group)
set the capacity of the Pool either a) manually or b) let it be calculated based on the member’s aggregated capacity by setting Derive Capacity From Group Members to Yes
Tip: When creating new Resource Pools and setting the field Derive Capacity From Group Members to Yes and only than start adding Child Resources to the Resource Pool, the system triggers a comprehensive and time consuming Recalculation of the Aggregation, each time after you add a new member to the Pool. So my recommendation when configuring the Resource Pool with this flag set to Yes is, to first add all the Resource Children (Pool Members) and than in a 2nd step turn the flag to Yes.
You now should be able to see the aggregated capacity of your Pool Resource. Click on Show Work Hours on the Pool Resource’s from:
Also in schedule Board you’re able to see the Pool resource this way:
If you have Resource only temporarily joining the Pool, you also see this reflected in the counter for the number of available Resources on the Pool’s Resource Cell. This counter gets recalculated each time you change the displayed date range.
Resource Pool functionalities
you can have Pools consisting of these three Resource Type groupings, called Pool Type: – Equipments – Facilitiies – Combination of [Accounts, Contacts and Users]
the capacity can be automatically aggregated by setting the two option set ‘Bookalble Resource’.’ Derive Capacity From Group Members‘ to Yes.
the skills are not automatically aggregated to the Pool level
you can add skills (manually of by Flow etc to the Pool Resource (parent of the Pool members)
if you book a Work Order to one of the Pool members directly, the available capacity of the Pool doesn’t get reduced for the duration of the Work Order
Microsoft has announced the deprecation of the current Resco based Field Service Mobile App by June 2022.
From June 2021 on new Field Service setups have to use the new Field Service Mobile App which is fully made by Microsoft and in fact is a Model Driven App as we know it today.
The new App can be tested from Field Service Version 8.8.22.x onwards. In mobile App Stores (i.e. Google Playstore) the new app is called “Field Service Mobile (2020)” as of today.
There are some offline capabilities including sync filters already but it looks like offline logic implementation is not as easy and comprehensively possible as is it with the Resco based Field Service app. Also many other functionalities are currently missing, but Microsoft promises to catch up.
Some things that are still missing are: Push notifications, Geofencing and Location Auditing, Reporting, IoT Alerts, Remote Assist and MS Intune.
Interesting is also a new control called “Form Component Control”, which can be used to embed a Work Order form into a Booking form:
Resco will continue to evolve its Mobile Application Development Framework and will also continuously provide new features and mobile solutions. Resco already offers different mobile solutions and templates (i.e. an advanced Field Service template, Sales template, Route Planning, Inspections) that are working perfectly together with Dynamics 365 and will continue to do so after June 2022. That means by the time Microsoft catches up with current Resco technology there will be new functionality available for Users that stay with Resco as well. On the other hand also Microsoft is rapidly growing its Power Apps capabilities.
For now the direction to go would be for more sophisticated requirements and larger implementation projects Resco will probably be the better fit. For more simple / standard requirements Microsoft’s model drivel app could be worth to consider.
To sum that up – it will not be end of development for the excellent Resco Field Service mobile technology – it will rather be a separation between the Microsoft FS Mobile App and the Resco FS Mobile App. Of course we’ll eventually have to pay Resco separately if we want to use their enhanced solutions. But competition is generally good for the market and customer segmentation has always made sense.
Just had a migration where I was blocked by not having the msdyn_FSMNotifications solution installed in my target environment.
The secret behind it: this solution can only be installed on top of Woodford.
So after you have installed Woodford you’ll need to go to the Instance Picker and click on Install (or Upgrade if available) for Field Service, even if it is already installed. This way only some additional solutions will be installed. There you go!
There you can click “Reset” to get the below shown dialog window.
In this window you have the possibility to select an Office Security Group. This field is even pre-populated with the assigned Security Group of the currently selected Instance.
So what you are expecting is that while filling in this form you can use the field “Edit Security group” to assign a Security Group to your reset Instance by choosing the Security Group in this field.
BUUUUT: nothing of this is the case. This field simply has no functionality here.
Even when you click on the lookup pen symbol next to the field so that a popup shows all of your Office Groups and you can select whatever Group you want: for your new reset Instance you’ll always have NO Security Group at all assigned.
So why has Microsoft decided to put this field on this form if it has absolutely no functionality? – Nobody knows.
Please Microsoft, fix that and don’t let us hang with the common statement “works as designed”. Because the design in this point is really more than bad.
On Resco for Dynamics or Field Service Mobile Client you by default have this (in my opinion unnecessary) Signature field on every Note form.
So you might ask yourself why do you need the huge Signature area on each and every Note form. Usually it should be enough to capture Notes only on Work Orders and maybe for some special (custom) forms/processes. It confuses the End User if all he wants is adding an attachment or even only a text Note.
So what you can do is removing the Signature area by a simple On Can Execute rule on the Note form:
After you have configured this you would not see the Signature panel on a Note form anymore and also not the Signature command from the upper right burger menu of the Note form.
You can still configure one or more Signature sections for each of your forms as you already have it OOB on the Work Order form in FS Mobile.
Add Signature Tab to a Form
in Woodford, go to Entity where you want to add the Signature
click “Add Media”
Select “Capture Signature” and “Clear”
Optional: Provide “Required for Status”. Example: Status “Approved” only possible with Signature
Subject: Title of the Note
Similarly you can apply this for Photos, Videos, Files, … You could also have one Tab for Signature capturing and another Tab for Photo and/or Video capturing. Or collect multiple Signatures on one form by having different Tabs for that.
Here is a nice article by Thomas Dayman that gives a short overview of how to embed a Survey Questionnaire created with the new Microsoft Forms Pro into the Field Service Mobile app. The approach is to create an Offline HTML file where Thomas provides a sample code snippet for, and embed that via iFrame into a Form in Woodford.
Compared to Resco’s new Inspections the Forms Pro integration doesn’t support offline scenarios. Resco Inspections comes with additional licence cost whereas for Forms Pro it is still not clear how the licencing will look like.