The Resolution Strategy for Objects and Object Versions
When you retrieve an object or navigate to an object, Repository returns an interface pointer to a specific version of that object. You can explicitly ask for a particular version, or you can rely on the Repository to choose a version of the object for you. If Repository chooses for you, it can choose any of the following:
-
The most recently created object version.
-
The object version present in the workspace in which you are operating.
-
The pinned target object version of the relationship that you are navigating along.
You can predict how Repository selects an object version to return to you:
-
If you explicitly request a specific version of an object, Repository retrieves that version; if for any reason it cannot retrieve that version, it returns an error.
-
If you are operating within a workspace, Repository retrieves the version that is in the workspace; and if for any reason it cannot return the in-workspace version of the object, it returns an error.
-
If you do not request a specific version and you are not operating within a workspace, Repository returns either the most recently created version or (if applicable) the pinned version.
The following topics discuss how Repository chooses among versions of an item: