
Welcome to part 1 in my 2 part series on file associations. This post will focus only on the associations seen in the base version of Vault. The next post will go over Vault Workgroup concepts like revisions and lifecycle states.
Introduction:
For base vault we have 2 concepts that are simple on their own, but start to get complex when you mix them together.
The first concept is File Versions. Every time you edit a file, you get a new version. Simple.
The second concept is File Associations. Files can be linked to each other in a parent/child relationship. This allows you to create dependency trees. Again, simple.
Now let's mix the concepts together. A file association is between one version of a file and another. This means that the dependency tree might change for each version of a file.

Here is where the confusion starts. You have a big chunk of data and multiple ways of traversing the data. The good news is that the API has some built in tools to help you.
Example:
Let's go through a simple example. First we upload 2 new files, A and B. A is the parent of B. This is what things look like in Vault:

Next we will check out B and check it back in with a new file, C. B is the parent of C. Our view now looks like this:

If we start at A and want to get the entire dependency tree, base Vault gives you 2 two types of traversals:
- Snapshot in time: You want to view the tree exactly
as it looked when it was uploaded. GetFileAssociationsByIds
in the Document Service is the function that will give you this
view. If you started with file A and wanted all children, you
would get this result:

- Get latest: You want to get the most recent version
of all the files involved. GetLatestFileAssociationsByMasterIds
in the Document Service is the function that will give you this
view. If you started with file A and wanted all children, you
would get this result:

That's all you need to know for base Vault. My next post will go over the Revision and Lifecycle concepts and how they relate to file associations.

Subscribe