If your import of a managed CE solution fails because of dependencies to a missing component msft_datastate maybe this is helpful for you.
My first idea to resolve this was to remove the tables from the solution before exporting it, where MS is asking for the field and then add all components of the tables one by one back to the solution except for the column msft_datastate.
Maybe that’s already the resolution for you.
Problem with first time deployment
My problem was that I wanted to deploy the solution for the first time into a fresh environment where these tables have never been installed before. So the import now failed, because now there were components of type “table” missing, even when I added all entity metadata before exporting it from source environment.
So my final resolution has been to first create the problematic tables as unmanaged in target environment with exact same names and publisher.
Then importing my solution from above. During import, the unmanaged tables are being transformed into managed components, so we’re fine there too. And deployment works!
I recommend updating all relevant Apps in target environment before undertaking this operation.
Recently we had to increase the field length (Maximum character count) of some Dataverse fields.
Everything was fine except for these fields which have been part of a Concatenate formula of another Power FX Formula Column.
There the update of the field size always brought up a SQL error so that we couldn’t save our customizations of the field.
Resolution was to remove the Concatenate formula from the other Power FX column that referenced these fields, publish it, than increase the field length of the affected fields and after publishing this again add the Concatenate formula again.
What I don’t know if it makes a difference: the Formula Column was indexed for search in Global Search in our case.
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 to not only 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 in 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:
It would be so kind if Microsoft just let us customize the view columns in maker portal as any other views of the system.
When you are creating an additional Form and have Business Rules with Scope “All Forms”
from another Managed Solution for that Entity, don’t wonder that the Business Rules do not appear on your custom Form.
However you can find them when opening your custom Form not in your own Unmanaged Solution, but in the Default Solution.
So don’t wonder, if Business Rules trigger for your custom Form, which you haven’t had in mind when only checking the Form editors Business rule area.
Learning: If you wanna know which Business Rules are using the arranged Fields on your custom Form, go to the Default Solution! Get a better overview of a Field’s involvement by opening your custom Form from there.
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 Posted
If you switch the System Status to Posted (formerly “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.
The content of this field is automatically pulled (copied) from the associated ‘Service Account’.’Work Order Instructions’.
It is good for general advice related to the customer like how to enter the building or other Service Account specific information.
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”:
Customer Voice wird per Tenant lizenziert (200 USD oder 168,70 €/Monat) plus Kapazität an Anzahl Antworten (Responses) zu den verteilten Surveys.
Kunden mit D365 Sales Enterprise, Customer Service Enterprise, Customer Insights, Field Service, Marketing, und Human Resources bekommen automatisch eine Customer Voice Lizenz und haben 2000 (Responses) im Monat frei.
Die gekaufte Anzahl Responses wird gepoolt über den Tenant, kann aber über Office Sicherheitsgruppen a.u. verschiedenen Umgebungen zugeteilt werden.
Zusätzliche Response Packages gibt es mit 1000 Responses pro Monat. Diese kosten 100 USD oder 84,30 €/Monat. Nonprofit-Preis: 33,70 €/Monat oder weniger.
Mehr Infos zu Preisen: https://docs.microsoft.com/en-us/dynamics365/customer-voice/purchase
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.
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.
With Wave 1 2021 Microsoft has released a revised integration of Appointments into Resource Scheduling.
After setting ‘Scheduling Parameter’.’Include Appointments’ to Yes, you’ll see all Dataverse Appointments on your Schedule Board including their colored Appointments Status. And that in between your other Bookings coming from Work Orders or Custom Entities etc.:
Appointments that were tracked from Outlook “Dataverse appointments can also originate in Outlook, and be synced to Dynamics 365 if server-side synchronization has been set up. An Outlook appointment must be manually assigned the special Tracked to Dynamics 365 category so it appears as a Dataverse appointment record.”
Appointments from Service Calendar
CRM/Dataverse Appointments coming from Timeline or other Activity entries “Appointments will be visible on the new schedule board for the required attendees and the owner, as long as they are set up as bookable resources.”
Appointments can’t be moved in Schedule Board
can be deactivated for certain Resources in ‘Bookable Resource’.’Include Appointments’
RSO respects the Appointments
Schedule Assistant (Find availability) will also respect it (coming wave 2 2021)
“Appointments marked private in Outlook will not show their subject on the schedule board”