Sensible Document Template file management with Sharepoint

In my experience great and up-to-date document templates are one of the key motivators for adoption of a Sharepoint Intranet. Getting users onboard with document management in Sharepoint really drives the entire adoption of the intranet in your business.

This is really a very basic notion: If users learn that the best Powerpoint or Word template is available from the "New" button in Sharepoint document libraries, they are more likely go there to create a document than modifying one on C:. When created from Sharepoint users will probably also elect to save the document back where they started. This is crucial in the tough fight against corporate information on the C: drive.


So if you're going to use document templates as an Intranet adoption driver, you need to make sure that employees really like the corporate templates. They absolutely need to be 100% flawless. Unfortunately there aren't many consultants that specialize in this kind of work, but there are a few and their efforts are likely money well spent.

(Just make sure you get one that understands the new file formats and how Sharepoint works with document properties. And you don't want the one with tons of VBA code laying around ready to fill your templates with macros without really good reasons for doing so..)

Measure the usage
It's quite easy to empirically track the usage of the new corporate templates: Just make sure that the template files contains some kind of tracking document property. For example if you (or the template consultant) add the document property "MyCompanyTemplateVersion" with value "1.0" to the templates, you can simply use standard Sharepoint search to count the number of documents with this property value. This is easily done by promoting the property for search, and using Advanced Search.

So, now you've got the perfect set of templates and you're able to track usage using search. How to you expose the templates to your employees in a way so you can easily keep them up to date, flawless and shiny?

Understanding the terms and concepts
The task is really about getting your Site Columns, Site Content Types, List Content Types, Document Libraries and Document Templates to play nicely together. Many concepts and technical mumbojumbo, but the solution is super-easy. Don't give up now.

I will assume that you have one primary site collection used as the main intranet or document management solution. Let's call this the Intranet Site Collection. Start off creating your content types here. For Office type documents it is common to create an inherited Content Type which inherits from the built in "Document".

For simplified management of Content Types Sharepoint offers inheritance. It is important to distinguish the Content Type from the actual Document Template. Think about the Content Type as the combination of a set of metadata (which potentially may be site columns) combined with a reference to a document template (such as a docx, pptx or aspx file type). You also need to distinguish between the Site Content Type (the definition at the site level) and the List Content Type (the instance/usage at the list or document library level).

Using Content Type inheritance, through assigning parent content type, might lead you to creating something like this for your company:

  • Document (standard)
    • Puzzlepart Document
    • Puzzlepart Letter
    • Puzzlepart Quote
    • Puzzlepart Presentation
      • Puzzlepart Internal Presentation
      • Puzzlepart Sales Presentation
    • Puzzlepart Spreadsheet
      • Puzzlepart Travel Expenses
      • Puzzlepart Department Budget

Note that once you've parented a Content Type there is no easy way to change this relationship, so try to get it right.

When your Site Content Types are set up with metadata and site columns you'll probably want to assign suitable document templates for each of them. This is done through the Advanced Settings of the Site Content Type (under site settings).

Reference your templates!
In this form you'll get a choice between entering a URL of an existing document template, and uploading a template. When working with Site Content Types, uploading a template may lead to undesired side effects.

The problem is that when the Content Type is put in use, an uploaded file will be duplicated in the structure. The most severe consequence of this is the scenario where your Content Type is in widespread use around the intranet. Say you have a "Project Directive" content type with an uploaded template, and you include it in the "Project Site" custom site template. After a year or two your organization has created 500 project sites in the portal, and you want to update the template.

With an uploaded document template you'll have to upload the new version of the template in this form.  That results in an operation which requires Sharepoint to traverse all of the 500 sites and replace the document template file on each instance. In most cases this puts a heavy load on the server for a while, until the operation times out and you're stuck with a partial update (some places got the new template, others didn't).

This is why you should not use the upload option, but the "URL of an existing document template". So what URL should we enter here?

Set up your central template library
This is a great opportunity to establish a single central document library on your Intranet for your document templates. In the screenshot I've indicated that I've created a document library called "IntranetTemplates" on the root web of the Intranet Site Collection. It is also probably a good idea to restrict normal users to only have read rights on this library to avoid anyone accidentally messing up the templates.

Now in order to get everything working properly you need to take some care when creating the document templates in "IntranetTemplates":

  1. Have your content types set up first. Let them use some default document template file of the correct type (Word, Powerpoint etc).
  2. Add the content type to the IntranetTemplates library. This will assign a List Content Type to this library which inherits from the Site Content type you created earlier.
  3. Now upload your actual (flawless, great-looking) template file into the document library.
  4. Edit properties for this document in the library and assign the correct Content Type to this document. This is important!
  5. Go back to the Site Content Type advanced settings and paste the URL to the document in the field "URL of an existing document template".

This sets you up with a single version of the template-truth.

Keep the templates up-to-date
There are some important considerations to understand about changing the document template reference for Content Types. The key setting here is the option "Update all content types inheriting from this content type".  For example if I would select "Yes" on an update of "Puzzlepart Document" from the structure described above two categories of Content Types will be updated:

  • All Site Content Types inheriting, such as "My Company Letter" and "MyCompany Quote"
  • All List Content Types inheriting from any of those Site Content types, such as the List Content types included in the "Project Site" custom site template.

Given that I just now assigned a new Word template (dotx) to the "Puzzlepart Document" type, we would then effectively have assigned this word template to "Puzzlepart Presentation" aswell, which is all wrong.

This is a bit cumbersome, but with careful planning you're able to minimize the timeframe of which Content Types are referencing the wrong template. Remember that this setting does not affect existing documents. You simply need to quickly update "Puzzlepart Presentation" to point to the right PowerPoint file which you (of course) have prepared in the "IntranetTemplates" document libary.

Now, when all your centrally managed templates are being maintained in the IntranetTemplates document library, you can simply update the files here, and the users will get the new and improved document template the next time they create a document from your Intranet or portal.

Always test changes thoroughly
Whenever you make changes to Content Types or templates you should always test your changes thoroughly:

  • Create new documents based on the Content Type from multiple locations and assert that the template is loading ok
  • Assert that the Office Document Information Panel (DIP) displays correctly with the right metadata
  • Check to see if the Site Content Type have changed has children. Assert that your changes have worked out nicely for the kids (inherited typesJ) as well.
  • Have a regular user run the same tests to assert that access rights are ok

Remember that employees look at document production in Sharepoint in the same way as email: It should just work.

One stupid error and they're back to the C: drive and they won't come back for a long time.

1 Comment

  • I found that if I used Word .dot files for templates rather than .dotx files, the content type properties would not appear in Word 2007. Has anyone else experienced this behavior?

Comments have been disabled for this content.