
In Vault 2012, the shares feature has finally been removed. We've been slowly deprecating it over the past few releases, but now it's final. A new feature, links, has been added as a replacement feature.
In case you are not familiar with shares, it was a feature that allowed a file to live equally in multiple folders. This was a big pain to deal with in code because you couldn't assume that a file had a single location. In Vault 2012, you don't have to worry any more. A file lives in one and only one folder, always.
The new feature, links, is an object that points to a file in another location. It's very similar to Windows shortcuts. So even though a file has only one true location, there can be many links to it that live in other folders.
Files are not the only thing you can link to either. Folders, items and change orders can have links too. So you can use it to organize your items into folders or crate project folders containing all the relevant objects.
When you migrate to Vault 2012 from a previous release, any existing shares get converted to links. The oldest folder location is chosen as the true location of the file. Any other folder locations become links to the file.
Links can only be created in Vault Workgroup and above, but because of legacy data, it may be possible for links to show up in the basic version of Vault.
At the API level, the code is still structured around shares. For example, GetFoldersByFileMasterId returns an array of Folders even though the array will always have 1 element in 2012. And DeleteFileFromFolder has you pass in a folder ID even though there is no reason to.
The API functions that deal with Links are pretty straightforward. DocumentService.AddLink() adds the link. DocumentService.GetLinksByFolderIds() gets the links for a given set of folders.
DocumentService.FindLinksBySearchConditions() is especially cool because it allows you to search for links. Technically, the property conditions are searching on the thing that the link points to, but the results are in link form. However, any folder information passed in will be applied to the link locations, not the original file locations. There are some creative uses for this feature. For example, you can search for all items within a folder.

Leave a Reply