Resolving synchronization conflicts automatically
Glossary Item Box
Introduction
During the synchronization of a mobile app working in the offline mode, the transferred data sometimes cannot be saved. This happens if:
-
A record was merged with a duplicate, and therefore does not exist.
-
A record was deleted.
The mobile application processes both cases automatically.
Record merged with a duplicate
The algorithm of resolving synchronization conflicts caused by duplicate merging is shown in Fig. 1:
Fig. 1. Resolving a conflict of merged duplicates
The application first checks the records that have been merged since the last synchronization. Namely, what records were deleted and which records replaced them. If there were no errors during export, the import is performed. If the Foreign Key Exception or the Item Not Found Exception errors occur, the following steps are taken to resolve the conflict:
- The system checks for columns with the “old” record.
- The “old” record will be replaced with a new record which includes the merged data.
The record is sent to bpm’online afterwards. When the import is finished and the information on merged duplicates is found, the “old” records are deleted locally.
Record not found
If the server returns a “Record not found” error, the application performs the following actions:
- The application first checks the records that have been deleted when merged with another record (see: “Record merged with a duplicate”).
- If there is no deleted record in the list, the application deletes it locally.
- The application deletes the record information from the synchronization log.
After this, the application considers this conflict as resolved and continues to export data.