14
votes

I'm trying to come up with some good words to explain an optimistic concurrency exception to a user. It turns out it's a lot harder that I thought it would be. the best I have so far is:

Someone else has already modified the record you were working on. Their new values are shown below. Please remake the changes you made.

This feels kinda crappy to me, they must be something better. Any thoughts?

5

5 Answers

5
votes

How about.

The record you are working on has been modified by another user. The new values for this record are shown below. Changes you have made have not been saved, please resubmit.

5
votes

Not sure if it is technically feasible in your case but the following information might be considered helpful by the users:

Changes to this 'customer' record can't be saved.

This is because the user 'aliceb' just changed it. You have to redo your changes. The fields 'Adress' and 'Name' are updated.

2
votes

As well as the fields in conflict, if you know the previous user that made the change, why not supply that too. Maybe the user is fully aware of what the message means, but for them it would be more useful to know who made the change so they can contact them and find out if their's is more relevant.

I think also that the message is probably going to be something that has meaning to your end user - are they technical or non-technical (so aware of the concept) and are there any business terms that would help?

2
votes

Note that you have four scenarios to cover:

  1. The user tries to update the record, but someone else updated it first.
  2. The user tries to update the record, but someone else deleted it first.
  3. The user tries to delete the record, but someone else updated it first.
  4. The user tries to delete the record, but someone else deleted it first.

In light of this, if you need a single message try this:

Operation failed because another user has updated or deleted the record. Your changes have been lost. Please review their changes before trying again.

Even better (but more work) would be to offer several variations of the messages based on the specific conditions, and if possible to tell them who the other user was.

You should also consider the user experience.

Deleting is often done from a grid, so saying "the new values are shown below" may not be appropriate except for scenario 1 (update/update).

Also, scenario 2 (update/delete) is tricky because you probably want to redirect the user to a new form. Otherwise, if the record they want to update is deleted, what are you going to show them?

Scenario 4 (delete/delete) could arguably be ignored. Someone else beat you to it, so what?

0
votes

This record has been modified by another user. To persist your changes Press <> or Press <> to obtain the latest update.