Overview
M-Files offers the ability to show only specific versions to users. This can be useful, for example, in showing only an approved version of a document to users, while keeping the working version hidden from regular users.
Solution
You can use a property to define the versions that will be shown to all users, for example, "Version Label". Add the correct label to the version (workflow state action), then remove it when the document enters revision.
One key detail is to edit the property that is used for this purpose so that it can be used to show old versions. This is done by unticking the "Do not search for old object versions" from the properties of the property (see related link below). This allows you to set up a view that shows only, say, "Version Label" == "Released" documents.
Another key detail is the permissions set for the document. By default, a user needs permission to the history version of the document AND the latest version of the document. This is not an issue if the document does not need to be hidden from regular users while it is being worked on, meaning the permissions are not changed for the working version.
If the document needs to be hidden while it is being worked on, another setting comes into play. In a workflow state, you can specify permissions and enable "Ignore the permissions of the latest checked-in version for this version". In other words, disregard the latest checked-in version permissions when evaluating whether the user can see the specific version (the "this version" part in the property name). This allows the user to see the specific (released) version even if they cannot see the working version.
