Monthly Archives: August 2008

Holiday in Florida … woot!

Yep. I’m packing my bags and off to Florida for 2 weeks.

Got a friend who is getting married in DisneyWorld (make of that what you will!!) Personally I’m looking forward to the 2nd week .. relaxation in the Florida Keys (assuming I don’t get a hurricane to spoil my day).

ahhh … beaches … swimming pools .. and drinks with little umbrellas in them 🙂

How to handle document retention and expiry in MOSS 2007 – Disposition Workflow and Expiration Policy

This is rapidly becoming a hot topic in Records Management with SharePoint, as organisations put increasing amounts of information into their SharePoint environments serious thought needs to be put into how that information should expire and (more importantly) what happens when it expires.

SharePoint has several solutions to these issues which, if configured correctly, can help pave the way to successful document expiration management.

The Expiration Management Policy
Information Management Policies are a new framework introduced in MOSS 2007, and allow specific "policies" to be applied system wide using Content Types, or to individual document libraries and lists.

One of the most popular policies in information management is the Audit Policy (which is vastly superior to version history, as it can track who has viewed, downloaded or deleted a document, as well as who has made changes), but another equally important policy is the Expiration Policy.

The Expiration Policy effectively allows you to specify the retention period for content. This is generally calculated from the created or modified date, although you can specify any formula (i.e. calculated fields) based on any date/time column value.

When a document "expires" you can then select from a number of actions: delete the item, perform another custom action (extensible through development) or start a workflow, and it is the latter that we will focus on here.

As mentioned, you can develop additional "custom actions" for the expiry Information Policy, which you can deploy as a Feature (there is a good article here and also a forum post discussing the options for this).

The Disposition Approval Workflow
The disposition approval workflow is designed specifically for document expiry, and has been designed with a very simple user interface.

When started the workflow creates a task, which is linked to the document. The task presents the user with the options of deleting the item, or keeping it, and the ability to add some comments. Completing the task will perform the appropriate actions on the server.

This basically gives you "out of the box" capability to have items which expire and then get (optionally) deleted upon expiry.


Now, I put my developer hat on and delved behind the scenes.

The Disposition Approval Workflow consists of a custom Task Content Type which is used for the task, and an InfoPath form which is used for the task edit form (via Form Services).

This gives us 2 options for replacing / extending the Workflow.

1) Create our own custom content type for the tasks. This allows us to attach event handlers and perform any custom operations when the tasks are created / edited / completed.

2) Create a replacement InfoPath form and use that for the task completion, perhaps with additional options (such as "archive" ?).

Either way, the out of the box options are quite extensive, and the Workflow / Content Type structure gives enough extensibility to provide almost any functionality for document retention.

People search errors when My Site is running on SSL

This was a great gotcha that I picked up duing a client project handover.
They reported issues with search, and I found a load of errors in the crawl logs regarding accessing the mysite.
You will find that this issue occurs when you configure your My Sites to run under SSL (HTTPS), and the problem is that the People Search isn’t really interested in the My Site content, it is actually interested in the Profile Database (which is another thing most people forget to switch on .. make sure your Profile Database has an import schedule setup!)
Basically, you need to set the Content Source URL to the following:
So if your mysite is running under then you need to set your Content Source URL to:
Personally I found this pretty confusing, so I actually  split out the Profile Database content into a separate Content Source, and configured the People Scope to only retrieve items from that specific Content Source.
Happy searching!
Just a quick update, because this is another “People Search” problem. Even if you don’t use My Sites, you should still switch on and use the MySite web application and settings (You can stop people from creating “My Sites” by disabling Self Service Site Creation at the Web Application level).
The reason is that the My Site web application is used for People Search URLs and will automatically dsiplay information from the Profile Database (which is basically the user’s “public profile”) even if they don’t have a My Site created!

How to access STSADM from any directory

This is a nice quick tip for the August holiday season.
Open up the following:
Start –> Control Panel –> System
This should open up the System Properties dialog.
Go to the Advanced Tab and click on Environment Variables.
Find the variable called "Path" and append this to the end:
;c:\program files\common files\microsoft shared\web server extensions\12\bin
That should be it.
You may need to re-open ay Command Prompt windows before you can use this.
Now you can just call "stsadm.exe" from any command prompt window!
Note – If you find type "stsadm.exe" a bit laborius, try adding another one:
Value: stsadm.exe
Hopefully you get how this would work