From SeedCode Documentation

GoZync4: Deletes

How does GoZync handle deleted records?

Records deleted on the hosted side are deleted from the mobile device the next time the mobile device pulls that table or executes a round-trip sync.

Records deleted on the mobile side are not passed to the host as deletion instructions. If you want to be able to delete records on mobile and have those records deleted from the host, tag the mobile record with a "deleted" flag instead. Then include the field in your Zync layout and delete the record on the host using a server-side script.

(Having been deleted on the host / server, the record will then actually be deleted from the mobile device next time it pulls records.)

Deleting records that don't (no longer) belong to me

A record doesn't actually have to be deleted from the host / server to be deleted from the user's mobile device: the record would also be removed from the user's device if it no longer "belongs" to that user.

For example, let's say that you've scripted GoZync to only pull down your orders that are marked "Ready". And that when you push those records back to the server, you're using our Custom Field Mapping script to mark the record "Completed."

Well, next time that mobile user pulls down records, they'll also pull a list of all the orders they are supposed to have on the device: any records not on that list (because they were deleted from the host or because they are no longer "ready") will be deleted from the user's device. This makes it very easy to craft workflows where the user only has the records they need: you build a found set of records appropriate for that user, and GoZync does the rest.

Now this means that you may want to prevent users from pulling down new records if they have unzynced records on their device, but you don't have to. In the round trip syncs, for example, GoZync pushes changes before pulling them.

Here is an example of how deletes can really help with your workflow.

Let's say I'm a home health care aide and each morning I sync down to my iPad the half dozen or so patients I need to visit that day. So on Monday I get 6 patient records on my iPad.
If I have GoMaps I know just where they are, but that's another story =)
At the end of the day I sync my visit notes back up to the hosted files. Now one of the patients I saw on Monday, Beth, called up to the office an needs something else, so the folks at the office assigned me to visit her again tomorrow.
So on Tuesday morning I sync again and the filter in GoZync pulls down just the people I'm assigned to see on Tuesday. Since Beth is on my list for Tuesday, she stays on my iPad and gets some new notes from the office. The other 5 people I saw on Monday no longer match my filter criteria (folks assigned to me for Monday) so they're deleted from my iPad and replaced with my Tuesday patients.
And if another aide calls in sick and the office has to assign two of their patients to me as well, all I have to do is sync again and I have those two new patients as well. Both of which will be deleted from my iPad when they no longer match my day's assignment.
GoZync handles all of this: deleting any records on your mobile device that no longer match your filter criteria.

Turning Off Deletion

If you want to manage the deletion of mobile records yourself, you can turn off GoZync's management of it. Simply add an "Exit Script" line at the beginning of the script "Delete Records Not In This List ( $IDsToKeep )" in GoZyncMobile.

Retrieved from http://www.seedcode.com/pmwiki/pmwiki.php?n=GoZync4.Deletes
Page last modified on May 16, 2014, at 12:48 PM