Setting Up A Complete Document Routing and Life Cycle Engine in SharePoint 2010

January 24, 2012

Recently for a client I was asked to map out a path in SharePoint 2010 for a complete document routing and lifecycle engine, using only out of the box functionality.  Below are the high level requirements

User Requirements:

  • Users are required to add metadata and taxonomy information whenever they upload a document
  • Users can “Publish” Documents from any site in the site-collection.
  • The documents should be routed by SharePoint to the proper destination based on metadata and taxonomy
  • Documents should “Expire” after a set period of time, an email should be sent to the user to keep, archive or delete the document

Architecture:

Components:

Custom Content Types:
All the above requirements depended on a set of custom content types.  The first content type was derived from the default document type and was called “Managed Documents”.  I used the Managed Documents to house my SharePoint Designer Workflows and my Information Management Policy.

Site Templates:
All libraries on the site that wished to use the document routing system needed to have a Content Type that derived from Managed Documents as the default content type. A site can be set up with the libraries set up this way and used as a template, for any additional sites created.


Document Center/Content Organizer:
The Content Organizer feature was used to handle incoming documents.  In Central Administration, in External Service Connections, Send To Connections are configured for each site where documents will be routed.  This allows SharePoint Designer workflows to use the action “Send to Repository”.  It also allows the Content Organizers to create rule to route documents to another Repository

Information Management Policy (for Content Type):
The Information Management Policy allows us to set a retention Policy on Managed Documents and its children content types.  After a set period of time, say 6 months, kick off SharePoint Designer Workflow.

SharePoint Designer Workflows:

  • Use globally-reusable workflow to move items to a repository (Publish)
  • Use globally-reusable workflow to be ran by the information management retention policy (Expiration)

How it works:

1 – Create a new Custom Content

  • Create a custom content type called “Managed Document” that derives from Document
  • Add a Boolean (Yes/No) column called Publish, set the default to No

2 – Set up Send To/Content Organizer

  • Turn on the Content Organizer Feature at the site level for at least one site
  • In Central Administration – Set up a Send to External Connection for the Content Organizer

 

3 – Create a SharePoint Designer Workflow

  • Create a reusable workflow called Publish and select Managed Documents as the Content Type
  • The workflow will check if the column Publish is checked.  If it is it will uncheck it then send the document to repository.  This means it will be sent to the site where you set up the Send To External Link in step 2.
  • Publish the workflow globally

4 – Attach the Publish workflow to the Managed Documents Content Type

  • Open up the Managed Documents Content Type and select workflows
  • Add the Publish Workflow to the list, give it a name and set it to fire manually, on creation and updates

5 – Go to a document library and make Managed Documents the default (or only) Content Type

  • Any Library with Managed Documents will now have the Publish workflow
  • The workflow will start automatically whenever a document is added or updated
  • If the publish column is checked, it will send the document to the Content Organizer you created

6 – Set up the Content Organizer Rules to route the documents

  • The Content Organizer bases it rules off the content type, then optionally, the columns in the content type
  • You can route the documents to a library/folder
  • If you have other Content Organized sites that have an external connection in Central Admin, you can have your content organizer Send the document to that site

7 – Set up Expiration Workflow

  • Create a reusable workflow called Expiration and select Managed Documents as the Content Type
  • Have the workflow email the user
  • The workflow then can either delete, archive or keep the document
  • Publish the workflow globally

8 – Attach the Expiration workflow to the Managed Documents Content Type

  • Open up the Managed Documents Content Type and select workflows
  • Add the Expiration Workflow to the list, give it a name and set it not to fire

9 – Set the Information Management Retention Policy to fire the Expiration work flow

  • Open up the Managed Documents Content Type and select Information Management Policy
  • Click on Retention – Add a new retention value
  • Set to Created 6 months, start the Expiration Workflow

Now, anywhere the Managed Documents Content Type is set on a library, The ability Publish the document and allow the Content Organizer rules choose what site, folder and library the document ends up in.  The Expiration workflow will kick off based on your retention Policy 6 months after the document is created, no matter where it resides and will appropriately, delete, move or keep it.

Considerations:

Documents routed by the Content Organizer will not start SharePoint Designer Workflows. This is one of the reasons we must rely on the Information Management Policy to start the expiration workflow

Default Content Types such as Document cannot have an Information Management Policy attached. Neither can the children of a custom content Type

Managed Metadata can be set up as columns either on the Managed Documents or its children

The document libraries with the Managed Documents content type, can be saved as templates, so can the entire team site with a Managed Documents library

The Documents, using the Send To External Links can be sent anywhere in the farm, including different site collection.  Keep in mind you must set the Custom Content Types on other site collections if you wish this to work throughout the farm.  You can use the manual send to link instead of the Publish work flow if you do this method.