Problem
IMP Expiration Policy Gotcha
Here is an unforeseen consequence of using MOSS 2007 Information Management Policy (IMP) Expiration. The IMP sets a flag on the document to make it exempt from the policy thereafter, which meant the workflow would never run again even if the Expiration Date was reset, because the document is exempt!
For example – Trigger a custom Review Workflow if the “Expiration Date” is today…

You can check this by viewing a documents properties.

Solution
There are three solutions to this issue:
- View the Document Properties and use the “Remove Exemption” link in the “Exempt from Policy” field to remove the exemption
- Remove the Exempt flag in code; this is a custom workflow
- In our scenario; use a custom SharePoint timer job instead of IMP!
We choose option 2, remove the Exempt flag using code as we developed the workflow in pure code. This was fairly easy to do with the following lines of code, however you need to make sure you do it during the right part of your workflow/process.
using Microsoft.Office.RecordsManagement.InformationPolicy; Policy.RemoveExemption(file.Item);
Bonus Tip
The IMP Expiration job fires once a day by default and can also be started by hand, which is great for troubleshooting an issue like this. I believe starting it by hand was added in service pack 2.
Central Administration > Operations > Policy Features and Resourcesÿ > Expiration

Next Steps
- Review Managing Information Management Policies on MSDN.
- Review Andrew Connell’s tip on Creating Custom SharePoint Timer Jobs

Matt has a background in engineering and has 15+ years of IT experience. He has been working with SharePoint since 2006. In 2007 he attended a 6 day SharePoint boot camp by Firebrand training. He aced the WSS 3.0 and MOSS 2007 exams and this makes him a Microsoft Technical Specialist in Windows SharePoint Services Configuration and a Microsoft Technical Specialist in Microsoft Office SharePoint Server Configuration. Since 2007 he has been specializing in delivering SharePoint solutions and in 2009 he changed roles to Software Development Manager, where his team specializes in developing SharePoint based solutions.