During building a QML app using ArcGIS SDK for QT, I faced a problem synchronizing one of the hosted feature services layers. The application is designed to create mobile geodatabase file, also all data edits done by a user is happening on one layer in this geodatabase, which is later gets synchronized to a hosted feature service on AGOL. In order to start the sync operation, the application create an instance from “SyncGeodatabaseParameters” class which has a “geodatabaseSyncDirection” property set to “SyncDirectionUpload”. Unlike what I expected, the sync operation is downloading changes took place on hosted feature service from AGOL, instead of just pushing local changes to the AGOL service.
I have create a pair of apps that demonstrate this case, please find the download link here. Please unzip the file, then you will find the following:
- Application 1: syncLayerDemo-add:
- An application that has one layer added to the MapView control, “activity” layer, which is a hosted feature service layer on AGOL.
- The “Add Record” buttons creates a new feature in a random location around the map center and add it directly to the layer
- Application 2: syncLayerDemo-sync
- This application creates a local geodatabase file replica from the same hosted feature service used by “Application 1”, and add the “activity” layer to the MapView
- The “Sync Features” buttons starts the sync operation, and the “activity” layer gets refreshed to show the newly added features
- Open “Application 1” and “Application 2”
- Let the applications load
- On “Application 1”
- Press on “Add Record” button
- A new point feature is added to the map
- On “Application 2”
- Press on the “Sync Features” button
- Wait for the sync operation to finish
Expected: the sync operation pushes local changes from device to AGOL hosted feature service, and not to download any changes from AGOL hosted feature service to local device
Actual: the sync is pushing local changes and also downloading changes from AGOL.
Please let me know if you have any idea what might be the reason for this.