Configuration
Using the pattern of creating references from a version, or one of the definitions on the version, directly to a master it is possible to state that all versions (and definitions) of the master are valid for the reference.
For ShareAspace to present a version as a result of navigating over the references there is a mechanism in ShareAspace that lets you define what the "latest version" should be.
Latest version filter
By default ShareAspace will consider the last version of a master to be the last version in the version chain.
This means that if you have a version to master reference, navigating over that reference the API and ShareAspace Web will present you with data from the last version in the chain.
However, from a business perspective the "latest version" can have different meanings. Is it the latest "released" version? Or is it the "last added" version? Or is it the last version that is "in work"?
The business meaning from a data perspective can be defined using the latest version filters in the configuration.
For example, using the filtering configuration you could define that for Parts the latest "released" version is the last version in the version chain with the state "Released". At the same time the latest "released" Document version might be the last version in the version chain with the state "Approved".
The filters that you define are made available in the ShareAspace information filter. This filter can be configured when using API calls and it can be set by an end user using the ShareAspace Web Client. This way a user can control what information he or she wants to see.
For one use case maybe you always want to see the latest "released" information while, in another use case, you might want to see what is being currently worked on.
To configure version filters, click the "Latest Version Filters" tab (1).
To add a new filter, click the "add filter" button (2).
After setting an id, name, and description for the filter, define for what SoftTypes that this filter should be applicable to (3).
Finally, you need to define the criteria for the filter (4). In the example above we state that the "Established" filter means that ShareAspace should find the last version in the version chain that is in the state with id "Established".
Creating a reference to a master
The ShareAspace implementation Model allow for the creation of a reference directly to the Master.
In the following example we see a configuration using the "explicit" relationship for a NextAssemblyUsage within a PartViewDefinition. The child reference is linking to the definition of the child Part, i.e. a definition-to-definition reference. The connection port "generalDefinitionOid" is defined on one of the definitions of the Part.
To change this to an "implicit" "Version-to-Master" reference, or a "Definition-to-Master" to be more precise, all that is required is to change the connection port to point at the one defined on the Master (called oid in this example).