Migration from Resco to Microsoft (Field Service Mobile) in April 2021

This is a continuation of my last blog post – https://www.daymandynamics.com/migration-from-resco-to-microsoft-field-serivce-mobile-in-may-2020/


Microsoft have added some migration details which can be found here – https://docs.microsoft.com/en-us/dynamics365/field-service/mobile-2020-power-platform. Observing some important information within that link is Microsoft actually now recommends using their new application going forward for new implementations.


  • Field Service (Dynamics 365), shown to the left in the image above, is built on the Microsoft Power Platform. In our documentation, we refer to this app as the Field Service (Dynamics 365) mobile app. This mobile app is recommended.

Also the old Field Service Mobile (Xamarin) aka “Resco” application will not be supported after June 2022. However this does not mean that it will be deprecated or shutdown after this date, it just means Microsoft will no longer support you with any problems or ongoing issues with the old Field Service Mobile (Xamarin) application.


  • Field Service Mobile, shown to the right in the image above, is built on the Xamarin platform. In our documentation, we refer to this app as “Field Service Mobile (Xamarin). This mobile app will be supported until June 2022.

You can compare the differences between the two applications here – https://docs.microsoft.com/en-us/dynamics365/field-service/mobile-2020-power-platform#feature-comparison-field-service-dynamics-365-mobile-app-versus-field-service-mobile-xamarin. However the differences described in the link are too high level and I wish to dig deeper into some of the areas in this blog post.


Migration Steps


Microsoft have supplied an ‘Adoption Playbook’ – https://aka.ms/fsmobile-adoption which lays out what’s needed when adopting the new Field Service (Dynamics 365) mobile app.


Forms


Nothing much has changed from last year you can look at my last blog post for details.


Views


Nothing much has changed from last year you can look at my last blog post for details.


Offline HTML


Nothing much has changed from last year you can look at my last blog post for details.

The only part which has had some changes is Mobile Reports:



Form Rules


Nothing much has changed from last year you can look at my last blog post for details.


Commands


Nothing much has changed from last year you can look at my last blog post for details.


Sync Filters


Sync Filters has had a major upgrade since my last blog post. Microsoft now have the ability to add Enhanced offline sync filters, more information can be found here.

There is a catch though! What I expected is that you can export the XML from all the entities from Woodford and just import them into the offline profiles but that is not the case, for some reason the XML Microsoft create have an added filter tag inside of the XML.


Resco – Sync Filter Example
<fetch version="1.0">
<entity name="bookableresourcebooking">
<all-attributes/>
<filter type="and">
<condition attribute="statecode" operator="eq" value="0"/>
</filter>
<link-entity name="msdyn_workorder" alias="L0" from="msdyn_workorderid" to="msdyn_workorder" link-type="inner">
<filter type="and">
<condition attribute="msdyn_workorderid" operator="not-null"/>
<fetch version="1.0">
   <entity name="bookableresourcebooking">
      <all-attributes />
      <filter type="and">
         <condition attribute="statecode" operator="eq" value="0" />
      </filter>
      <link-entity name="msdyn_workorder" alias="L0" from="msdyn_workorderid" to="msdyn_workorder" link-type="inner">
         <filter type="and">
            <condition attribute="msdyn_workorderid" operator="not-null" />
         </filter>
      </link-entity>
   </entity>
</fetch>

Dynamics – Sync Filter Example
<fetch version="1.0">
   <entity name="bookableresourcebooking">
      <all-attributes />
      <filter type="and">
         <condition attribute="statecode" operator="eq" value="0" />
         <link-entity name="msdyn_workorder" link-type="any" from="msdyn_workorderid" to="msdyn_workorder">
            <filter type="and">
               <condition attribute="msdyn_workorderid" operator="not-null" />
            </filter>
         </link-entity>
      </filter>
   </entity>
</fetch>

If you look on line 11 of the ‘Dynamics – Sync Filter Example’. If you a create sync filter from the power platform which contains linked entities then the platform will wrap those link entities inside a filter tag. I tried to programmatically creating mobile offline profiles with the same Sync Filter XML from Woodford but it gives me an error saying that the XML is not formatted correctly. I’m not sure why this is the case but it makes migrating over sync filters a little more complicated.


Offline Sync


This is one of the areas I wanted to focus on a little deeper. I have exported the Data Configuration settings from Woodford and tried to see if Microsoft have come close to the level of detail for data synchronisation.

  • No – Microsoft have no comparable feature
  • Yes – Microsoft have a similar feature
  • Yes – Microsoft have a comparable feature
NameDescriptionField Service Mobile
Background Sync  
Auto SyncSet up automatic sync (Never, On App start, After entity form Save or Delete action). Background sync needs to be enabled. No
Auto Sync DelayLaunches sync every X second. Even if no local changes were made (0 – disabled). Background sync needs to be enabled. Yes
Auto Sync in OnlineLaunches sync after 10X seconds when a change was made in Online Mode (0 – disabled). Background sync needs to be enabled. Yes
Background DownloadAlways download records in background. If True, foreground sync switches to background after executing upload & customization update. No impact for background sync. No
Background File SyncAlways download attachments in background. If True, foreground sync does not wait for attachment download completion. No impact for background sync. No
   
