A conflict can occur if two or more users make changes to the same fields in the same objects and this results in the fields being set to different values.
Conflicts can only occur when getting other users' changes when another user has already committed a different change to the same data. Bear in mind that getting other users' changes is the first stage in committing your own changes back to the database, so conflicts will often occur as part of this process.
Commit changes regularly to reduce the possibility of conflicts and to keep other users up-to-date. You cannot save your own changes to the database until you have successfully updated your local copy of the data with changes made by others, and resolved any conflicts that might arise. This means you have to choose to keep your own change, or discard it in favour of the change made by another user.
Conflicts can be difficult to resolve. Within InfoAsset Manager the process of choosing one value or another is relatively simple. However, within your organisation there will probably be phone-calls, e-mails and even meetings to decide why the conflict has arisen and which value is correct.
The best approach is to plan your work to minimise the chances of conflicts ever occurring:
If conflicts occur when you get other users' changes, your local database will be updated and you will see a message showing you how many objects have conflicts.
Example of warning message displayed when there are conflicts
If you have created (or renamed) an object so it has the same ID as an object added by another user you have three options:
Some data , for example line or boundary geometry, is stored within the database as arrays. When a conflict exists in this array data, the Resolve Update Conflicts dialog will show that there is a conflict, but it will not show which values differ. This is because of the way this array information is stored.
Here are some examples of possible conflicts and how they are dealt with by InfoAsset Manager. These examples may not come from your specific Innovyze software but the same principles apply.
The network contains a manhole with ID 'M101' and the System Type field set to other. Two users User 1 and User 2 both download the latest version of the network.
Click on the images below to reveal the examples.
Example1
User 1 changes the System Type field on manhole 'M101' from other to foul
User 2 notices, whilst making other changes, that manhole 'M101' does not have the correct System Type so changes the field from other to combined
User 1 commits changes to the server. The network now has foul in the System Type field for manhole 'M101'
User 2 attempts to commit changes to the server. InfoAsset Manager first tries to update User 2's local network with User 1's changes. InfoAsset Manager detects a conflict and the commit is rejected. User 2 must resolve the conflict before trying another commit. InfoAsset Manager informs User 2 of the problem with the System Type field. User 2 must choose to either keep his change or User 1's. Obviously either User 1 or User 2 has made a mistake and User 2 should find out which is the correct System Type for this manhole – or perhaps to set it back to other.
Example2
User 1 changes the System Type field on manhole 'M101' from other to combined
User 2 notices, whilst making other changes, that manhole 'M101' does not have the correct System Type so changes the field from other to combined
User 1 commits his change to the server. The network now has combined in the System Type field for manhole 'M101'
User 2 updates his local copy of the network, possibly as part of the commit process. The update succeeds because although User 1 has also changed the same data field the InfoAsset Manager detects they made the same change so there is no conflict.
Example3
User 1 renames manhole 'M101' and calls it 'X101'
User 2 adds a new manhole and calls it 'X101'
User 1 commits his changes to the server. The network now has a manhole 'M101' renamed to 'X101'
User 2 commits his change to the server. InfoAsset Manager detects a conflict and the commit is rejected. User 2 is informed that there is already a manhole 'X101'. User 2 must resolve this conflict by renaming his new manhole.
Example4
User 1 renames manhole 'M101' and calls it 'X101'
User 2 renames manhole 'M102' and calls it 'X101'
User 1 commits his changes to the server. The network now has a manhole 'M101' renamed to 'X101'
User 2 commits his change to the server. InfoAsset Manager detects a conflict and the commit is rejected. User 2 is informed that there is already a manhole 'X101'. User 2 must resolve this conflict by renaming manhole 'M102' to another name, accepting the name 'X101' or reverting to the old name 'M102'.
Example5
User 1 deletes manhole 'M101'
User 2 changes the System Type field on manhole 'M101' from other to combined
User 1 commits his changes to the server. The network no longer has a manhole called 'M101'
User 2 commits his change to the server. InfoAsset Manager detects manhole 'M101' has been deleted and does not apply the edit.