<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Quentin on Compliance, eDiscovery, ECM</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/quentin/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/quentin/feed.xml</link>
    <description>The Lead Program Manager for eDiscovery at Microsoft shares his thoughts on Compliance, eDiscovery, and ECM.</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:47:35 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>AIIM Q&amp;A About SharePoint and Office 365</title>
      <link>https://docs.microsoft.com/archive/blogs/quentin/aiim-qa-about-sharepoint-and-office-365</link>
      <pubDate>Thu, 18 Sep 2014 06:34:49 GMT</pubDate>
      <dc:creator><![CDATA[Quentin Christensen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/quentin/2014/09/18/aiim-qa-about-sharepoint-and-office-365/</guid>
      <description><![CDATA[A few weeks ago I had a Q&amp;A with John Mancini of AIIM where I and Andrew SanAgustin answered...]]></description>
      <content:encoded><![CDATA[<p>A few weeks ago I had a Q&amp;A with John Mancini of AIIM where I and Andrew SanAgustin answered questions frequently asked by the AIIM Community.</p>
<p>Some of the questions included:</p>
<ul>
<li>How can one use SharePoint, Office 365, or other technology to apply legal preservation?</li>
<li>Do you recommend or work with any particular 3rd party suppliers to add capability to SharePoint records management?</li>
<li>Can SharePoint really do records management?</li>
</ul>
<p>He published an article with the results.</p>
<p><a title="16 Questions and Answeres About SharePoint and Office 365" href="http://info.aiim.org/digital-landfill/16-questions-and-answers-about-sharepoint-and-office365">16 Questions and Answers About SharePoint and Office 365&nbsp;</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Creating a Custom New Document Set Form</title>
      <link>https://docs.microsoft.com/archive/blogs/quentin/creating-a-custom-new-document-set-form</link>
      <pubDate>Mon, 08 Sep 2014 08:23:00 GMT</pubDate>
      <dc:creator><![CDATA[Quentin Christensen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/quentin/2014/09/08/creating-a-custom-new-document-set-form/</guid>
      <description><![CDATA[The form that is used to create new document sets is located in _layouts of the SharePoint server....]]></description>
      <content:encoded><![CDATA[<p style="margin:0in 0in 10pt;"><span style="font-family:Calibri;font-size:medium;">The form that is used to create new document sets is located in _layouts of the SharePoint server. This means there is only one form for every document set content type to use. In some cases a custom form may be needed. With a custom form you could automatically fill in metadata or do conditional formatting so only certain fields are displayed depending on what options a user selects. All sorts of possibilities for creating a highly customized document set page open up. </span></p>
<p style="margin:0in 0in 10pt;"><span style="font-family:Calibri;font-size:medium;">On the document set content type there is a property called NewFormUrl, changing this property will let you specify what new form the content type uses. This allows you to specify a custom new form per document set content type. But before changing this property, a new form must be created. A new aspx page must be created and it can be stored in _layouts, or in a folder in _layouts. If you store the form inside a folder you need to add a web.config file to include the document set assembly, which is required to use the document set object model needed to create a document set. </span></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">Here is an example of a basic customized new document set page. </span></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p style="margin:0in 0in 0pt;"></p>
<p>CustomNewDocSet.aspx<br />&lt;%@ Page Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot;&nbsp; CodeFile=&quot;CustomNewDocset.aspx.cs&quot; Inherits=&quot;_Default&quot; %&gt;</p>
<p style="margin:0in 0in 0pt;"></p>
<p>&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;</p>
<p style="margin:0in 0in 0pt;"></p>
<p>&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;<br />&lt;head runat=&quot;server&quot;&gt;<br />&nbsp;&nbsp;&nbsp; &lt;title&gt;&lt;/title&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&nbsp;&nbsp;&nbsp; &lt;asp:Literal ID=&quot;litList&quot; runat=&quot;server&quot; /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;asp:Literal ID=&quot;litCt&quot; runat=&quot;server&quot; /&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;</p>
<p style="margin:0in 0in 0pt;"></p>
<p>And this is an example of the code behind page.</p>
<p style="margin:0in 0in 0pt;"></p>
<p>CustomNewDocSet.aspx.cs<br />using System;<br />using System.Collections.Generic;<br />using System.Web;<br />using System.Web.UI;<br />using System.Web.UI.WebControls;<br />using Microsoft.SharePoint;</p>
<p style="margin:0in 0in 0pt;"></p>
<p>public partial class _Default : System.Web.UI.Page <br />{<br />&nbsp;&nbsp;&nbsp; protected void Page_Load(object sender, EventArgs e)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;SPList list = SPContext.Current.List;<br />&nbsp;&nbsp;litList.Text = list.Title;<br />&nbsp;&nbsp;SPContentTypeId ctid = new SPContentTypeId(Request.QueryString.GetValues(&quot;ContentTypeId&quot;)[0]);<br />&nbsp;&nbsp;SPContentType ct = list.ContentTypes[ctid];<br />&nbsp;&nbsp;litCt.Text = ct.Name;<br />&nbsp;&nbsp;&nbsp; }<br />}</p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">This is the configuration file that must be placed in the folder that contains the custom new document set aspx page. The config file is needed, otherwise the document set object model cannot be accessed. References can also be added other assemblies as needed. If the custom new document set page is placed in the root of _layouts rather than in a folder then this web.config file is not needed. </span></p>
<p><span style="font-family:Times New Roman;font-size:medium;"> Web.Config<br />&lt;?xml version=&quot;1.0&quot;?&gt;<br />&lt;!-- <br />&nbsp;&nbsp;&nbsp; Note: As an alternative to hand editing this file you can use the web admin tool to configure settings for your application. Use the Website-&gt;Asp.Net Configuration option in Visual Studio. A full list of settings and comments can be found in machine.config.comments usually located in <br />&nbsp;&nbsp;&nbsp; \Windows\Microsoft.Net\Framework\v2.x\Config <br />--&gt;<br />&lt;configuration&gt;<br />&nbsp;&lt;system.web&gt;<br />&nbsp;&nbsp;&lt;!-- <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set compilation debug=&quot;true&quot; to insert debugging <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; symbols into the compiled page. Because this <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; affects performance, set this value to true only <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; during development.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;<br />&nbsp;&nbsp;&lt;compilation debug=&quot;false&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&lt;assemblies&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;add assembly=&quot;Microsoft.Office.DocumentManagement, Version=14.0.0.0, Culture=neutral, PublicKeyToken=94DE0004B6E3FCC5&quot;/&gt;<br />&nbsp;&nbsp;&nbsp;&lt;/assemblies&gt;<br />&nbsp;&nbsp;&lt;/compilation<br />&nbsp;&lt;/system.web&gt;<br />&lt;/configuration&gt;</span></p>
<p></p>
<p><span style="font-family:Calibri;font-size:medium;">In order to use the custom new document set page the URL for the document set content type must be updated. This is an example Powershell script that can be used. Pass in the URL to the site that contains the document set content type to be changed. The appropriate content type ID of the content type to be changed should be specified for ctid. This will then update the property NewFormUrl to use the customized new document set page rather than the out of box one.&nbsp;&nbsp; $siteurl should be the URL that has the custom document set content type. $ctid is the content type ID of the document set that is being modified. $contentType.NewFormUrl is the location in relation to _layouts that contains the custom new document set form. </span></p>
<p><span style="font-family:Times New Roman;font-size:medium;"><span style="font-family:Times New Roman;font-size:medium;"> ChangeNewDocSetPage.ps1<br />$siteUrl = &quot;http://mysite&quot;<br />$ctid = &quot;0x0120D520&quot;<br />param($siteUrl)<br />$site = New-Object Microsoft.SharePoint.SPSite($siteUrl)<br />$web = $site.RootWeb; <br />$contentTypeId = New-Object Microsoft.Sharepoint.SPContentTypeId($ctid)<br />$contentType = $web.ContentTypes[$contentTypeId]<br />$contentType.NewFormUrl = &quot;_layouts/CustomNewDocset/CustomNewDocset.aspx&quot;<br />$contentType.Update()<br />$web.Dispose()<br />$site.Dispose()</span><br /></span></p>
<p></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;">Now a custom new document set page has been created and the newFormUrl has been changed to use the new page. When you use the New Document drop down in a document library to create a new document set you should now get your custom page.&nbsp; </span></span></p>
<p></p>
<p><span style="font-family:Calibri;font-size:medium;">Thanks for reading.</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Quentin Christensen, Program Manager</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Carlos David Argott Hernandez, Developer, Microsoft</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Getting Your Organization to Use SharePoint and Office 365</title>
      <link>https://docs.microsoft.com/archive/blogs/quentin/getting-your-organization-to-use-sharepoint-and-office-365</link>
      <pubDate>Thu, 28 Aug 2014 06:28:00 GMT</pubDate>
      <dc:creator><![CDATA[Quentin Christensen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/quentin/2014/08/28/getting-your-organization-to-use-sharepoint-and-office-365/</guid>
      <description><![CDATA[This one is for all those SharePoint evangelists and implementers out there who are hard at work...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family:Calibri;font-size:medium;">This one is for all those SharePoint evangelists and implementers out there who are hard at work trying to improve their organization. You champions of collaboration who have deployed SharePoint and seek to show everyone the light of sharing and efficiency. You have worked hard getting SharePoint running and seen the usage start to rise. I salute you and your efforts.</span></p>
<p><span style="font-family:Calibri;font-size:medium;">But what if you are in your own version of Groundhog Day? Each day doing the same things, people repeating the same mistakes, the usage of your solution is slightly increasing but not at the pace it should be. Why can&rsquo;t your users see the power of productivity you provided? Why are people asking questions like we have SharePoint? What is that? </span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/groundhog-day.jpg" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/groundhog_2D00_day.jpg"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/groundhog-day.jpg" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/groundhog_2D00_day.jpg" border="0" /></a></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;"><b>Groundhog:</b> SharePoint makes working with other people that easy!?</span></span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;">Getting hundreds or thousands of people using a new thing is no small task. It takes a while to learn new things and people are slow to change their ways. Focus on adoption. SharePoint is viral, but you need to get a critical mass of people that work together to start using it, then the rest of the team will follow. However in most organizations you have teams that mostly collaborate only with each other, so you need to identify these teams and get that critical mass.</span></span></p>
<p><b><span style="font-family:Calibri;font-size:medium;">Set goals and measure adoption</span></b></p>
<p><span style="font-family:Calibri;font-size:medium;">If you don&rsquo;t know many people are actively using SharePoint, then you don&rsquo;t know if your adoption promotion efforts are successful. First you need to have goals for adoption and measurable metrics to track your success. SharePoint has out of box analytics capabilities. A basic starting point is the number of hits and number of unique users for a site collection, you can see this in the site collection usage report by going to site collection settings and selecting <b>Popularity and Search Reports</b>. You can also view this report for a particular Site by going to <b>Popularity Trends</b> in <b>Site Settings</b>. </span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/Site%20Settings.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/Site-Settings.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/Site%20Settings.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/Site-Settings.png" border="0" /></a></p>
<p><span style="font-family:Calibri;font-size:medium;">Here is an example usage report. Notice this was before any adoption efforts were put in place. It&rsquo;s great to have a baseline starting point so you can compare the change over time. </span></p>
<p><span style="font-size:medium;"><span style="font-family:Times New Roman;"></span><span style="font-family:Calibri;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/Usage.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/Usage.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/Usage.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/Usage.png" border="0" /></a></span></span></p>
<p><span style="font-family:Calibri;font-size:medium;">Here is some more information:</span></p>
<p><a href="http://office.microsoft.com/en-us/office365-suite-help/view-and-download-reports-about-service-usage-in-office-365-HA104023516.aspx?CTT=1"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">View and download reports about service usage in Office 365</span></a></p>
<p><a href="http://office.microsoft.com/en-us/office365-suite-help/redir/HA103640042.aspx?CTT=5&amp;origin=HA104023516"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">View usage and search reports</span></a></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">There are also more sophisticated analytics options you can integrate with SharePoint.</span></p>
<p><a href="http://social.technet.microsoft.com/wiki/contents/articles/15468.sharepoint-2013-how-to-choose-between-web-analytics-and-google-analytics.aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">SharePoint 2013: How to Choose Between Web Analytics and Google Analytics</span></a></p>
<p><a href="http://blogs.webtrends.com/2014/01/everything-you-need-to-know-about-sharepoint-adoption/"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">Webtrends and everything you need to know about SharePoint adoption</span></a></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><b><span style="font-family:Calibri;font-size:medium;">Keep it simple and easy</span></b></p>
<p><span style="font-family:Calibri;font-size:medium;">First deploy and advertise the basic capabilities of SharePoint that need little setup and no customization. For example first get people using OneDrive for Business. Train them to use OneDrive for Business instead of their local computer to store files. Then look at deploying basic un-customized team sites that anyone in the organization can provision as needed. The faster you offer the option to people, the quicker you will realize the benefits, even if it isn&rsquo;t the highly customized repository of cat images and videos you have been dying to build for your company. </span></p>
<p><b><span style="font-family:Calibri;font-size:medium;">Setup an Intranet portal with search</span></b></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;">People occasionally need to access corporate resources such as new employee information, W2s, and employment information. If you can setup a single portal that is useful to everyone and everyone knows it exists, people will use it. Since you are linking people to important tasks they will use it, but ensure the experience is simple and easy. Tie that in with SharePoint search so when people can&rsquo;t browse to what they are looking for, they can just search. They will start to see they can find useful content in documents and team sites and want to figure out how they can make their content available too. They will run searches and see people suggestions, click on those people and see the OneDrive for Business sites, then look into getting their own OneDrive for Business setup. &nbsp;</span></span></p>
<p><b><span style="font-family:Calibri;font-size:medium;">Give them a carrot and advertise</span></b></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;">Create one page info documents to explain how to do basic things and why. For example in a short article highlight the value of coauthoring instead of emailing attachments around. Show people the carrots that will make their work life easier, then they will be motivated to learn and use it. Create simple and easy training documents and videos and share them with people. Use email promotions, a newsletter of SharePoint tips &amp; tricks, and articles on the company intranet home page to promote using SharePoint.&nbsp; </span></span></p>
<p><b><span style="font-family:Calibri;font-size:medium;">Go viral by getting an advocate from each team</span></b></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;">Select advocates from the teams that are using your SharePoint deployment and teach them about the benefits so they can spread the good word and help others on their team start using SharePoint. Once a few people on the team start relying on SharePoint, the rest of the team follows along and sees the benefit. Plus they have a point of contact that is an expert on their team that they can ask questions of. Involve your users with your solution design and implementation. They will be the ones using it right? Have them involved in every stage of the implementation from planning to pre-production. Teach these people cool ways to be more productive with SharePoint. Check in with them occasionally and see how they are doing. Encourage them to teach the rest of their team about SharePoint and why they should be using it. You can&rsquo;t train 1,000 people, but you can keep in touch with 50 people who work with 50 other people. &nbsp;</span></span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;">The formula is simple: end groundhog day + measure success + report results to boss = better ROI, more productive organization, and you are a hero. You&rsquo;re welcome. &nbsp;</span></span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Quentin Christensen, Program Manager</span></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>Migrating Existing Content into Document Sets</title>
      <link>https://docs.microsoft.com/archive/blogs/quentin/migrating-existing-content-into-document-sets</link>
      <pubDate>Fri, 22 Aug 2014 08:14:00 GMT</pubDate>
      <dc:creator><![CDATA[Quentin Christensen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/quentin/2014/08/22/migrating-existing-content-into-document-sets/</guid>
      <description><![CDATA[Document sets are so great I am sure you have thought up lots of different ways to use them, but...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family:Calibri;font-size:medium;">Document sets are so great I am sure you have thought up lots of different ways to use them, but there is just one problem. You have been using previous versions of SharePoint and already have tons of content that should be turned into document sets. Well there are a few ways you can accomplish this. You could manually create new document sets for existing content and then copy the appropriate items over. Of course this is time consuming and not feasible for a large amount of content. You could also use workflows to create new document sets, although this would also be fairly manual. Another option is to use SharePoint copy functionality to copy items and the Document Set object model to create new document sets. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Here is some sample code for a tool that can be used to copy existing content into Document Sets. This is a command line tool that when run will access a hard coded site. It will give you options of document libraries that you can select as a source and then options of document libraries that you can select as a destination. Then the tool will create a document set for each folder and copy just the documents that are inside that folder to the new document set. Because SPCopy is used, if there are columns that are on the folder and the document set content type then those properties will be copied over. </span></p>
<p>using System;<br />using System.Collections.Generic;<br />using System.Linq;<br />using System.Text;<br />using Microsoft.SharePoint;<br />using Microsoft.Office.DocumentManagement.DocumentSets;<br />using System.Collections;</p>
<p></p>
<p>namespace FoldersToDocsets<br />{<br />&nbsp;class Program<br />&nbsp;{<br />&nbsp;&nbsp;static void Main(string[] args)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;using (SPSite site = new SPSite(&quot;http://localhost&quot;))<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;using (SPWeb web = site.RootWeb)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&quot;Select source list:&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPList source = ChooseList(web);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&quot;Select target list:&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPList target = ChooseList(web);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPFolder rootFolder = source.RootFolder;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach (SPListItem folderItem in source.Folders)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPFolder folder = folderItem.Folder;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (folder.ParentFolder.Item == null &amp;&amp; folder.SubFolders.Count == 0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ConvertToDocset(folder, target);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&quot;END&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadLine();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}</p>
<p></p>
<p>&nbsp;&nbsp;private static void ConvertToDocset(SPFolder folder, SPList targetList)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;SPContentType docsetCT = targetList.ContentTypes[&quot;Document Set&quot;];<br />&nbsp;&nbsp;&nbsp;DocumentSet newDocset = DocumentSet.Create(targetList.RootFolder, folder.Name, docsetCT.Id, new Hashtable());<br />&nbsp;&nbsp;&nbsp;string newUrl = newDocset.Item.Url;<br />&nbsp;&nbsp;&nbsp;foreach (SPFile file in folder.Files)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;file.CopyTo(newUrl + &quot;/&quot; + file.Name);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}</p>
<p></p>
<p>&nbsp;&nbsp;</p>
<p></p>
<p>&nbsp;&nbsp;private static SPList ChooseList(SPWeb parentWeb)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;Dictionary&lt;int, Guid&gt; lists = new Dictionary&lt;int, Guid&gt;();<br />&nbsp;&nbsp;&nbsp;int index = 0;<br />&nbsp;&nbsp;&nbsp;foreach (SPList list in parentWeb.Lists)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;if (list.BaseTemplate == SPListTemplateType.DocumentLibrary)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(index.ToString() + &quot; - &quot; + list.Title);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lists.Add(index,list.ID);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index++;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;Console.Write(&quot;Selection: &quot;);<br />&nbsp;&nbsp;&nbsp;index = int.Parse(Console.ReadLine());<br />&nbsp;&nbsp;&nbsp;return parentWeb.Lists[lists[index]];<br />&nbsp;&nbsp;}<br />&nbsp;}<br />}<span style="font-family:Calibri;font-size:medium;"><br /></span></p>
<p><span style="font-family:Calibri;font-size:medium;">That was easy. Thanks for reading, now go make yourself some document sets!</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Quentin Christensen, Program Manager</span></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint Upgrade Strategies</title>
      <link>https://docs.microsoft.com/archive/blogs/quentin/sharepoint-upgrade-strategies</link>
      <pubDate>Fri, 15 Aug 2014 07:03:00 GMT</pubDate>
      <dc:creator><![CDATA[Quentin Christensen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/quentin/2014/08/15/sharepoint-upgrade-strategies/</guid>
      <description><![CDATA[What movie describes your SharePoint upgrade? 
Edge of Tomorrow because you keep trying things and...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family:Calibri;font-size:medium;">What movie describes your SharePoint upgrade? </span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;"><b>Edge of Tomorrow</b> because you keep trying things and failing but each time you get better and finally get there? &nbsp;</span></span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;"><b>Groundhog Day</b> since the cycle just keeps repeating itself?</span></span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;"><b>12 Angry Men</b> where people argue and tensions get hot because one guy is holding everyone back from finishing it?</span></span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;"><b>The Hunger Games</b> when 12 districts all fight to the death by sending their representatives as tribute? </span></span></p>
<p><span style="font-family:Calibri;font-size:medium;">SharePoint upgrade is difficult and costly. You want to upgrade to the latest and greatest, but many things may be holding you back. </span></p>
<ul>
<li><span style="font-family:Calibri;font-size:medium;">Testing all of the customizations and integrations to ensure people won&rsquo;t loss critical business functionality during or after the upgrade</span></li>
<li><span style="font-family:Calibri;font-size:medium;">Figuring out which upgrade approach is right for you</span></li>
<li><span style="font-family:Calibri;font-size:medium;">Third party applications don&rsquo;t yet support the new version of SharePoint</span></li>
<li><span style="font-family:Calibri;font-size:medium;">It is a lot of manpower to upgrade the servers and your team is already too busy servicing the existing solution</span></li>
<li><span style="font-family:Calibri;font-size:medium;">The expense of purchasing new hardware</span><span style="font-family:Calibri;font-size:medium;"><br /></span></li>
</ul>
<p><span style="font-family:Calibri;font-size:medium;"><br /></span></p>
<p><b><span style="font-family:Calibri;font-size:medium;">SharePoint Version Usage</span></b></p>
<p><span style="font-family:Calibri;font-size:medium;">At conferences I have seen the question asked what version of SharePoint are you on? This is not a scientific sample, but the responses usually look like this:</span></p>
<ul>
<li><span style="font-family:Calibri;font-size:medium;">Office 365: 15%</span></li>
<li><span style="font-family:Calibri;font-size:medium;">SharePoint 2013: 15%</span></li>
<li><span style="font-family:Calibri;font-size:medium;">SharePoint 2010: 50%</span></li>
<li><span style="font-family:Calibri;font-size:medium;">SharePoint 2007: 20%</span></li>
<li><span style="font-family:Calibri;font-size:medium;">SharePoint 2003: 1 person who embarrassingly raises their hand</span></li>
<li><span style="font-family:Calibri;font-size:medium;">Multiple versions of SharePoint: 20%</span></li>
</ul>
<p><span style="font-family:Calibri;font-size:medium;">Upgrading to a new version of SharePoint provide tons of value because at Microsoft we have many engineers building new things for each release. The majority of SharePoint deployments are on a version of SharePoint that is nearly 5 years old now. How old is your cell phone, tablet, or laptop? Probably not 5 years. My cell phone 5 years ago was terrible compared to what I have now. But if upgrade is hard, how do you get the awesome new stuff? </span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><b><span style="font-family:Calibri;font-size:medium;">Upgrade Strategies</span></b></p>
<p><span style="font-family:Calibri;font-size:medium;">Here are a few upgrade strategies you can consider so no matter what challenges you are struggling with, you can start getting value from the latest version. </span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;"><b>Upgrade to Office 365:</b> The difficulty with upgrade is a key reason why we built Office 365. In Office 365 we do small upgrades all the time so you are always on the latest and greatest. We handle upgrade for you. We have a consistent app model that you and partners can develop against. If you are looking at a major upgrade, take a serious look at moving to Office 365 so your days of upgrade are behind you and you can focus on delivering value, not SharePoint farms. </span></span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;"><b>Move OneDrive for Business (SkyDrive Pro or My Sites) to Office 365:</b> Can&rsquo;t move it all to Office 365? With </span></span><a href="https://blog.onedrive.com/onedrive-for-business-is-now-available-as-a-standalone-service/"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">OneDrive for Business standalone</span></a><span style="font-family:Calibri;font-size:medium;">, you can move just your OneDrive for Business sites (a.k.a. SkyDrive Pro in 2013 and My Sites in 2010) to SharePoint Online. Then your users have the latest features and you can continue managing your customized solutions on premises. </span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;"><b>Upgrade all Farms:</b> Go whole hog and upgrade your entire SharePoint deployment. This will be a big undertaking, especially if you have a large SharePoint deployment. </span></span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;"><b>Upgrade Specific Roles:</b> Just upgrade specific roles and solutions. For example your team site deployment may be fairly out of box and easy to upgrade. Also you can first upgrade services farms but not content farms, for example you can have SharePoint 2013 indexing and providing search for SharePoint 2010 farms. You get the new search capabilities with only upgrading a small set of infrastructure. Then you can upgrade other farms over time. </span></span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;"><b>Only Move New Solutions: </b>If all of these options are all too difficult, then keep running your existing farms on the current version and stand up new empty farms with the latest version of SharePoint. As you create new solutions such as a knowledge management portal or image management repository, build it on the new farms and deprecate old solutions when they are no longer needed. </span></span></p>
<p><span style="font-family:Calibri;font-size:medium;">Check out the </span><a href="http://technet.microsoft.com/en-us/library/cc262483(v=office.15).aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">overview of the upgrade process to SharePoint 2013</span></a><span style="font-family:Calibri;font-size:medium;"> to learn more. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Thanks for reading,</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Quentin Christensen, Program Manager</span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Times New Roman;font-size:medium;"> </span></p>]]></content:encoded>
    </item>
    <item>
      <title>Using Search Properties and Operators with eDiscovery</title>
      <link>https://docs.microsoft.com/archive/blogs/quentin/using-search-properties-and-operators-with-ediscovery</link>
      <pubDate>Wed, 30 Jul 2014 06:17:00 GMT</pubDate>
      <dc:creator><![CDATA[Quentin Christensen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/quentin/2014/07/30/using-search-properties-and-operators-with-ediscovery/</guid>
      <description><![CDATA[Using Search Properties and Operators with eDiscovery
I am back with some more information about...]]></description>
      <content:encoded><![CDATA[<p><b><span style="font-family:Calibri;font-size:medium;">Using Search Properties and Operators with eDiscovery</span></b></p>
<p><span style="font-family:Calibri;font-size:medium;">I am back with some more information about eDiscovery search with Exchange, SharePoint and Lync. This time learn about search properties and operators. Before we start, here are some related useful resources.</span></p>
<p><span style="font-family:verdana,geneva;font-size:small;"><a href="/b/quentin/archive/2014/06/04/overview-of-microsoft-office-ediscovery-with-exchange-sharepoint-and-lync-2013.aspx"><span style="color:#0563c1;">Overview of Microsoft Office eDiscovery with Exchange, SharePoint, and Lync 2013</span></a></span></p>
<p><span style="font-family:verdana,geneva;font-size:small;"><a href="http://office.microsoft.com/en-us/sharepoint-help/searching-and-using-keywords-in-ediscovery-HA102842220.aspx?CTT=1"><span style="color:#0563c1;">Searching and Using Keywords in eDiscovery</span></a></span></p>
<p><span style="font-family:verdana,geneva;font-size:small;"><a href="http://msdn.microsoft.com/en-us/library/office/ee558911%28v=office.15%29.aspx"><span style="color:#0563c1;">Keyword Query Language Syntax Reference</span></a><span> </span></span></p>
<p><span style="font-family:verdana,geneva;font-size:small;"><a href="http://technet.microsoft.com/en-us/library/jj219630.aspx"><span style="color:#0563c1;">Overview of crawled and managed properties in SharePoint Server 2013</span></a></span></p>
<p><span style="font-family:verdana,geneva;font-size:small;"><a href="http://technet.microsoft.com/en-us/library/dn774955(v=exchg.150).aspx"><span style="color:#0563c1;">Message properties and search operators for In-Place eDiscovery</span></a></span></p>
<p><span style="font-family:verdana,geneva;font-size:small;"><a href="/b/quentin/archive/2014/07/07/using-keyword-search-syntax-withediscovery.aspx"><span style="color:#0563c1;">Using Keyword Search Syntax and eDiscovery</span></a><span> &ndash; my previous blog post on this topic</span></span></p>
<p><b><span style="font-family:Calibri;font-size:medium;">Properties</span></b><b><span style="font-family:Calibri;font-size:medium;"><br /></span></b></p>
<ul>
<li><span style="font-family:Calibri;font-size:medium;">Properties and free text keywords cannot be combined into a single query unless you use quotes for the property value. For example this query: Design Documents author:Dan Jump. This will succeed, but you won&rsquo;t get the results you expect. It will search all documents that have Design AND Documents AND Jump anywhere in the properties or text and where Dan is in the author field. This query would be more explicit: Design Documents AND author:&quot;Dan Jump&quot;</span></li>
<li><span style="font-family:Calibri;font-size:medium;">Type properties with values to match in <i>property:value</i> form. Values are not case-sensitive. When searching for properties, for example Author:Dan, the value for the property cannot have a space after the operator. If there is a space, your intended value will just be full text searched, for example Author: Dan would search for Dan as a keyword, rather than only items where the Author is Dan. </span></li>
<li><span style="font-size:medium;"><span style="font-family:Calibri;">Use quotation marks to find phases within a property or use wildcards to find partial matches that begin with the specified letters. If you look for <b>filename:&quot;Budget Q1&quot;</b></span><strong><span style="color:#484848;"> </span></strong><span style="font-family:Calibri;">(with quotation marks), your search will return a file named &ldquo;Budget Q1 Financials&rdquo; A search for <b>filename:budget </b>(without quotation marks) will return the files &ldquo;Budget Q1 Financials&rdquo; and &ldquo;Budget Q2 Financials&rdquo;. </span></span></li>
<li><span style="font-family:Calibri;font-size:medium;">When searching a property, use quotes if you have multiple words. For example <b>filename:Budget Q1</b> will not return what you want, it will search for files with <b>Budget</b> in the name and do a full text search for <b>Q1</b>. You will get more results than you expect. </span></li>
<li><span style="font-family:Calibri;font-size:medium;">There are several out of box properties that can be searched on (see below for more examples) and administrators can configure additional ones.</span></li>
</ul>
<p></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;"><b>IMPORTANT NOTE: </b>When you search on a property that is specific to Exchange or SharePoint, all results from the other product will be excluded. For example if you search BCC in the keywords field, there is no BCC in SharePoint so you will only get Exchange results. If you search with the Author field, this is SharePoint only and will exclude Exchange results. To get around this use the Specify Property option on the eDiscovery query page.</span></span></p>
<p><a title="Search Results" href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/searcg%20resykts.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/searcg-resykts.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/searcg%20resykts.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/searcg-resykts.png" border="0" /></a></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Here are some of the SharePoint search properties that are available that are useful for eDiscovery:</span></p>
<table style="width:600px;" border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td width="133" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Property</span></p>
</td>
<td width="65" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Type</span></p>
</td>
<td width="228" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Example</span></p>
</td>
<td width="186" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Description</span></p>
</td>
</tr>
<tr>
<td width="133" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Author</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="65" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Person</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="228" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Author:&quot;Garth Fort&quot; OR Author:&quot;garthf@contoso.com&quot;</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="186" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The author field from Office documents. If users create a document and email it to someone else, then the 2<sup>nd</sup> person uploads it to SharePoint it will still have the original author. </span></p>
</td>
</tr>
<tr>
<td width="133" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">ContentType</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="65" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="228" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">ContentType:Document</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="186" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The content type of the item such as Item, Document, or Video.</span></p>
</td>
</tr>
<tr>
<td width="133" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Created</span></p>
</td>
<td width="65" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Date</span></p>
</td>
<td width="228" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Created&gt;=7/1/2013</span></p>
</td>
<td width="186" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Date the item was created.</span></p>
</td>
</tr>
<tr>
<td width="133" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">CreatedBy</span></p>
</td>
<td width="65" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Person</span></p>
</td>
<td width="228" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">CreatedBy:&quot;Garth Fort&quot;</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="186" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The person that created or uploaded the item.</span></p>
</td>
</tr>
<tr>
<td width="133" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">DetectedLanguage</span></p>
</td>
<td width="65" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
</td>
<td width="228" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">DetectedLanguage:English</span></p>
</td>
<td width="186" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The language of the item. </span></p>
</td>
</tr>
<tr>
<td width="133" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">FileExtension</span></p>
</td>
<td width="65" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
</td>
<td width="228" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">FileExtension:XLSX</span></p>
</td>
<td width="186" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The extension of files.</span></p>
</td>
</tr>
<tr>
<td width="133" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">FileName</span></p>
</td>
<td width="65" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
</td>
<td width="228" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">FileName:&quot;Marketing Plan&quot;</span></p>
</td>
<td width="186" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Name of files. </span></p>
</td>
</tr>
<tr>
<td width="133" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">LastModifiedTime</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="65" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Date</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="228" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">LastModifiedTime&gt;=7/1/2013</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="186" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The date the item was last modified.</span></p>
</td>
</tr>
<tr>
<td width="133" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">ModifiedBy</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="65" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Person</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="228" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">ModifiedBy:&quot;Garth Fort&quot;</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="186" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The person to last change the item. </span></p>
</td>
</tr>
<tr>
<td width="133" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Size</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="65" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Integer</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="228" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Size&gt;=1</span></p>
<span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Size:1..50000</span></p>
</td>
<td width="186" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The size of the item in Bytes. </span></p>
</td>
</tr>
<tr>
<td width="133" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Title</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="65" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="228" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Title:&quot;Marketing Plan&quot;</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="186" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The title of the document. Title is metadata specified in Office files and is different from the file name. </span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Here are eDiscovery properties for Exchange:</span></p>
<table style="width:600px;" border="1" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Property</span></p>
</td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Type</span></p>
</td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Example</span></p>
</td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Description</span></p>
</td>
</tr>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Attachment</span></p>
</td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
</td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Attachment:file.docx</span></p>
</td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The file name of message attachments. </span></p>
</td>
</tr>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">BCC</span></p>
</td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
</td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">BCC:&quot;garthf@contoso.com&quot;</span></p>
</td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The BCC field.</span></p>
</td>
</tr>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Body</span></p>
</td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
</td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Body:&quot;Northwind Marketing&quot;</span></p>
</td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The body of the message.</span></p>
</td>
</tr>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Category</span></p>
</td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
</td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">category:&quot;Red Category&quot;</span></p>
</td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Categories that can be defined by the user in OWA our Outlook.</span></p>
</td>
</tr>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">CC</span></p>
</td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
</td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">CC<span style="font-family:Helvetica;font-size:small;">:&quot;garthf@contoso.com&quot;</span></span></p>
</td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The CC field.</span></p>
</td>
</tr>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">From</span></p>
</td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
</td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">From:&quot;garthf@contoso.com&quot;</span></p>
<span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">From:contoso</span></p>
</td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The sender of the message. </span></p>
</td>
</tr>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Importance</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Importance:Low</span></p>
<span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Importance:Medium</span></p>
<span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Importance:High</span></p>
</td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Senders can set an importance value when sending a message. By default importance is set to medium.&nbsp; </span></p>
</td>
</tr>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Kind</span></p>
</td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
</td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Kind:email</span></p>
<span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Kind:email OR Kind:contacts OR Kind:meetings</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Values: </span></p>
<ul>
<li style="line-height:normal;margin-top:0in;margin-right:0in;margin-bottom:0pt;"><span style="font-family:helvetica;font-size:small;">contacts</span></li>
<li><span style="font-family:helvetica;font-size:small;">docs</span></li>
<li><span style="font-family:helvetica;font-size:small;">email</span></li>
<li><span style="font-family:helvetica;font-size:small;">faxes</span></li>
<li><span style="font-family:helvetica;font-size:small;">im</span></li>
<li><span style="font-family:helvetica;font-size:small;">journals</span></li>
<li><span style="font-family:helvetica;font-size:small;">meetings</span></li>
<li><span style="font-family:helvetica;font-size:small;">notes</span></li>
<li><span style="font-family:helvetica;font-size:small;">posts</span></li>
<li><span style="font-family:helvetica;font-size:small;">rssfeeds</span></li>
<li><span style="font-family:helvetica;font-size:small;">tasks</span></li>
<li><span style="font-family:helvetica;font-size:small;"> <span style="line-height:115%;">voicemail</span></span></li>
</ul>
</td>
</tr>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Participants</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Participants:&quot;garthf@contoso.com&quot;</span></p>
<span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Participants:&quot;contoso&quot;</span></p>
</td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">All sender and recipient fields: From, To, CC, and BCC.</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
</tr>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Received</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Date</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Received:7/15/2014</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The date that a message is received. </span></p>
</td>
</tr>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Recipients</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Recipients:&quot;garthf@contoso.com&quot;</span></p>
<span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Recipients:&quot;contoso&quot;</span></p>
</td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Searches the recipient fields: To, CC, and BCC. </span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
</tr>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Sent</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Date</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Sent:7/15/2014</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The date that a message is sent. </span></p>
</td>
</tr>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Size</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Integer</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Size&gt;=1</span></p>
<span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Size:1..50000</span></p>
</td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The size of the item in Bytes.</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
</tr>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Subject</span></p>
</td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Text</span></p>
</td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Subject:&quot;Northwind Marketing&quot;</span></p>
</td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The subject of the message.</span></p>
</td>
</tr>
<tr>
<td width="85" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">To</span></p>
</td>
<td width="71" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">String</span></p>
</td>
<td width="301" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">To:&quot;<span style="font-family:Helvetica;font-size:small;">garthf@contoso.com&quot;</span></span></p>
</td>
<td width="210" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">The To field. </span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><strong><span style="color:#484848;font-size:medium;">Operators&nbsp;</span></strong><strong><span style="color:#484848;font-size:medium;"><br /></span></strong><span style="font-family:Times New Roman;font-size:medium;"> </span></p>
<ul>
<li><span style="font-family:Calibri;font-size:medium;">Queries can use prefix wildcard characters using an asterisk (*). A wildcard will search for 0 or more characters in keywords or property values. You can use wild cards to replace part of a word for example <i>set*</i> will return results with <i>setting</i> and <i>setup.</i> Wildcards can also replace an entire word for example <b>&quot;</b><i>fair *</i><b>&quot;</b> would return <i>fair value</i>. </span></li>
<li><span style="font-family:Calibri;font-size:medium;">You can use wildcards to get variants of a property. For example FileExtension:XLS*will return all files with the extension XLS or XLSX.</span></li>
<li><span style="font-family:Calibri;font-size:medium;">A space between two different properties is an AND. For example author:&quot;Sara Davis&quot; Title:&quot;Marketing&quot; will find documents where Sara Davis was the author and the title has the word Marketing. </span></li>
<li><span style="font-family:Calibri;"><span style="font-size:medium;">Search interprets the space between terms that use the same property as an &quot;OR.&quot; For example, if the author property is available, and you look for <b>author:&quot;Sara Davis&quot; author:&quot;Garth Fort&quot;</b>, your search will return any items authored by Sara Davis OR Garth Fort. &nbsp;</span></span></li>
<li><span style="font-family:Calibri;font-size:medium;">To exclude content marked with a certain property value from your search results, place a minus sign (-) before the name of the property. For example <b>-from:&quot;Sara Davis&rdquo;</b> will exclude any messages sent by Sara Davis. </span></li>
</ul>
<table style="width:600px;" border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Operator</span></p>
</td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Usage</span></p>
</td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Description</span></p>
</td>
</tr>
<tr>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">:</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Property:value</span></p>
</td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Specify equality match on property values</span></p>
</td>
</tr>
<tr>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">&lt;&nbsp;</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Property &lt;value</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Property is less than a value for dates and integers</span></p>
</td>
</tr>
<tr>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">&gt;&nbsp;</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Property &gt;value</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Property is greater than a specific value</span></p>
</td>
</tr>
<tr>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">&lt;=</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Property &lt;=value</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Property is less than or equal to a specific value.&nbsp; </span></p>
</td>
</tr>
<tr>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">&gt;=</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Property &gt;=value</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Property is greater than or equal to a specific value.&nbsp; </span></p>
</td>
</tr>
<tr>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">..</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Property: value1..value2</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Property is greater than or equal to value1 and less than or equal to value2</span></p>
</td>
</tr>
<tr>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">AND</span></p>
</td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Keyword1 AND keyword2</span></p>
</td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Forced inclusion</span></p>
</td>
</tr>
<tr>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">+</span></p>
</td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Keyword1 +keyword2</span></p>
</td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Forced inclusion </span></p>
</td>
</tr>
<tr>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">OR </span></p>
</td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Keyword1 OR&nbsp; keyword2</span></p>
</td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Logical or</span></p>
</td>
</tr>
<tr>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">NOT</span></p>
</td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Keyword1 NOT keyword2</span></p>
</td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">logical not</span></p>
</td>
</tr>
<tr>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">-</span></p>
</td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Keyword1 -keyword2</span></p>
</td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Logical not</span></p>
</td>
</tr>
<tr>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">&quot;&quot;</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">&quot;fair value&quot;</span></p>
</td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Exact Phrase match in keywords and property values. Can be used to include single quotes in search terms.</span></p>
</td>
</tr>
<tr>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">*</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">set*</span></p>
<span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">OR patent AND property:set*</span></p>
</td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Wildcard match for 0 or more characters in keywords or property values</span></p>
</td>
</tr>
<tr>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">( )</span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">(fair OR free) AND (author:Dan)&nbsp;&nbsp;&nbsp; </span></p>
<span style="font-family:helvetica;font-size:small;"> </span></td>
<td width="208" valign="top"><span style="font-family:helvetica;font-size:small;"> </span>
<p><span style="font-family:helvetica;font-size:small;">Group query terms and/or properties together</span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="font-family:Times New Roman;font-size:medium;">&nbsp;</span><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Thanks for reading, may the search be with you. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Quentin Christensen, Program Manager</span></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>Creating a Pitchbook - Applying Metadata Based on Content Type or Other Properties (Part 6)</title>
      <link>https://docs.microsoft.com/archive/blogs/quentin/creating-a-pitchbook-applying-metadata-based-on-content-type-or-other-properties-part-6</link>
      <pubDate>Tue, 22 Jul 2014 07:19:00 GMT</pubDate>
      <dc:creator><![CDATA[Quentin Christensen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/quentin/2014/07/22/creating-a-pitchbook-applying-metadata-based-on-content-type-or-other-properties-part-6/</guid>
      <description><![CDATA[Once again this is Quentin and Carlos, this time with part six of the pitchbook series of articles...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family:Calibri;"><span style="font-size:medium;">Once again this is Quentin and Carlos, this time with part six of the pitchbook series of articles demonstrating document set customization. This will be the&nbsp;final article in this series. It&#39;s not you, it&#39;s me. I just need more space. You know, to talk about other features. There, there don&#39;t cry. I may write some future articles on document sets, can we still be friends? </span></span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;">I hope you enjoyed this series and have used some of the ideas for customizing document sets.</span></span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;">There are many scenarios where you may want to use metadata to organize and filter content for views or other reasons. You may want to group particular items based on metadata, but that metadata should be specified by a set of conditions and applied automatically. It is a good idea to apply metadata automatically when possible so users do not have to spend time filling it in and you can control the consistency of the metadata. Yeah, your users hate wasting time. Don&#39;t annoy them. </span></span></p>
<p><span style="font-family:Calibri;font-size:medium;">You may want to look at these other articles if you haven&rsquo;t already seen them.</span></p>
<p><a href="http://blogs.msdn.com/b/ecm/archive/2011/10/18/introducing-document-sets.aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">Introducing Document Sets</span></a></p>
<p><a href="/b/quentin/archive/2014/06/10/creating-a-pitchbook-customizing-document-set-settings-part-1.aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">Creating a Pitchbook - Customizing Document Set Settings (Part 1)</span></a></p>
<p><a href="/b/quentin/archive/2014/06/17/creating-a-pitchbook-customizing-the-document-set-welcome-page-part-2.aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">Creating a Pitchbook &ndash; Customizing the Document Set Welcome Page (Part 2)</span></a></p>
<p><a href="/b/quentin/archive/2014/06/24/creating-a-pitchbook-closing-the-pitchbook-with-document-set-workflow-actions-part-3.aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">Creating a Pitchbook &ndash; Closing the Pitchbook with Document Set Workflow Actions (Part 3)</span></a></p>
<p><a href="/b/quentin/archive/2014/07/01/creating-a-pitchbook-getting-related-pitchbooks-with-a-content-query-web-part-and-page-query-strings-part-4.aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">Creating a Pitchbook &ndash; Getting Related Pitchbooks with a Content Query Web Part and Page Query Strings (Part 4)</span></a></p>
<p><a href="/b/quentin/archive/2014/06/02/creating-a-pitchbook-putting-a-button-in-the-document-set-ribbon-and-downloading-document-sets-as-a-zip-file-part-5.aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">Creating a Pitchbook &ndash; Putting a Button in the Document Set Ribbon and Downloading Document Sets as a Zip File (Part 5)</span></a></p>
<p><a href="http://blogs.msdn.com/b/ecm/archive/2011/10/12/metadata-defaults-in-sharepoint-server-2010.aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">Metadata defaults</span></a><span style="font-family:Calibri;"><span style="font-size:medium;"> help with this, but they can only be specified for a particular column at the site, list, and folder level. For the pitchbook scenario there can be multiple sales proposals, presentations and other related documents. To make it easier to find certain documents a group by view can be specified. This group by view will be based on a hidden property that users will never need to worry about specifying as long as they pick the right content type. This way one group of the view will only contain sales contracts and another group will contain the presentations. This makes it so we can apply logic to put multiple content types in one group or create groups based on content type and other pieces of metadata.&nbsp; </span></span></p>
<p><span style="font-family:Calibri;font-size:medium;">In order to use a group by view metadata must be specified for a particular column on each item inside the pitchbook. The logic to use will be to set a Grouping column property (which is hidden) to the name of the content type for any items that are added to the document library. To do this an event receiver will be used. When documents are added or updated the ItemAdding or ItemUpdating events are triggered. Event receivers will be used for both ItemAdding and ItemUpdating because properties such as the content type may change on update, if so then it Grouping should be updated to the new value.</span></p>
<p><span style="font-family:Calibri;font-size:medium;">First the feature must be declared so here is the feature.xml file:</span></p>
<p>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;</p>
<p>&lt;!-- _lcid=&quot;1033&quot; _version=&quot;14.0.3427&quot; _dal=&quot;1&quot; --&gt;</p>
<p>&lt;!-- _LocalBinding --&gt;</p>
<p>&lt;!-- Copyright (c) Microsoft Corporation. All rights reserved. --&gt;</p>
<p>&lt;Feature xmlns=&quot;http://schemas.microsoft.com/sharepoint/&quot;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Id =&quot;{77d9ec4b-6e12-40e8-ae7f-ff852dbe6bcd}&quot;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Title =&quot;Pitchbook Metadata Event Receiver&quot;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Description =&quot;Adds keywords to items when added based on CType&quot;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Version =&quot;1.0.0.0&quot;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Hidden=&quot;FALSE&quot;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Scope=&quot;Site&quot;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;UIVersion=&quot;4&quot;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;ReceiverAssembly=&quot;EventReceiverSample, Version=1.0.0.0, Culture=neutral, PublicKeyToken=156ffdc318b7ede1&quot;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;ReceiverClass=&quot;EventReceiverSample.CustomFeatureEventReceiver&quot;&gt;</p>
<p><span style="font-family:Calibri;font-size:medium;">&lt;/Feature&gt;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">This will define the name and properties of the feature. The public key token will be different for your own project so make sure you update this. The ReceiverAssembly is the namespace of the event receiver sample (the name of the DLL) and the ReceiverClass is the class the feature uses in the namespace. The scope is Site, meaning this will activate for the whole site collection. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Next the event receivers must be registered on a particular list. I have chosen a document library I have on my site called &ldquo;Documents&rdquo;. The code that is fired when an event receiver is hit is in a file named CustomFeatureEvent.cs.</span></p>
<p>using System;</p>
<p>using Microsoft.SharePoint;<span style="font-family:Calibri;"><span style="font-size:medium;"> The co-authoring robot added this text. Please email CyberDog if you have questions. </span></span></p>
<p>&nbsp;</p>
<p>namespace EventReceiverSample</p>
<p>{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public class CustomFeatureEventReceiver : SPFeatureReceiver</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private const string EVNTNAME = &quot;Pitchbook Metadata Event Receiver&quot;;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override void FeatureActivated(SPFeatureReceiverProperties properties)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPSite site = properties.Feature.Parent as SPSite; //When activated this feature will apply only to the site at the root of the site collection, unless you scope this feature to a list.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPListCollection webLists = site.RootWeb.Lists;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPList targetList = webLists[&quot;Documents&quot;]; //This is the target list to apply the event receiver.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddEventHandlerToCollection(targetList.EventReceivers);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void AddEventHandler(SPContentType targetType)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPEventReceiverDefinitionCollection sperdcol = targetType.EventReceivers;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (sperdcol != null)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddEventHandlerToCollection(sperdcol);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (targetType.ParentList != null)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sperdcol = targetType.ParentList.EventReceivers;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddEventHandlerToCollection(sperdcol);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void AddEventHandlerToCollection(SPEventReceiverDefinitionCollection sperdcol)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type classType = typeof(CustomItemEvent);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPEventReceiverDefinition newEvent = sperdcol.Add();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newEvent.Assembly = classType.Assembly.FullName;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newEvent.Class = classType.FullName;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newEvent.Name = EVNTNAME;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newEvent.Type = SPEventReceiverType.ItemAdding;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newEvent.SequenceNumber = 100;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newEvent.Synchronization = SPEventReceiverSynchronization.Synchronous;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newEvent.Update();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPEventReceiverDefinition newEventUpdate = sperdcol.Add();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newEventUpdate.Assembly = classType.Assembly.FullName;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newEventUpdate.Class = classType.FullName;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newEventUpdate.Name = EVNTNAME;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newEventUpdate.Type = SPEventReceiverType.ItemUpdating;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newEventUpdate.SequenceNumber = 100;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newEventUpdate.Synchronization = SPEventReceiverSynchronization.Synchronous;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newEventUpdate.Update();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>}</p>
<p><span style="font-family:Calibri;font-size:medium;">I created a single text column called Grouping to use to set metadata on and to use group by in my document set view. I then added the Grouping to my Pitchbook Document content type (that was created in previous blog posts), thus adding the column to all of my Pitchbook content types. You can also add the column to the particularly list you are using and add it to all content types. I made the Grouping column hidden so users will not be able to edit it. We need another class for the event receiver logic. I put this in a file called CustomItemEvent.cs.</span></p>
<p>using System;<span style="font-family:Calibri;"><span style="font-size:medium;"> The co-authoring robot added this text. Please email CyberDog if you have questions. </span></span></p>
<p>using Microsoft.SharePoint;</p>
<p>using System.IO;</p>
<p>using System.Text;</p>
<p></p>
<p>namespace EventReceiverSample</p>
<p>{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public class CustomItemEvent : SPItemEventReceiver</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public CustomItemEvent()</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override void ItemAdding(SPItemEventProperties properties)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; changeProperties(properties);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override void ItemUpdating(SPItemEventProperties properties)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; changeProperties(properties);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void changeProperties(SPItemEventProperties properties)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPContentTypeId ctid = new SPContentTypeId((string) properties.AfterProperties[&quot;ContentTypeId&quot;]);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPContentType ct = properties.List.ContentTypes[ctid];</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; properties.AfterProperties[&quot;Grouping&quot;] = ct.Name;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>}</p>
<p><span style="font-family:Calibri;font-size:medium;">This class triggers the changeProperties() method whenever an ItemAdding or ItemUpdating event occurs. changeProperties() will then get the current content type, it is important to use AfterProperties so we can get the changes the user has made. The user may change the content type to something else; in that case we want to change the metadata property. The logic here is very simple, whatever the name of the content type is, set that value for the Grouping column.</span></p>
<p><span style="font-family:Calibri;font-size:medium;">You may want to do something more complex here; maybe you only want to group sales contracts into one bucket and everything else into another. You can use this:</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ct.Name == &quot;Sales Contract&quot;)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; properties.AfterProperties[&quot;Grouping&quot;] = &quot;Contract&quot;;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; properties.AfterProperties[&quot;Grouping&quot;] = &quot;Other Documents&quot;;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><span style="font-family:Calibri;font-size:medium;">Another idea may be to apply metadata based on other metadata. For example:</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ct.Name == &quot;Sales Contract&quot; &amp;&amp; ct.Confidentiality == &quot;Yes&quot;)<span style="font-family:Calibri;"><span style="font-size:medium;"> The co-authoring robot added this text Please email CyberDog if you have questions To remove all robot text run the document inspector &nbsp;</span></span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; properties.AfterProperties[&quot;Grouping&quot;] = ct.Name + &quot; Confidential&quot;;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<span style="font-family:Calibri;"><span style="font-size:medium;"> The co-authoring robot added this text. Please email CyberDog if you have questions. </span></span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; properties.AfterProperties[&quot;Grouping&quot;] = ct.Name + &quot; Not Confidential&quot;;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><span style="font-family:Calibri;font-size:medium;">Now that things are all done whenever documents are added or updated in the Documents library they will get a hidden field set with the name of the content type. The item adding event is important because items may be added using multiple upload or windows explorer, which do not trigger the item updating event. Then the feature must be activated. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">The last step is to create a custom view to use inside the pitchbook. First I go to the document library settings and create a new standard view. Then in the group by section I select the Grouping column and select the radio button expanded so all items will be displayed. </span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/1%20-%20Settings.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/1-_2D00_-Settings.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/1%20-%20Settings.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/1-_2D00_-Settings.png" border="0" /></a></p>
<p><span style="font-family:Calibri;font-size:medium;">Inside my pitchbook content type there is a custom view that does group by on the hidden Grouping column and here is what it looks like. </span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/2%20-%20home%20page.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/2-_2D00_-home-page.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/2%20-%20home%20page.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/2-_2D00_-home-page.png" border="0" /></a></p>
<p><span style="font-family:Calibri;font-size:medium;">Now I can group items in my views with metadata that is set automatically based on the content type and users don&rsquo;t have to worry about filling in the metadata. Thanks for reading and may the metadata be with you!</span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Quentin Christensen, Program Manager</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Carlos David Argott Hernandez, Software Development Engineer</span></p>]]></content:encoded>
    </item>
    <item>
      <title>The Groove of Optimum Performance</title>
      <link>https://docs.microsoft.com/archive/blogs/quentin/the-groove-of-optimum-performance</link>
      <pubDate>Thu, 17 Jul 2014 07:10:00 GMT</pubDate>
      <dc:creator><![CDATA[Quentin Christensen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/quentin/2014/07/17/the-groove-of-optimum-performance/</guid>
      <description><![CDATA[Have you ever felt like you were just in the zone? Things were hard, but they were going well. You...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family:Calibri;font-size:medium;">Have you ever felt like you were just in the zone? Things were hard, but they were going well. You were learning new things and getting it done. You were in the groove. This is a great place to be, ideally you spend most of your time here except occasionally to go into the </span><a href="/b/quentin/archive/2014/07/10/the-pit-of-success.aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">Pit of Success</span></a><span style="font-family:Calibri;font-size:medium;">. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">The groove is where you are at your optimum performance. You have a level of challenge that meets your ability. Your work is the most effective and satisfying. The Groove is where you want to be. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/The%20Groove%20of%20Optimum%20Performance.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/The-Groove-of-Optimum-Performance.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/The%20Groove%20of%20Optimum%20Performance.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/The-Groove-of-Optimum-Performance.png" border="0" /></a></span></p>
<p></p>
<p><span style="font-family:Calibri;font-size:medium;">Too much <b>challenge</b> for your ability and you will be stressed and frustrated. In many cases you learn new skills and triumph, but the level of what you accomplish is likely decreased. Quality is reduced. You can&rsquo;t stay there for too long, otherwise you will be unhappy and burn out. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Too much <b>ability</b> for the level of challenge can also be bad. If you have more ability than your work is providing, it is too easy. You aren&rsquo;t stimulated and growing. What you are doing will not be fulfilling. You may start to feel empty. This may even lead to seeking other opportunities. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Ideally, you spend most of your time in the Groove and move upwards and to the right. You have the right amount of challenge and as your ability increases you take on even more challenge. Eventually you get to the top right corner, you are a superstar owning everything thrown at you. </span></p>
<p><b><span style="font-family:Calibri;font-size:medium;">How do I stay in the Groove?</span></b></p>
<ol>
<li><span style="font-family:Calibri;font-size:medium;">Meet with your manager and discuss The Groove. Where do both of you think you are at? Are you in the Groove, too challenged, or not challenged enough? Do you enjoy your work? Are you learning new things? </span></li>
<li><span style="font-family:Calibri;font-size:medium;">If you aren&rsquo;t in the Groove, discuss how to get there. </span><ol>
<li><span style="font-family:Calibri;font-size:medium;">Are you orange with too much challenge? Can you reduce the workload or will your ability soon reach the level where you can handle it all? </span></li>
<li><span style="font-family:Calibri;"><span style="font-size:medium;">Are you green with too little challenge for your ability? Find new and different tasks to take on, scale to do more, and start working on a new skill set. &nbsp;</span></span></li>
</ol></li>
<li><span style="font-family:Calibri;font-size:medium;">If you are in the Groove should you go into the </span><a href="/b/quentin/archive/2014/07/10/the-pit-of-success.aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">Pit of Success</span></a><span style="font-family:Calibri;font-size:medium;"> or continue in the Groove? </span></li>
</ol>
<p><span style="font-family:Calibri;font-size:medium;">Check in on this once in a while with your manager. It will help you be on the same page about progressing towards new levels of ability and your career goals. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Quentin Christensen, Program Manager</span></p>
<p><span style="font-family:Times New Roman;font-size:medium;"> </span></p>]]></content:encoded>
    </item>
    <item>
      <title>The List View Threshold (STOP! Don’t change it!)</title>
      <link>https://docs.microsoft.com/archive/blogs/quentin/the-list-view-threshold-stop-dont-change-it</link>
      <pubDate>Tue, 15 Jul 2014 07:30:00 GMT</pubDate>
      <dc:creator><![CDATA[Quentin Christensen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/quentin/2014/07/15/the-list-view-threshold-stop-dont-change-it/</guid>
      <description><![CDATA[Today call me the Sultan of Scale, because we are&nbsp;talking about SharePoint Scale and the list...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family:Calibri;font-size:medium;">Today call me the Sultan of Scale, because we are&nbsp;talking about SharePoint Scale and the list view threshold. When you excitedly upgrade your farm to SharePoint 2010 you may head on over to a large list and try and access it or do an administrative operation such as add a column. Suddenly you are met with this:</span></p>
<p><span style="font-family:Calibri;font-size:medium;">You do some digging around and find out that there is a setting in Central Administration where you can change the list view threshold for a web application. Aha! If you just change that setting up to 100,000 you have no more problems. Hold on a minute. Let me introduce you to the list view threshold. It is like your good friend, the designated driver. The guy that ruins your night by taking your keys away when you are too drunk to drive and you can&rsquo;t go get cream cheese hot dogs at 2am. You just tried to raise the BAC level at which he takes the keys away from .8 to 16. The keys don&rsquo;t get taken away and your server farm crashes, ok maybe not but you may cause a performance decrease for other users.</span></p>
<p><span style="font-family:Calibri;font-size:medium;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/1%20-%20chart.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/1-_2D00_-chart.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/1%20-%20chart.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/1-_2D00_-chart.png" border="0" /></a><br /></span></p>
<p><span style="font-family:Calibri;font-size:medium;">This graph shows the impact of changing the list view threshold on a farm with a large list where users are frequently performing operations that exceed the list view threshold. As you can see, the impact of just changing the setting to 10,000 is significant. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">SharePoint 2010 has some great scalability improvements over SharePoint 2007. There are improvements in search, columns, and metadata that make it faster and easier to store access millions of items in a list, but to design such large lists you still need to think about a few things. This post covers a few basics, for lots of in depth information check out this article I authored: </span><a href="http://technet.microsoft.com/en-us/library/cc262813(v=office.14).aspx"><span style="color:#0000ff;font-family:Calibri;font-size:medium;">Designing large lists and maximizing list performance</span></a><span style="text-decoration:underline;"><span style="color:#0000ff;font-family:Calibri;font-size:medium;">. </span></span></p>
<p><span style="font-family:Calibri;font-size:medium;">Why does SharePoint have a list view threshold and how does it help you besides throwing an error? Dealing with a large amount of items takes time and resources. Fortunately SharePoint provides methods to help you perform common operations efficiently such as using indexes to filter and metadata navigation fallback to return a smaller set of results when a request is too large. But some operations such as poor performing queries (ones that try and get everything from a list or filter without indexes) or operations that affect every list item such as adding a column take time and resources. On a small list this doesn&rsquo;t matter because there are so few items that the operation is fast. As the list size increases these operations take longer and use more resources. Rather than let these operations run unbounded, the list view threshold prevents them. You can think of the list view threshold as a check engine light letting you know that you should change the query and how data is accessed or perform the operation when farm usage is low. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">But why is the limit set at 5,000?&nbsp; When users perform operations against a database, SQL Server locks rows to prevent conflicts from concurrent operations. Once operations start to affect more than 5,000 items the entire table gets locked because it is more efficient than locking the individual rows. SharePoint stores all list items for an entire content database in a single table </span></p>
<p><span style="font-family:Calibri;font-size:medium;">When queries are made on approximately more than 5,000 items (even if it is a read) that table will get locked and any other operations for all lists in that content database must wait until the current operation completes. The default value of 5,000 was carefully chosen and Microsoft recommends not changing it. Lowering the limit will result in minimal performance improvements, and raising it even to 10,000 will decrease throughput if operations are commonly performed that would otherwise be prevented. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">So what can you do about it? You have errors and errors are bad. Errors occur in a few different places.</span></p>
<ul>
<li>
<p>Accessing list views that contain too many items</p>
</li>
<li>
<p>Attempting to perform privileged operations (adding a column, creating an index, adding content types)</p>
</li>
<li>
<p>Custom code that accesses a large list</p>
</li>
</ul>
<p><span style="font-family:Calibri;"><span style="font-size:medium;">You can configure views to filter on indexed columns or move items into folders so there are less than 5,000 items in the root of any one folder or the root of a list. One example view is a my documents view. This is an easy view to configure because it uses system metadata that will always be set for every item. In this view you filter by Modified By and/or the Created By columns. To create this view in the filters section of the settings for a view select the Modified By column and set the value to [ME] and then set a second filter with OR on the Created By column with the value also set to [ME]. The Created By column should be used as well as Modified By when multiple users edit the same documents. Modified By is not a multiple user column so this view will not necessarily show all of the documents a user has ever modified. In this example both columns should be indexed because it is an OR operation.&nbsp; </span></span></p>
<p><span style="font-family:Calibri;font-size:medium;">You should also activate the metadata navigation site feature. Just activating the feature will cause list view issues to go away because fallback will kick in and return the most recent results rather than throwing a list view threshold exception. It is also a very useful feature for filtering items in a list so consider configuring it so users can use it. To activate the metadata navigation feature go to site settings for a particular site, go to manage site features, and activate the metadata navigation feature. You can then go to the list or library settings for a large list and click on the metadata navigation settings link. Columns that can be used as hierarchies and key filters will be available. Once you add these columns for metadata navigation indexes will automatically be created. If a list is already over the list view threshold this operation will be blocked so an administrator must perform the action or a daily time window should be configured so the operation can be performed in low usage hours.</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/2%20-%20metadata%20nav.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/2-_2D00_-metadata-nav.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/2%20-%20metadata%20nav.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/2-_2D00_-metadata-nav.png" border="0" /></a></p>
<p><span style="font-family:Calibri;font-size:medium;">Next you can configure a daily time window so privileged operations can be performed when the farm has low usage. A daily time window can be configured per web application in Central Administration. When users receive a list view exception they will be notified that they can perform the operation during the time window. If user load is light from 8:00pm-1:00am then you can specify a time window for that time frame. This allows users to perform operations such as adding columns and content types to large lists and you get to control the time frame when users can perform these operations. </span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/3%20-%20Daily%20time%20window.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/3-_2D00_-Daily-time-window.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/3%20-%20Daily%20time%20window.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/3-_2D00_-Daily-time-window.png" border="0" /></a></p>
<p><span style="font-family:Calibri;font-size:medium;">For custom code there are a few general guidelines to follow. Use indexes to filter SPQueries to amounts less than the list view threshold. For example if you are using an SPQuery to find a specific item in a list based on a particular column make sure it is indexed. If there is the possibility that an SPQuery may return more results than the list view then the content iterator class should be used to work through the content without hitting the list view threshold. This is especially important if you are doing operations on all of the content in a list or all of the content in a site or site collection. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Here is an example of performing an SPQuery to get all items in a list based on a non-indexed field. Of course this is a bad idea on a large list and this design really should not even be considered, but here is an example of how you might do it:</span></p>
<p>SPQuery query = new SPQuery();<br /> query.Query = &quot;&lt;Where&gt;&lt;Eq&gt;&lt;FieldRef Name=\&quot;MyUnindexedField\&quot;/&gt;&lt;Value Type=\&quot;Text\&quot;&gt;FieldValue&lt;/Value&gt;&lt;/Eq&gt;&lt;/Where&gt;&quot;;<br /> SPListItemCollection items = list.GetItems(query);<br /> // Do what you need with the collection of items<br /> ...</p>
<p><span style="font-family:Calibri;font-size:medium;">Not only is this querying on an unindexed field, it is not limiting the results.&nbsp; So on a large list, this query will be blocked because the field is not indexed and too many results may be returned.</span></p>
<p><b><span style="font-family:Calibri;font-size:medium;">Here is an example using the content iterator:</span></b></p>
<p><span style="font-family:Calibri;font-size:medium;">If you can add an index on MyUnindexedField, then you can use NVP (Name Value Pair) paging on that index: </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Content Iterator Example</span></p>
<p>SPQuery query = new SPQuery();<br /> query.Query = &quot;&lt;Where&gt;&lt;Eq&gt;&lt;FieldRef Name=\&quot;MyIndexedField\&quot;/&gt;&lt;Value Type=\&quot;Text\&quot;&gt;FieldValue&lt;/Value&gt;&lt;/Eq&gt;&lt;/Where&gt;&quot; + ContentIterator.ItemEnumerationOrderByNVPField;<span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p>ContentIterator ci = new ContentIterator();<br /> ci.ProcessItemsInList(query,<br /> &nbsp;&nbsp;&nbsp; delegate(SPListItem item)<br /> &nbsp;&nbsp;&nbsp; {<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Do what you need with each item<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ...<br /> &nbsp;&nbsp;&nbsp; },<br /> &nbsp;&nbsp;&nbsp; delegate(SPListItem item, Exception e)<br /> &nbsp;&nbsp;&nbsp; {<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Handle an exception that was thrown while iterating<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ...<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // return true for ContentIterator to rethrow the exception<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; return true;<br /> &nbsp;&nbsp;&nbsp; });</p>
<p><span style="font-family:Calibri;font-size:medium;">In a worst case scenario you may need to temporarily raise the list view threshold. Rather than doing this for an entire web application, you can disable the limit for a single list until issues can be resolved. This is not recommended, but there may be specific cases that this may be necessary. SPList objects have an EnableThrottling setting that can be set to false to prevent operations from being blocked by the list view threshold. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Now you may have not have even upgraded yet and are wondering what you can do before upgrade. Here are a few ideas:</span></p>
<ul>
<li>
<p>Run the pre upgrade checker to identify large lists (lists with more than 5,000 items)</p>
</li>
<li>
<p>Minimize large list upgrade issues by:</p>
<ul>
<li>
<p>Filtering list views to amounts less than 5,000 items using an indexed column</p>
</li>
<li>
<p>Organizing content into folders that contain less than 5,000 items (this is not necessary if views and web parts are filtered properly)</p>
</li>
<li>
<p>Checking web parts and other custom code that query lists to ensure that they do not perform operations that will affect more items than the list view threshold&nbsp;</p>
</li>
</ul>
</li>
</ul>
<p><span style="font-family:Calibri;"><span style="font-size:medium;">In conclusion the list view threshold is your friend. It will help you identify poor performing operations and help protect performance for all users. Don&rsquo;t change the list view threshold, with proper planning you can minimize list view exceptions and improve the performance of your farm. And remember, friends don&rsquo;t let friends run unbounded queries. &nbsp;</span></span></p>
<p><span style="font-family:Calibri;font-size:medium;">Quentin Christensen, Program Manager, Sultan of Scale</span></p>
<p><span style="font-family:Times New Roman;font-size:medium;"> </span></p>]]></content:encoded>
    </item>
    <item>
      <title>The Pit of Success</title>
      <link>https://docs.microsoft.com/archive/blogs/quentin/the-pit-of-success</link>
      <pubDate>Thu, 10 Jul 2014 06:30:00 GMT</pubDate>
      <dc:creator><![CDATA[Quentin Christensen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/quentin/2014/07/10/the-pit-of-success/</guid>
      <description><![CDATA[Have you ever felt stressed and overwhelmed? Was what you needed to get done too hard, the...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family:Calibri;font-size:medium;">Have you ever felt stressed and overwhelmed? Was what you needed to get done too hard, the challenges beating down on you over days and weeks like The Ring weighing down Frodo to the depths of despair in The Lord of the Rings? </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Frodo went through the Pit of Success. He overcame impossible challenges, discovered new abilities and strength, and saved the world. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">I did it too. I overcame challenges, developed new skills, and saved the world. After the credits from the SharePoint 2013 and Office 365 release Nick Fury even asked me to join S.H.I.E.L.D. I had to turn him down though, he said Emperor of eDiscovery did not have enough &ldquo;pop&rdquo; as a superhero name so I would need to change it. I obviously refused, that was just too far. Plus being in The Avengers I wouldn&rsquo;t have time to build stuff and talk about it with you guys. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">But enough about me. Let&rsquo;s talk about you. The important thing is you can do the same thing. I can&rsquo;t guarantee Nick Fury will try to recruit you, but the rest you can do. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">You are in your groove, getting things done. It&rsquo;s easy, you are great at your job. Then you start to get a little bored. Your boss sees your great work and that you are ready for more. &ldquo;Fantastic&rdquo;, she says, &ldquo;please take on the new executive high priority project: empower and streamline the entire organization with disruptive innovation and synergy.&rdquo; <b>That sounds hard.</b> You are excited, but you start working on it. Tensions are high. You are stressed. You feel like a failure. How will you ever deliver this project successfully? </span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;">This was me just a few months ago. And now I see it happening again, I am leaving that comfort zone I just got to and entering the Pit of Success. &nbsp;</span></span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/The%20Pit.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/The-Pit.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/02/65/The%20Pit.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-65/The-Pit.png" border="0" /></a></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;"><b>Things are hard because you are in the Pit of Success. </b>It is painful, but this is the best opportunity to learn. Put new tools in your toolbox by trying out new ideas and listening to others. Get coaching from your manager and a mentor. You will <b>internalize new ideas and strategies</b>. Things will start to get better as you start to get on top of things because you have new skills. Then you come out of the pit, you feel successful and capable again. </span></span></p>
<p><span style="font-family:Calibri;font-size:medium;">Congratulations, you just went into the Pit of Success and came out with a new <b>higher level of ability</b>. You can take on bigger tasks. You have levelled up on your career path. It seemed impossible, but greatness is forged when times are hard. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">1. Don&rsquo;t be afraid to go into the pit. To move up, you must first move down. Just do it. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">2. Your career success depends on going into the pit. That is where your greatest growth will occur.</span></p>
<p><span style="font-family:Calibri;font-size:medium;">3. Avoidance of new skills will prevent your acceleration out of the pit to a higher level of ability. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">When you are in the pit it is hard, but it is also worth it. Recognize when you are in the pit, build those new skills, and seek out help so you can succeed. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Quentin Christensen, Program Manager, Emperor of eDiscovery, turned down joining S.H.I.E.L.D. and The Avengers. </span></p>
<p></p>]]></content:encoded>
    </item>
  </channel>
</rss>