Resolution Strategy for Objects and Object Versions

Meta Data Services Programming

Meta Data Services Programming

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

IRepositoryObject Interface

IRepositoryObjectVersion Interface

Navigating a Repository

RepositoryObject Object

RepositoryObjectVersion Object

Versioning Objects