[OGo-Developer] Re: additional field for synchronizatin

Helge Hess developer@opengroupware.org
Thu, 23 Aug 2007 01:43:00 +0200


... moving to the list ...

On 22.08.2007, at 20:09, Wolfgang Sourdeau wrote:
> We are working on a plugin for Funambol for enabling users to  
> synchronize their data with SOGo.
> The remaining issue is that events and contacts deleted from the  
> server by the web ui or in dav are not deleted in Funambol since  
> there is no way to know whether en entry has been deleted or not.
> THe solution I have in mind for this was to add a field "c_deleted"  
> to the quicktables. Once this flag would be active, the elements  
> would no longer appear in SOGo (web or dav) but the funambol  
> connector would still see them as deleted.
>
> From there, a cronjob should run periodically to effectively delete  
> those objects from the database.

IMHO (if I remember SyncML right) this is wrong. SyncML transactions  
are just that, transactions. Whether an object is deleted is keyed to  
the state of the SyncML transaction, not to the object itself (which  
might even get resurrected!). Ie SyncML needs to know which objects  
got deleted since the last transaction, not *all* deleted objects  
(this would slow it down significantly, much more than the initial  
GroupDAV fetch overhead!).

I think the proper thing to do for Funambol is to create a separate,  
SyncML transaction table which maps a specific path+etag state to the  
relevant transaction-id (not sure whether Funambol exposes the TX-ID,  
some specific timestamp might do).

But besides that, I don't have objections to a deleted flag. Really  
deleting the data is rarely useful :-) (assuming that vCards/iCals  
usually don't consume GBs of data ...)

Helge
-- 
Helge Hess
http://www.helgehess.eu/