in

Dot Net Mafia

Group site for developer blogs dealing with (usually) .NET, SharePoint 2013, SharePoint 2010, Office 365, SharePoint Online, and other Microsoft products, as well as some discussion of general programming related concepts.

This Blog

Syndication

Archives

Corey Roth [MVP]

A SharePoint MVP bringing you the latest time saving tips for SharePoint 2013, Office 365 / SharePoint Online and Visual Studio 2013.

Enabling Content Approval on a List using CAML

I’ve always liked the power of CAML because it allows me to create so much in SharePoint without ever having to write a line of code.  However, there really isn’t enough examples out there, so I like writing posts like these that focus on doing something very specific with a list.  @SPKyle would say just write some code to do that, but that’s not my style, so I did some digging through the SDK and some experimentation and I figured out how to do it.  Of course there isn’t an attribute called EnableContentApproval.  So, the first thing we have to figure out is what CAML calls content approval.  It turns out CAML refers to this as moderation.  We’ll add this to the SharePoint UI to API translation guide.  Looking at the List element, I find two attributes ModeratedList and ModeratedType.  The description of the both is quite similar, so I decide to try them out one at a time.  I find that setting ModeratedList works but setting ModeratedType does nothing.  No idea why there is two attributes.  Maybe one is deprecated.  Here is what a List element line would like in your schema.xml.

<List xmlns="http://schemas.microsoft.com/sharepoint/" BaseType="0" DisableAttachments="True" EnableContentTypes="True" Name="MyList" OrderedList="False" QuickLaunchUrl="True" Title="My List" Type="10001" VersioningEnabled="False" Url="Lists/MyList" Id="ed65344b-0399-4c34-8265-de0c2d193165" ModeratedList="TRUE">

I then go take a look at the list versioning settings of my newly created list, and everything looks good.  Note, if you want to turn on versioning, you can use the VersioningEnabled attribute that you see above.

ContentApproval

Again, I set the ModeratedList attribute in the List element of the Schema.xml.  Before I set it on the schema.xml file, I noticed that the ListTemplate element that you use in your elements.xml file had an attribute EnableModeration.  The SDK states this can be used to turn on moderation as well.  However, when using it I find that it does not work.  If I set it to true or false it does not work and does not seem to override I set in the schema.xml file.  Anyhow, if you ever need to turn on content approval and don’t feel like writing code, I hope this helps.

Published Oct 08 2009, 05:16 PM by CoreyRoth
Filed under: , ,

Comments

No Comments

Leave a Comment

(required)  
(optional)
(required)  
Add

About CoreyRoth

Corey Roth is an independent SharePoint consultant specializing in ECM, Apps, and Search.
2015 dotnetmafia.
Powered by Community Server (Non-Commercial Edition), by Telligent Systems