Broken references

When loading resources, DevOps Model RealTime attempts to resolve references to other elements that are available in the workspace. If the target element for a reference cannot be found, the reference is said to be broken. Such broken references can, for example, result from refactorings that are done when not all affected models are present in the workspace (or because the person who does the refactoring chooses not to update references in the whole workspace). They can also occur because you have forgotten to import a project into the workspace, or have imported the wrong version of a project from your CM system (for example an old version which does not contain certain elements that are referenced from other projects).

By default, when Model RealTime detects a broken reference it will notify you by popping up a dialog:

You can prevent this dialog from appearing by unsetting the preference Modeling - Resource Resolution - Show warning for broken references when loading a model.

It is strongly recommended to resolve broken references as soon as they are detected, since the presence of some broken references can prevent certain features from fully working. For example, a state machine diagram cannot be opened if the state machine contains broken redefinition references. If you try you will get a dialog similar to the one above, and then an empty state machine diagram appears. Note the error markers in the Project Explorer and the error indication in the upper right corner of the diagram.

How to resolve broken references depends on the reason for why they are broken. You may need to open a project in the workspace that was previously closed, or you may need to import a missing project (or a different version of a project that was already present in the workspace).

Another reason for broken references could be that a model that your model references has been refactored. For example, a referenced element could have been deleted or moved to a different file. In cases like these you need to either rebind the broken reference to another element, or reset it. As suggested by the dialog shown above there are two ways to do this:

  1. Select in the Problems View one of the problems reported for a broken reference. Right-click and invoke the command Quick Fix in the context menu. A dialog will appear with quick fix commands that you can use for fixing your broken references.

    A common workflow for resolving a large number of broken references in your workspace is to first use "Rebind Broken References" to rebind all broken references where the target element still exist but have been moved. After that you can check if any of the remaining broken references can be fixed by means of "Search or browse for a valid reference". Finally use "Clean Up Broken References" to fix all remaining broken references by resetting them.

  2. Right-click on the top element in the model that contains broken references and perform the command Refactor - Automatic Reference Fixup. A dialog appears that lets you choose if you want to fix broken references by Repair or Clear. Repair works similar to "Rebind Broken References" and Clear works similar to "Clean Up Broken References" as explained above. Note, however, that only the broken references contained in the selected model will be fixed. Therefore this approach is less convenient if you have several models with broken references that need to be fixed. Another difference is that with this approach you will not be able to first review in a dialog which broken references that will be fixed, and how they will be fixed. Instead you will get information printed in the Console view about which references that the command could fix.

It should be noted that both the above mentioned ways to fix broken references make modifications to the model that are not undoable.

Fixing broken references caused by refactoring