Sync Data  
Sync Email as TextStrips HTML from CRM emails during sync. Database space optimization. No
Max Sync RecordsMax number of records per entity to download. This is a hard limit that violates data integrity. (More restrictive sync filter is a better way to reduce app data.) No
Max Attachment SizeMax size of an attachment (documents, notes, email attachments) in bytes to be downloaded during sync. Larger attachments can be downloaded on user request. Yes
Sync Shared Records(Dynamics only) Sync shared records. (Shared records are always downloaded during full sync. Incremental sync updates shared records only when this setting is ON.) No
Sync Shared for Access Teams(Dynamics only) Extends shared records sync by checking also dynamic access teams. No
Sync Azure Attachments(Dynamics only) Use special method to download note attachments stored in Azure blob storage. (Requires Azure blob store plugin from Jenkins.) No
Field Level Permissions(Dynamics only) If True, field level permissions set in Dynamics CRM are respected also in the mobile app. No
   
Sync Errors  
User can Ignore Sync ErrorsSync Errors form: Allow the user to ‘resolve’ sync error with Ignore. No
Show Sync WarningsShow sync warnings alert after sync completion or just silently write them to the sync log. (In case of multiple warnings only the first one is shown.)No 
Diagnostic Sync Logs  Produce extended diagnostic output from sync.No 
Log Conflict DetailsSync log should list client data changes (modified properties & their new values) along with logged conflict. For entities with conflict handling set to User Action. Yes
Remote Conflict ResolutionSync should check for remote conflict resolution (done in Woodford’s Sync Dashboard). No
Send Error Logs via RescoIf True, error logs will be sent via Resco web service instead of native email client. Use when native client truncates email messages. No
   
Sync Advanced (contact support before use!)  
Chronological Upload OrderSync uploads entity records in the order in which they were edited (created/modified) first time. (Default is order by last modification date.) Defines upload order of the records within the same entity; not the order of entities. No
# Records / UploadRequestMax number of upload requests sent in one batch to the Server.No 
Disable Sync Analyzer  Analyzer is an optional module that detects tables for which it is faster to download full content instead of executing incremental sync. (May improve sync times if server has many changes.)No
Use Linked Sync FilterUse linked sync filter in incremental sync. Defines ‘Project Default’ option for entity ‘Incremental Linked SyncFilter’ setting.No
# Emails / Download batchMax number of emails to download in one batch (20-500). Emails have separate limit (other entities use batch size 500) because they can carry large data. No 
No Lock During Sync(Dynamics only) Server should take no lock during read. Prevents server deadlocks but can read uncommitted dirty data.No
Send empty Picklist as Null(Dynamics only) Send empty picklist value as Null. (Default is ‘False’, i.e. empty value is sent as -1.) No
   
Sync, Legacy settings (Do not change without a reason!)  
Multi Thread SyncUse multiple download threads for faster sync.No 
Full Sync on Schema ChangeForce full sync when a new customization changes entities/fields. (Default: database schema is updated, and incremental sync executed.)Yes 
RowVersion Change Tracking(Dynamics only) Uses a more precise method for tracking server changes. (Alternative is modifiedon date.) No
Legacy Marketing Sync(Dynamics only) Use legacy marketing list member sync algorithm.No 

Conclusion


The Field Service Mobile application is coming along nicely but is still lacking in the offline synchronisation detail. I feel that when you configure offline on the Resco platform you really feel you have control of every detail of the synchornistion process compared to Microsofts current offline capability.


One of the major advantages of moving over to the new Field Service (Dynamics 365) mobile app is not needing to duplicate configuration effort. Once something is built for mobile such as forms, views or javascript etc. The mobile will take those changes as well, reducing the need for a Resco expert.


On the migration front, it seems that Microsoft are not introducing any tool which can handle or assist the migration for you. Judging from the Adoption Playbook that Microsoft have introduced, it seems that this document is meant to guide their customers and partners in the right direction when the time comes to migrating from the old application to the new. However we will wait and see if anything changes in the future.


My conclusion at this time is this. If you have complex offline requirements then the Resco platform is still king. However if you are not entirely fussed about offline performance or either have loose requiremnts for seeing offline data, then go for the Field Service (Dynamics 365) mobile app. It will save you on development costs and build time in the long run.


Depending on how developments go I may create another blog post in future on this subject. Thanks for reading!

2 thoughts on “Migration from Resco to Microsoft (Field Service Mobile) in April 2021

  1. Hi Tom,

    Any plans for a further update to your blog on Resco to Microsoft migration or has nothing change much to warrant it?

    Regards
    Martin Green

Leave a Reply

Your email address will not be published. Required fields are marked *