Overwriting Another User's Changes

This is something I’m surprised that never occurred to me until now. If you are for example viewing a Case Detail or Edit screen, and you are looking at a field with a value of “RED BRICK” and another users makes a change to that field, changing the value to “BLUE BRICK”. Then without refreshing your screen, you edit the field by adding the word LAYER, “RED BRICK LAYER” not know another user just changed the value to “BLUE BRICK”. So you overwrite “BLUE BRICK” with “RED BRICK LAYER” This would be especially possible for users that leave the detail screen open for long periods.

When you save a case file (or any other module file) does it writer all the field values to the DB for that record or only the fields that the values changed?

That’s a problem. Or, does Suite (Sugar) detect if a field has been updated since you viewed it and not let you overwrite it?

Well I tried it for myself, and interestingly, the inline edit feature will update the field with the latest value if you try to edit it. But unfortunately, what I describe is possible if you use the Edit view to edit the record. You can unknowingly modify a field value that isn’t the actual current value of the field if it was changed by another users since you opened the edit view. Now if you are replacing the value, it wouldn’t be a problem.

Admittedly, for installations with small user groups, what I’m describing although technically possible, probably would be an extremely rare occurrence. But it is a gap in the system architecture, but hey, this is built on a pretty old code base.