Tag Archives: Records Management
Programmatically enabling Records Management
Recently I had someone ask about how In-Place Records Management could be enabled in SharePoint 2010 for a given document with C# object model code. The method ConfigureListForAutoDeclaration() was key to making everything work. This would allow for easily enabling on many sites all at once. Below I’ve included C# code and screenshots from the test site where it was enabled. Please feel free to leave any questions below with a comment.
- Open site
- Enable “In-Place Records Management” site collection feature (da2e115b-07e4-49d9-bb2c-35e93bb9fca9)
- Open document library
- Open “Record declaration settings”
- Enable “Automatic Declaration” with [Microsoft.Office.Policy.dll]
- Upload test files
- Confirmed: see padlock icon and unable to delete document library
C# – Visual Studio 2010 Console Application
Add assembly reference to [C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14ISAPIMicrosoft.Office.Policy.dll]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft;
using Microsoft.SharePoint;
namespace SharePointConsoleApp
{
class Program
{
static void Main(string[] args)
{
string siteURL = "http://sp2010";
using (SPSite site = new SPSite(siteURL))
{
SPWeb w = site.OpenWeb();
SPList dl;
bool needToCreate = false;
try
{
dl = w.Lists["Records"];
Console.WriteLine("found");
}
catch (System.ArgumentException)
{
needToCreate = true;
}
if (needToCreate)
{
//missing so create it
Console.WriteLine("Records DL missing on " + w.Url);
Guid g = w.Lists.Add("Records", "** Coporate Records Management **", SPListTemplateType.DocumentLibrary);
w.Update();
dl = w.Lists[g];
//enable auto-Record for uploads
Microsoft.Office.RecordsManagement.RecordsRepository.Records.ConfigureListForAutoDeclaration(dl, true);
//add CEWP to default view
dl = w.Lists[g];
//show on QuickLaunch
if (!dl.OnQuickLaunch)
{
dl.OnQuickLaunch = true;
dl.Update();
}
//disable folders
if (dl.EnableFolderCreation)
{
dl.EnableFolderCreation = false;
dl.Update();
}
//enable Content Types
if (!dl.ContentTypesEnabled)
{
dl.ContentTypesEnabled = true;
dl.Update();
}
//disable Required Check Out
if (dl.ForceCheckout)
{
dl.ForceCheckout = false;
dl.Update();
}
//add Content Type to default view
Console.WriteLine("CT");
SPField ctField = dl.Fields["Content Type"];
SPView defaultView = dl.Views[dl.DefaultView.ID];
defaultView.ViewFields.Add(ctField);
defaultView.Update();
dl.Update();
}
}
}
}
}Screenshots
DisplayName | Id | Scope |
RecordResource | 5bccb9a4-b903-4fd1-8620-b795fa33c9ba | Site |
RecordsManagement | 6d127338-5e7d-4391-8f62-a11e43b1d404 | Farm |
InPlaceRecords | da2e115b-07e4-49d9-bb2c-35e93bb9fca9 | Site |
RecordsCenter | e0a45587-1069-46bd-bf05-8c8db8620b08 | Web |
