Conflict resolution: Difference between revisions
| Line 30: | Line 30: | ||
== Resolving conflicts on the client == | == Resolving conflicts on the client == | ||
In case of conflicts, a new item appears as the first item of your [[Home screen]]: '''Sync Errors'''. | In case of conflicts, a new item appears as the first item of your [[Home screen]]: '''Sync Errors''' that lists the records with conflicts or upload errors. | ||
In the example below, there is a conflict for the contact record called "Simmons, Victoria", including its details in the right pane. The picture shows no upload errors. | |||
[[File:Sync Errors.png|600px]] | [[File:Sync Errors.png|600px]] | ||
| Line 37: | Line 39: | ||
Tap '''Resolve''' and select how to resolve the conflict: | Tap '''Resolve''' and select how to resolve the conflict: | ||
* '''Clear Error & Retry''' – Delete the error log | * '''Clear Error & Retry''' – Delete the error log. The record will be synchronized again during the next synchronization. Typically used when the client fixed the validation problem. | ||
* '''Clear Error & Ignore''' – Delete the error log | * '''Clear Error & Ignore''' – Delete the error log. Client and server records will keep their values without any reconciliation. | ||
* '''Help – About sync errors''' – Takes you to https://www.resco.net/sync-errors/ | * '''Help – About sync errors''' – Takes you to https://www.resco.net/sync-errors/ | ||
* '''Take Server Version''' – | * '''Take Server Version''' – Download the server version of the record and overwrite the client record, then delete the error log. | ||
* '''Email''' – Send one or all errors to your administrator for consideration. | * '''Email''' – Send one or all errors to your administrator for consideration. | ||
* '''Merge''' – Merge conflicting records manually, specifying the fields to take from device or CRM server version.<br>[[File:Merge example.png|600px]] | * '''Merge''' – Merge conflicting records manually, specifying the fields to take from device or CRM server version.<br>[[File:Merge example.png|600px]] | ||
* '''Cancel''' – | * '''Cancel''' – Resolve the conflict later. | ||
See also a [https://www.youtube.com/watch?v=qB6do_cw7s8&feature=youtu.be&t=381 short demo of this feature]. {{Badge|Webinar}} | See also a [https://www.youtube.com/watch?v=qB6do_cw7s8&feature=youtu.be&t=381 short demo of this feature]. {{Badge|Webinar}} | ||
Revision as of 12:21, 13 August 2020
A synchronization conflict comes into play when users modify a record in the Resco Mobile CRM application in offline mode, but before they synchronize the change, the same record is also altered on the backend server. In other words – the same record gets updated both in the mobile client and on the server, but neither of these modifications has been yet synchronized between them.
And thus the conflict occurs: Which modification should be applied to the record, both in the app and on the server, after the next synchronization takes place?
Identifying conflicts
Conflicts are identified during synchronization. One of the early phases of synchronization is uploading client changes to the server, and in this step, the client searches for conflicts (using the modifiedon attribute of records).
Configuring conflict resolution
Woodford administrator can select a conflict resolution strategy. The strategy is defined for each entity. Select the entity in the Project menu and choose the appropriate option for the On Conflict parameter:
- Server Wins – In the case of a conflict, the server version of the record is used and overwrites the record on the client. The action is noted on the sync log.
- Device Wins – In the case of a conflict, the client version of the record is used and overwrites the record on the server. However, only the fields changed on the client are uploaded. If the changes on the server affected different fields than on the app, both changes are preserved. If the same field was changed in both databases, server values are overwritten.
- Device Wins (Full) – In this strategy, the whole record, including unchanged field values, is sent to the backend. So the whole record is used to overwrite the backend server version if the record, despite the server version of the record changes.
- Manual Action – Conflicts must be resolved manually, either by the user in the app or by an admin using Sync Dashboard.
For automatic handling, you can decide which side (client or server) wins. The change on the losing side is lost.
Alternatively, to ensure that you don't lose any important information, you can resolve conflicts manually. You have two options for manual conflict resolution:
- App users can resolve conflicts directly in the app. This is the default behavior for manual action.
- Administrators can resolve conflicts remotely using the Sync Dashboard. Go to Woodford Configuration > Offline Data Sync > Sync Errors and enable Remote Conflict Resolution.
Resolving conflicts on the client
In case of conflicts, a new item appears as the first item of your Home screen: Sync Errors that lists the records with conflicts or upload errors.
In the example below, there is a conflict for the contact record called "Simmons, Victoria", including its details in the right pane. The picture shows no upload errors.
Tap More if you want to show the detail of the affected entity record. The client version is displayed.
Tap Resolve and select how to resolve the conflict:
- Clear Error & Retry – Delete the error log. The record will be synchronized again during the next synchronization. Typically used when the client fixed the validation problem.
- Clear Error & Ignore – Delete the error log. Client and server records will keep their values without any reconciliation.
- Help – About sync errors – Takes you to https://www.resco.net/sync-errors/
- Take Server Version – Download the server version of the record and overwrite the client record, then delete the error log.
- Email – Send one or all errors to your administrator for consideration.
- Merge – Merge conflicting records manually, specifying the fields to take from device or CRM server version.
File:Merge example.png - Cancel – Resolve the conflict later.
See also a short demo of this feature. Webinar
Resolving conflicts on the server
See Conflict resolution in Sync Dashboard for more details.