Thursday, November 6, 2008

"Read and Acknowledge" Functionality in SharePoint

A great feature of SharePoint is the option to receive email notifications when something is updated - be it a list, document, calendar entry or so forth. A business requirement that often surfaces is to track who has read certain documents such as policies or work instructions. Microsoft Office SharePoint Server 2007 includes an auditing feature to accomplish this. You may enable auditing for an entire site, for a particular list or document library, or for a particular item/document in a list/library. Reports may then be developed to list who has opened and read these items. Windows SharePoint Services 3.0 includes the core functionality to do auditing as well, but it is not accessible by default. Ted Pattison has written an insightful article and provided a free tool to enable this feature on SharePoint Services. Note that enabling auditing may impact your server's performance and could also impact your disk utilization if precautions are not taken.

Another notable attempt at recording which users have read which items may be found at CodePlex but is has limitations that you may or may not be able to deal with. The biggest limitation is that while this solution will work with most SharePoint lists it will not work with a document library. Another limitation is that once a list item has been revised the history is lost, whereas with the auditing approach supports multiple versions of a document.

Neither of the above solutions, however, require a user to deliberately press a button or check a box to acknowledge that he/she has read a particular document. If acknowledgement is a requirement then there are other options to consider. One such option would be to customize a document's action menu to open a custom form. The form would require the user to check a checkbox to acknowledge reading a document. When submitted, the form would update a database or SharePoint list to record the username and which document was read. Reports could then be written to list the users who have read a certain document, list all the documents a certain user has read or even list all of the documents that a user has not yet read.

These are just some of the solutions available for "Read and Acknowledge" functionality in SharePoint. Have you used another? I invite you to comment on this post and share your solution.

6 comments:

Shane said...

Thank you. This is a concise, well thought out answer to my query. I like the idea of customizing a document's action menu to launch a custom form for acknowledgment.

david said...

Hello - I'm interested in the last suggestion in your notes - creating a customized action menu to open a custom form. Could you point me in the direction of more detailed information on how to do this with WSS 3.0?

Rob Wilson, SharePoint MCTS, MCT said...

@shane - Thanks for the kind words. Glad to help.

@david - Can't go into much detail here, but I can point you in the right direction. The simplest way to do this would be using jQuery. This post should help get you started: http://social.msdn.microsoft.com/Forums/en/sharepointcustomization/thread/fc0cc70b-5127-419f-adef-791434f3d313

I should note, SharePoint 2010 has better support for this out of the box. See this article on EndUserSharePoint.com for more info if interested: http://www.endusersharepoint.com/2010/02/02/adding-custom-actions-to-the-list-item-menu-in-sharepoint-2010-using-sharepoint-designer-2010/

Phil Sellers said...

Not sure if this is still valid - but have you checked out DocRead by Collaboris ?

Steve Dawkins said...

You may want to check out Legeris by SP Additions at www.legeris.net. There's a totally FREE version that supports centralized alerting using template emails and some subscriptions options that may cover the "Read and Understood" requirement for you.

Rob Wilson, MCT, SharePoint MCTS/MCITP/MCPD said...

@Steve Thanks for sharing. After a few years I have often wondered why this was not baked into the base product. I've looked at your web site and your solution looks great. I'll certainly point clients to it if their requirements call for it.