Friday, April 11, 2014

Content Type Inheritance and Initialization

Situation:
Last week, I got a requirement from business to come up with a strategy of Meta Data that will be attached to different types of documents in different sub-sites and then eventually in different document libraries.

Specific Requirement: There were few columns that were common among all the Documents but not their values. e.g. Client Name is a common metadata/field among all documents but its value may vary depending on which client subsite is using that document.

Approach:
After some research and reading, the strategy that evolved was to create all the Site Columns required for all documents and then create Site Content Types. Fill those Site Content Types with the required Site Columns. Now attach those Site Content Types to the Document Libraries. Diagram below shows how this approach.



Setting Default Values (Locally):
User can set default values of the Site Columns at Document Library level. This way default values will stay within the document library and will not effect values in any other document library.


Setting Default Values (Globally):
Users can also set default values of the Site Columns at Site Collection level, where the values will propagate to all the document libraries which are using that Site Column through any Site Content Type.