Resolution Strategy for Objects and Object Versions
When you retrieve an object or navigate to an object, the repository engine 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 engine to choose a version of the object for you. For example, you may have repository objects that do not explicitly provide version information (instances of RepositoryObject do not provide version information). When objects lack specific version information, the repository engine can choose an instance for you.
If the repository engine 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 the repository engine selects an object version to return to you:
- If you explicitly request a specific version of an object, the repository engine retrieves that version; if for any reason it cannot retrieve that version, it returns an error.
- If you are operating within a workspace, the repository engine retrieves the version that is in the workspace; 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, the repository engine returns either the most recently created version or (if applicable) the pinned version.
The following topics discuss how the repository engine chooses among versions of an item.
Topic | Description |
---|---|
Requesting a Specific Version | Explains how to select a specific version |
Resolution While Operating Within a Workspace | Explains how the repository engine selects an object from a workspace |
Resolution While Operating Outside a Workspace | Explains how the repository engine selects an object from a centralized, shared repository |
See Also
IRepositoryObjectVersion Interface