Changing the SPWorkflowAssociation.AutoCleanupDays property
By default the SPWorkflowAssociation.AutoCleanupDays property value is set to ‘60’ days, to set this property we need to call the SPList.UpdateWorkflowAssociation(SPWorkflowAssociation) function, SPWeb.Update() won’t work here.
1: SPSite site = new SPSite("<https://nishandv3:100/sites/DevSite/>");
2: SPWeb web = site.OpenWeb();
3: SPWorkflowTemplateCollection collection = web.WorkflowTemplates;
4: SPList list = web.Lists["Shared Documents"];
5: SPWorkflowAssociation _asso = null;
6: foreach (SPWorkflowAssociation asso in list.WorkflowAssociations)
7: {
8: if (asso.Name == "Approval")
9: {
10: asso.AutoCleanupDays = 100;
11: _asso = asso;
12: }
13: }
14: list.UpdateWorkflowAssociation(_asso);
Hope this works for you!
Comments
Anonymous
September 10, 2007
PingBack from http://msdnrss.thecoderblogs.com/2007/09/10/changing-the-spworkflowassociationautocleanupdays-property/Anonymous
December 04, 2011
Hi Is it possible create small tool ? I am not developer so could not use this code :(Anonymous
December 04, 2011
Please check blogs.tamtam.nl/.../SharePoint+Worflow+History+Lost.aspx There is already prepared tool, just download and runAnonymous
September 19, 2013
Great information. Had the request by a customer today. /greetings StefanAnonymous
December 10, 2013
fgsdfgfgsdddddddddddddddddddddgretretreAnonymous
April 14, 2015
I know this is an old post, but has anyone seen an adverse effect to making this change? I have a customer who wants to set this selectively to maybe up to 7 years. Just wondering what I am not thinking of that may make that a bad idea. It would not be for every workflow, but is there still a reason to NOT do it for any workflow? Thanks.