How to synchronize large datasets to an offline profile?
Currenlty we are having an application, based on a HybridTabletOffline profile. Which is syncing large datasets,initially there has been thought about the scoping of the data, with access rules. However still the datasets have became to big and the xpath constrains pretty complex for slower internet connections to synchronize as “Download > All objects’. Causing startup problems and errors at 'Synchronize Everything’ actions. What I would like to do, is the following : Set the 'Synchronisation Configuration' of large entities to Download > Nothing (preserve data) Purely so I can control the amount of objects in batches. And then exactly before this sync to device takes place, I wipe the device (websql) database entity. So i can be sure that all data is not clogging up, since ‘Nothing (preserve data)’, otherwise keeps appending to the local database. Like a sort of nanoflow action called. 'ClearOfflineEntity' with a parameter for the desired Entity. That will clear the entire entity (truncate) locally. So it will not be uploaded anymore with the next synchronize action. (with nanoflow deletion (mx9+) the deleted objects will still be uploaded and even deleted on the server )) However this exact option is not available and after a lot of googling and investigation Client API possibilities (looking in the documentation and source code) . I have not been able to find a way to create such an action. How possible is this approach? Or do you have a complete other approach?
Generally a boolean attribute is used to remove data from the device's database during a synchronisation. In the documentation here it is stated that data will be removed during the 'sync to device' activity that the user no longer has access to due to access rules. Using access rules you can manage which data will be synched or removed from the local database.