Setting relevant defaults when profiling a document is standard practice in any successful document management system. There are a number of ways to make use of defaults in SharePoint document management, and also a number of things to watch out for.
Defaults can be set to appear on the document properties (profile) form for the user to change if needed. They can also be applied to columns hidden from the user.
Set defaults at the library level (or lower)
As a general rule, setting defaults on a SharePoint column should be done at the library level (or lower, e.g. folder level defaults).
[Note, setting defaults on site columns runs the risk of defaults getting overwritten if the site column is updated]
Defaults can be set within a Microsoft Office document
The metadata promotion / demotion feature of SharePoint automatically extracts document properties from a document when you add it to SharePoint, and maps values for any document properties that have the same name and type as a corresponding column in the SharePoint library.
A common example of this is having a SharePoint column for DocumentType and a Word document property of the same name in Word templates (eg property DocumentType = “Agenda” in the Agenda template)
[Note, the Metadata promotion / demotion feature is enabled by default]
Setting defaults on hidden columns
Sometimes you want a column value set based on the location you are saving it to, and you don’t want users to change it. In this case hide the column.
This greatly improves the SharePoint search experience. For example, a library devoted to a client project could have hidden columns on all documents for ClientName and ProjectName. These can then be used to search for documents on a specific project.
Hiding a default for some content types and not others
What if you want a column to be set to a particular value for some types of document, but allow users to change it for other types of document?
You can do this by setting a default for the column on the library (or folder / document set) and then within the library definition of each content type show or hide the column.
Changing a default value on documents already added
What if you want to change the default value set on a column and update all items already in the library with the original value?
This isn’t so easy though you can always script an update. However, there are a couple of design approaches that you might consider.
Use document sets
Document sets are super-folders. They have their own metadata, and that metadata can be shared with any document in the document set.
If a column is set to be shared with the documents in the document set, then any change to its value will automatically be applied to the documents within it
Try calculated columns
A calculated column can be set using a formula that is text only – eg =“Acme Ltd”. If you change the value of the formula documents are automatically updated, and they will immediately show correctly in Views.
There is one gotcha with calculated columns. While the documents will show the updated value correctly, they will not be re-indexed by the search crawl until a full crawl is run.
Things to be aware of …
- Not all columns can be set with default values. The most annoying exception is Person or Group There are technical reasons for this but ultimately it is a SharePoint weakness
- If you use a content type hub you cannot edit content type details like hidden / optional etc unless you unlock the content type. I’ll go into content type hub pros and cons in another blog