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.
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);
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
- Review Managing Information Management Policies on MSDN.
- Review Andrew Connell's tip on Creating Custom SharePoint Timer Jobs
Last Update: 2010-10-06