About resolving conflicting changes in Datasheet view
A conflict arises when two users make a change to the same portion of a list's data or structure. The user who submits a change first will succeed in committing his or her changes, but the second user will be notified of a conflict.
For example, user A changes the City column of the third row from Dallas to Seattle, and at the same time, you change the cell from Dallas to Houston. User A's changes are submitted to the server first, followed by your changes. The server informs you of a conflict and lets you resolve the conflict.
Note A conflict will occur even when users edit different cells in the same row.
The following illustration shows the list with the Conflict icon in the header of the third row.
You won't be able to make any changes to a row that has a conflict until you resolve the conflict.
Clicking the Conflict icon displays the Resolve Conflicts dialog box.
Note If you attempt to delete a row that has been updated by another user, a conflict will occur, but you won't see the Conflict icon because the row has already been updated. In that case, click Resolve in the status bar to open the Resolve Conflicts dialog box.
The details grid displays all the columns in your current view. For the affected row, it shows the change you made as well as the change made by the other user. The changed columns appear highlighted. Note that you cannot edit the values displayed in the details grid. At the top of the dialog box you can see the name of the user who made the change, and the date and time the change was made.
When two or more users make a series of changes, it is possible to get multiple conflicts. A new conflict could occur when you are trying to resolve an existing conflict. If there is more than one conflict, the Resolve Conflicts dialog box will enable you to view details of each conflict by clicking the Previous and Next buttons on the top right of the dialog box. The conflicts are sorted on row numbers. In other words, the conflict in the third row appears before the conflict in the fourth row. As you scroll through the conflicts, the affected row gets the focus in the datasheet. You can also view the details of a specific conflict by clicking the Conflict icon in the affected row. The dialog box will automatically scroll to the selected conflict, but you can view details of other conflicts by clicking Previous or Next.
Note If there are one or more errors in the view in addition to conflicts, the Resolve Conflicts dialog box will include details of the errors, and enable you to resolve them.
Based on the information in the details grid, you could either ignore the changes you made, or retry your changes. If the changes were made to different columns of a row, retrying your changes will merge your change with user A's change. If the changes were made to the same cell, your changes will overwrite user A's change. When there are multiple conflicts, you can take individual action for each conflict, or take a single action for all conflicts. To ignore or retry all of your changes, click Discard All My Changes or Retry All My Changes.
You can close the dialog box without taking any action, but you will not be able to leave or refresh the list, or make changes to a calculated column, until you resolve the conflict.
Special scenarios in the Resolve Conflicts dialog box
- You update a row that has been deleted by another user. In this case, the dialog box will not display the name of user or the date and time when the change was made. In the details grid, the row that corresponds to the other user simply displays Deleted row. The only option available to you is to discard your changes. You will not be able to retry your changes.
- User A updates a column that is not included in your current view. In this case, the details grid will not include the column that was changed by user A. Retrying your changes will not overwrite the changes user A made to the columns not included in your view.
- User A edits a column, and edits it again so that the cell gets the original value back. In this case, the dialog box will only show the latest change.
- If the current filter hides a row with a conflict, the dialog box will temporarily remove the filter to show the row in the datasheet. After the dialog box is closed, the filter will be automatically reapplied.
- If user A adds or deletes an attachment using the browser and you update a row, you will receive a conflict. However, the dialog box will highlight the column in the Other user's changes row only when the user adds the first attachment or removes the last attachment. The column in the details grid will show Yes when there are one or more atttachments, and No when there are none.
- If the affected cell is a hyperlink, the details grid will display the URL if the display name is not available. For a picture, the grid will display the path. If the affected column includes rich text formatting, the grid will display the text without the formatting. However, the column will appear highlighted if the formatting was changed.
Resolving structural conflicts
It is also possible to get a structural conflict when two or more users are editing different parts of a list. A structural conflict occurs when it is not possible to resolve changes. For example, user A deletes a column, and user B attempts to update it. Or, user A changes the column's data type, and user B enters data that is not compatible with the new data type. In such situations, user B will be asked to refresh the list. Refreshing the list will retrieve the latest version of the list, but user B's changes will be discarded.
Resolving a conflict could lead to a new conflict or error
Resolving a conflict can result in one or more new conflicts or errors. For example, a third user, user C, makes a series of conflicting changes while you are resolving conflicts that arose due to user A's changes. If trying to reapply your changes results in a new conflict, it will be added to the list of existing conflicts, and the dialog box will be updated.