<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SharePoint.Sharon &#187; articles</title>
	<atom:link href="http://www.sharepointsharon.com/archive/announcements/articles/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sharepointsharon.com</link>
	<description>news and tips about SharePoint and friends</description>
	<lastBuildDate>Tue, 07 Feb 2012 12:54:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>InfoPath 2010 &#8211; Save Early, Save Often</title>
		<link>http://www.sharepointsharon.com/2011/12/infopath-2010-save/</link>
		<comments>http://www.sharepointsharon.com/2011/12/infopath-2010-save/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 16:51:34 +0000</pubDate>
		<dc:creator>Sharon Richardson</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[solutions]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[infopath]]></category>

		<guid isPermaLink="false">http://www.sharepointsharon.com/?p=2834</guid>
		<description><![CDATA[This post is part of a series of InfoPath tips and tricks that use InfoPath and SharePoint 2010 &#8216;out of the box&#8217;, no custom coding required. All the articles can be found on the Forms &#38; InfoPath page under SharePoint 2010 Resources. As with all other posts, this is not a complete tutorial and assumes [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.sharepointsharon.com%2F2011%2F12%2Finfopath-2010-save%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.sharepointsharon.com%2F2011%2F12%2Finfopath-2010-save%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>This post is part of a series of InfoPath tips and tricks that use InfoPath and SharePoint 2010 &#8216;out of the box&#8217;, no custom coding required. All the articles can be found on the <a href="http://www.sharepointsharon.com/resources/handbook-2010/features/forms-and-infopath/">Forms &amp; InfoPath</a> page under SharePoint 2010 Resources. As with all other posts, this is not a complete tutorial and assumes prior knowledge of InfoPath.</p>
<p>InfoPath 2010 has much better support for browser forms and that means you don&#8217;t need InfoPath to be installed everywhere to fill out the forms. The downside is the browser. It&#8217;s not always the most reliable puppy and it doesn&#8217;t come with the built-in &#8216;autosave&#8217; that peope have become used to with Office applications. It doesn&#8217;t come with spell checking either if you&#8217;re using IE but that&#8217;s a separate IE related gripe.</p>
<p>By default, InfoPath forms being filled out using just the browser will include three options for the user whilst they are filling out the form: Save (saves the form), Close (closes the form, will prompt the user if the form hasn&#8217;t been saved), and Submit (saves and closes the form).</p>
<p style="text-align: center;"><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/12/infopathsave-1a.jpg"><img class="aligncenter size-full wp-image-2917" title="InfoPath default save options" src="http://www.sharepointsharon.com/wp-content/uploads/2011/12/infopathsave-1a.jpg" alt="InfoPath default save options" width="470" height="132" /></a></p>
<p>Whilst you can leave these buttons showing on the form and let the person filling in the form do manual saves, the alternative approach is make the process part of the form instead.  This can have a number of different benefits, such as including automatic saves periodically to avoid losing data.</p>
<h3>Data Connections</h3>
<p>To be able to submit a form, you need at least one data connection configured to submit data. If you haven&#8217;t already created one, it will be part of the process when you go to publish your form design.  This post assumes you already have sufficient knowledge of InfoPath to have figured out how to create data connections and publish your form design.</p>
<h3>Form Options</h3>
<p>The form options control what buttons are visible by default when a user opens the form. You can configure the settings for the web browser and for the InfoPath Form Filler (client application alternative to the web browser).  They are accessed by going to the File menu and clicking on the Form Options button.</p>
<p style="text-align: center;"><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/12/infopathsave-2.jpg"><img class="aligncenter size-full wp-image-2903" title="InfoPath Form Options" src="http://www.sharepointsharon.com/wp-content/uploads/2011/12/infopathsave-2.jpg" alt="InfoPath Form Options" width="536" height="374" /></a></p>
<p>The options should be self-explanatory. For simple forms, I remove the commit options and often the Views section too, controlling the form through its design.</p>
<h3>Submit Options</h3>
<p>Also in the File menu of InfoPath, you can configure the Submit Options for the form, i.e. what happens when a user clicks the standard Submit button.</p>
<p><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/12/infopathsave-5.jpg"><img class="aligncenter size-full wp-image-2906" title="InfoPath Submit Options" src="http://www.sharepointsharon.com/wp-content/uploads/2011/12/infopathsave-5.jpg" alt="InfoPath Submit Options" width="445" height="515" /></a></p>
<p>Your default submit data connection should be selected and in many forms, there will be only one. Click the Advanced button and make sure that &#8216;After submit:&#8217; is set to close the form. You can also choose to configure the message after the Submit button is clicked.  An alternative is to control where the user ends up after clicking the submit button, for example landing on a page that confirms the form was submitted and provides next steps. That is all done within SharePoint and not for this post&#8230;</p>
<p>One important note about your default data connection. If the form will be edited more than once, the data connection used for Submit Options must be configured to overwrite when it is saved, otherwise the form will error and not be saved more than once.  It is also important that you have an automatic file name convention in use, to ensure all forms have a unique name and do not overwrite each other.</p>
<p>So with a data connection or two, the form options and submit options configured, we&#8217;ll look at three different scenarios for building automatic saves in to your form.</p>
<h3>Scenario 1: Submit button in the form.</h3>
<p>This is the simplest scenario. Add a button to the end of the form and configure it as a Submit button, i.e. it will behave exactly the same as the Submit button we just removed from the Form Options.  You would typically add this button to the end of your form as the final step -  to submit and close the form.</p>
<p style="text-align: center;"><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/12/infopathsave-3.jpg"><img class="aligncenter size-full wp-image-2904" title="InfoPath Submit Action" src="http://www.sharepointsharon.com/wp-content/uploads/2011/12/infopathsave-3.jpg" alt="InfoPath Submit Action" width="629" height="259" /></a></p>
<p>In the image above, I have added a button to the form and set its properties. Note that the button Action is Submit. This action will follow the Submit Options configured in the File menu.  And this is one of the areas where InfoPath can get confusing. You can see the Submit Options button on this button dialogue box. It would be easy to assume that you are configuring the options just for this button. But you aren&#8217;t. It takes you straight to the same Submit Options you can access via the File menu. Making a change here will affect all buttons configured to use the Submit action (e.g. if you are still displaying Submit on the toolbar configured under File Options).</p>
<p>Also, to add to the confusion, you can change the button label.  A button using the Submit action may not be called Submit. A button called Submit may not be using the Submit action&#8230;</p>
<h3>Scenario 2:  Save button in the form.</h3>
<p>In this scenario, the initial steps are the same &#8211; add a button to the form. However, instead of configuring the button to use the &#8216;Submit&#8217; action, we will configure the action to be &#8216;Rules and Custom Code&#8217; instead.  This allows us to build up a set of rules to control what actions occur. The easiest of which is to just save the form but not close it &#8211; this enables you to create periodic automatic saves whilst the form is still being edited. Recommended for long forms or forms with sections containing large paragraphs of text.</p>
<p>To demonstrate, we will use a sample from a previous blog post: <a href="http://www.sharepointsharon.com/2011/11/infopath-2010-one-form-multiple-views/">One form, multiple views.</a> In that post, we created a picture button and used it to switch views when clicked. This is a good way of breaking down a large form into multiple pages (views).</p>
<p>A simple addition, to build in automatic saves, is to add to the rules for our &#8216;Next&#8217; button:</p>
<ul>
<li>Click on the button or image you are using to switch views</li>
<li>In the Manage Rules task pane, you should already have one rule configured &#8211; an action to switch view. We are simply going to add another action.</li>
<li>Next to &#8216;Run these actions&#8217; click Add and select <strong>Submit data</strong>.</li>
<li>In the Rule Details dialogue box, for the Data connection, make sure you have selected the correct data connection (if you have more than one).</li>
<li>Finally, you need this action to run first, before the form switches view. So move the action up above your existing &#8216;Switch to view&#8217; action.</li>
<li>And that&#8217;s it. The form will now be saved when the user clicks the button/image to switch to the next view.</li>
</ul>
<p style="text-align: center;"><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/12/infopathsave-4.jpg"><img class="aligncenter size-large wp-image-2911" title="InfoPath Submit as a rule" src="http://www.sharepointsharon.com/wp-content/uploads/2011/12/infopathsave-4-1024x481.jpg" alt="InfoPath Submit as a rule" width="614" height="289" /></a></p>
<p>In the image above, you can see the Rule Details for the &#8216;Next&#8217; image button on my form.The rule to switch view will first submit the form (save it) and then switch to a different view.</p>
<p>This is another area of InfoPath that can cause confusion. Whilst the action is called &#8216;Submit data&#8217;, it does not behave in the same way as the &#8216;Submit&#8217; action used in Scenaro 1. The default Submit Options are not applied. It simply submits &#8211; saves &#8211; the form using the selected data connection. If you also wanted to close the form using rules, there is a separate action to close the form.  This approach is very useful for more advanced forms, where you can build in validation checks and status updates as part of the submit process.</p>
<h3>Scenario 3: Save automatically to capture key data</h3>
<p>The third scenario we will cover in this blog post is an expansion to a previous blog post: <a href="http://www.sharepointsharon.com/2011/11/infopath-2010-reference-filename/">Assigning a unique reference number</a>. In that post, we use a data connection to retrieve data and automatically calculate a reference number for the form. As one quick commenter spotted, the risk with the method is that two forms are opened at the same time, each will calculate the same reference number. Here&#8217;s how to prevent that happening.</p>
<p>To create a unique reference number when a new form is filled out, instead of putting the calculation straight into the refNo field as its default value, we will use a rule to calculate the field&#8217;s value and then immediately save the form. We will also use a data connection configured to not overwrite files as an additional precaution.</p>
<p>To do this, you need to create a second data connection to submit data to the SharePoint library. This data connection must be absolutely identical to your default submit data connection with one exception &#8211; uncheck the box to prevent files being overwritten.</p>
<p style="text-align: center;"><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/12/infopathsave-61.jpg"><img class="aligncenter size-full wp-image-2913" title="InfoPath data connection properties" src="http://www.sharepointsharon.com/wp-content/uploads/2011/12/infopathsave-61.jpg" alt="InfoPath data connection properties" width="704" height="517" /></a></p>
<p>In the image above, you can see the three data connections I am using for this example. Retrieve ID is a retrieve data connection, to get the ID values from the SharePoint list used to calculate the next reference number.  SharePoint Library Submit is my default submit connection which is configured to allow overwrites &#8211; i.e. it can be used repeatedly throughout the form. The &#8216;Save after assigning reference number&#8217; submit data connection will only be used once. It has been configured to not allow overwrites so if two files try to save at the same time, one will suceed and one will display an error message. It would be a rare occurrence but eliminates the risk of one form overwriting another or being given the same reference number.</p>
<p>With your second data connection ready, the next step is to create the process for calculating a reference number and saving the form.</p>
<ul>
<li>Click on the refNo control in your form and clear its default value or change the default value to text such as &#8216;TBA&#8217;.  Leave the control on the form set to read only.</li>
<li>Add a button next to your refNo field. In it&#8217;s properties, set the action to &#8216;Rules and Custom Code&#8217; and set the label to something like &#8216;Click to allocate reference number&#8217;</li>
<li>Click on the button and, if it&#8217;s not already displaying, open the Manage Rules taskpane</li>
<li>Click New and select <strong>Action</strong>. Give the rule a name such as &#8216;Assign reference number&#8217;</li>
<li>It is important that clicking the button will only calculate the reference number once. So we need a condition. Set the condition that the rule will run when the refNo field is equal to whatever you set the default value to.</li>
<li>Next to &#8216;Run these actions&#8217;, click Add and select <strong>Query for data</strong></li>
<li>In the Rule Details dialogue box, select your Retrieve ID data connection. This will ensure the latest ID in use is retrieved.</li>
<li>Next to &#8216;Run these actions:&#8217;, click <strong>Add</strong> again and select <strong>Set a field&#8217;s value</strong></li>
<li>In the Rule Details dialogue box, select the field refNo and next to the Value box, click the <strong><em>fx</em></strong> button. Enter the same calculation you used for the original post to calculate the unique reference number. Click OK to complete</li>
<li>Next to &#8216;Run these actions:&#8217; click <strong>Add</strong> again, this time select <strong>Submit data</strong></li>
<li>In the Rule Details dialogue box, make sure your &#8216;Save after assigining a reference number&#8217; submit data connection is used. This one will ensure that the form does not overwrite another. Click OK</li>
<li>And that&#8217;s it*. We now get the user to initiate the calculation for assigning the unique reference number and automatically save the form as soon as the calculation complete.</li>
</ul>
<p style="text-align: center;"><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/12/infopathsave-62.jpg"><img class="aligncenter size-large wp-image-2914" title="InfoPath save after query" src="http://www.sharepointsharon.com/wp-content/uploads/2011/12/infopathsave-62-1024x440.jpg" alt="InfoPath save after query" width="614" height="264" /></a></p>
<p>In the image above, you can see the three actions used to query the information needed for the reference number, setting the refNo field value by calculation &#8211; adding 1 to the largest ID retrieved, then immediately saving using our special data connection that will not overwrite an existing form.</p>
<p>*An additional tip. To make sure that the user clicks the button to assign a reference number, you could add a validation rule to the next field and pop up a message if the refNo is still set to &#8216;TBA&#8217;. More useful, I disable all other save options and add a note to the form (you can see an example in the image above). The Next button has been configured to save and then switch views (configured for Scenario 2). In Scenario 2, we left the condition as empty, save and switch views whenever the button is clicked. Instead, add the reverse condition to the &#8216;Assign a reference&#8217; button.  The Next button will only work if the refNo field is <strong>not</strong> equal to TBA.</p>
<h3>Wrap-up</h3>
<p>So there you have it. This is one of the most important tips to consider when using browser-based InfoPath forms. Save early. Save often.  Hopefully this post has also shown the value and power in using rules to control how and when that happens within your form.</p>
<p>A final tip. We could build automatic save points throughout the form without requiring the user to do anything. For example, in the sample form used for this post, we could automatically save when the user selects a product.  The benefit of getting the user to click something like a button is setting expectations. When buttons are clicked, we expect an action to complete immediately but don&#8217;t worry if there is a bit of a delay. However, if rules are triggered automatically in the background as we navigate through fields on a form, users may worry if one field causes a delay and may start trying to refresh the browser or other actions that won&#8217;t help them.  Even if you don&#8217;t need the button, it&#8217;s a useful approach to design for web forms that may be accessed over unreliable network connections.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsharon.com/2011/12/infopath-2010-save/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>InfoPath 2010 &#8211; one form, multiple views</title>
		<link>http://www.sharepointsharon.com/2011/11/infopath-2010-one-form-multiple-views/</link>
		<comments>http://www.sharepointsharon.com/2011/11/infopath-2010-one-form-multiple-views/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 15:45:45 +0000</pubDate>
		<dc:creator>Sharon Richardson</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[solutions]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[infopath]]></category>

		<guid isPermaLink="false">http://www.sharepointsharon.com/?p=2837</guid>
		<description><![CDATA[This is part of a series of posts about some InfoPath tips and tricks. It’s not an introductory tutorial and will assume that you have some knowledge of InfoPath.  All solutions will use InfoPath 2010 with SharePoint 2010. A really useful feature in InfoPath is the ability to create multiple views within a single form.  [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.sharepointsharon.com%2F2011%2F11%2Finfopath-2010-one-form-multiple-views%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.sharepointsharon.com%2F2011%2F11%2Finfopath-2010-one-form-multiple-views%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>This is part of a series of posts about some InfoPath tips and tricks. It’s not an introductory tutorial and will assume that you have some knowledge of InfoPath.  All solutions will use InfoPath 2010 with SharePoint 2010.</p>
<p>A really useful feature in InfoPath is the ability to create multiple views within a single form.  These can be used for two key benefits:</p>
<ul>
<li>Display a different view when the form is opened &#8211; useful for automating processes e.g. after a new form has been submitted, a reviewer opens the same form but sees a Reviewers view with different fields available to edit.</li>
<li>Break a form into smaller chunks by switching views whilst the form is open &#8211; useful for easier viewing amongst other things&#8230;</li>
</ul>
<h3>Create a new view</h3>
<p style="text-align: center;"><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-newview.jpg"><img class="aligncenter size-full wp-image-2838" title="InfoPath View menu" src="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-newview.jpg" alt="InfoPath View menu" width="256" height="119" /></a></p>
<p>With a form open in InfoPath 2010 Designer, click on the Page Design tab in the menu. On the left of the menu is a Views section. Here you can set the properties for the current view, delete it and create a New View.  (Page Setup just opens the Properties with the Page Setup tab instead of the General tab).</p>
<p>If you want to create a new view, click New View&#8230;</p>
<p>Within Properties for the current view, there are some useful settings worth considering.</p>
<p><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-viewproperties.jpg"><img class="aligncenter size-full wp-image-2844" title="InfoPath Form View properties" src="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-viewproperties.jpg" alt="InfoPath Form View properties" width="373" height="179" /></a></p>
<p>On the General tab, a box is checked &#8216;Show on the View menu when filling out this form&#8217;. If you want to control what view a person can see during the process (e.g. when filling out a new form, you don&#8217;t want people to also complete the Reviewer&#8217;s section) then uncheck this box.  If it is checked, it will be visible in a dropdown menu (unless the View menu itself is disabled &#8211; more on that in a separate post).</p>
<p>Under Print Settings, you can control which view appears when a user goes to print the form. This is a great little feature. Create a dedicated &#8216;Print&#8217; view, and then for all other views, configure the Print Settings to open the Print view.  For the Print view itself, under General set it to be Read-only.</p>
<p>Finally, make sure you pick carefully which form is to be the default view. In the absence of any criteria saying otherwise, this will be the view that opens.  In most cases, this should be the &#8216;New Form&#8217; view, since it will be the view that opens when someone goes to create a new form.</p>
<h3>Display a different view when the form is opened</h3>
<p>You should want the &#8216;new form&#8217; view to be displayed when a new form is created. But once it has been saved and submitted to a library in SharePoint, you may want a different view to then be displayed for editing or for specific stages of a process.</p>
<p>To do this, you need a criteria to determine what stage the form is at.  I tend to use a &#8216;formStatus&#8217; field that is updated based on what the user does with the form. The value of the formStatus field then determines which view is opened. Here&#8217;s how:</p>
<p><strong>Step 1: Create and manage a formStatus field</strong></p>
<p>Create a field called <strong>formStatus</strong>, of data type Text (note: this field doesn&#8217;t need to be added to the form, it can be created direct in the Fields list). Set the default value for the field as <strong>New</strong>.</p>
<p>Add a Button control to your page. For its properties, make the label &#8216;Submit&#8230;&#8217; (or similar), leave the Action set to Rules and Custom Code and click OK.</p>
<p>Single click on the button and the Rules taskpane should appear on the right of the page. If it doesn&#8217;t, in the Home menu, click on Manage Rules (you must have the button selected to create a rule for it).</p>
<ul>
<li>In the Rules task pane, click New and select Action</li>
<li>Give the rule a title (Details), e.g. &#8216;Update Form Status to Submitted&#8217;</li>
<li>You don&#8217;t need to set a condition, the rule will run when the button is clicked</li>
<li>Next to actions, click Add and select &#8216;Set a field&#8217;s value&#8217;</li>
<li>In the Rule Details dialogue box, for the field, select your formStatus field, and for the value, type &#8216;Submitted&#8217; and click OK</li>
</ul>
<p style="text-align: center;"><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-buttonsubmit.jpg"><img class="aligncenter size-full wp-image-2849" title="InfoPath design to update a field" src="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-buttonsubmit.jpg" alt="InfoPath design to update a field" width="593" height="239" /></a></p>
<p>Now, when a user creates a new form, it will start with a formStatus of New. When the user clicks to submit the form, the formStatus will be updated to Submitted.</p>
<p><strong>Step 2: Configure the form to switch views when it is opened</strong></p>
<p>We can now control which view of a form is opened based on the formStatus field. Note: this requires having at least two views already configured, for example: New Form (Default) and Review Form with additional fields for a reviewer to complete.</p>
<p>In InfoPath, click on the Data tab to display the Data Menu. To the far right of the menu is a section called Rules. Click on Form Load. This is a special rule  for controlling what happens when the form is opened (or &#8216;loaded&#8217; into memory, hence the geeky label).</p>
<ul>
<li>In the Rules task pane, make sure the title shows as Form Load. Click the New button and select Action (its the only option available to use)</li>
<li>Provide a title (Details for) the rule, call it something like &#8216;Open Review View for Submitted forms&#8217;</li>
<li>Set the condition to be where formStatus is equal to Subitted.</li>
<li>Next to Run these actions, click Add and select Switch views.</li>
<li>In the Rule Details dialogue box, select the view you want to be opened when the formStatus is Submitted. Click OK</li>
</ul>
<p style="text-align: center;"><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/11/InfoPath-formload.jpg"><img class="aligncenter size-full wp-image-2845" title="InfoPath Form Load Rule" src="http://www.sharepointsharon.com/wp-content/uploads/2011/11/InfoPath-formload.jpg" alt="InfoPath Form Load Rule" width="536" height="472" /></a></p>
<p>In the image above, you can see the rules I have created for the Form Load. For completeness, I recommend creating a rule to open the New Form view. Yes this will be opened by default, but I like to cover all possibilities. As long as you manage that formStatus field, you can be certain which form view will open at any time during the process.</p>
<h3>Switch views whilst the form is still open</h3>
<p>As well as controlling which view is displayed when the form is opened, we can switch views whilst still in the form. This is recommended if you have a large form &#8211; break it into chunks. You can do more than just switch views at each stage&#8230;</p>
<p>If you choose to have the views displayed in the View menu, the user can pick any view at any time. You might not want to let them do that. A more manageable method is to make switching views part of filling out the form. At the end of each view, add a button to proceed to the next view (and go back to the previous one if you want to).</p>
<p><strong>Step 1: Add a button to your form</strong></p>
<p>On the Home menu, in the Controls box add a Button  control or, if you want to make it even more obvious, add a Picture Button control and use arrows instead.</p>
<p style="text-align: center;"><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-viewbutton.jpg"><img class="aligncenter size-full wp-image-2847" title="InfoPath with a picture button" src="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-viewbutton.jpg" alt="InfoPath with a picture button" width="497" height="168" /></a></p>
<p>In the image above, I have added a Picture Button control and selected my home made Arrow picture. See end of the post for a tip on creating your own.</p>
<p><strong>Step 2: Add a rule for when the button (or Picture button) is clicked</strong></p>
<p>Make sure your button is selected (has the square handles displayed around it) and open the Rules taskpane if it isn&#8217;t currently showing (on the Home menu, click Manage Rules)</p>
<p>In the Rules taskpane</p>
<ul>
<li>Click the New button and select Action</li>
<li>Provide a title (Details for) and give is a useful name, e.g. Switch to View 2</li>
<li>You don&#8217;t need to set a condition, you want this rule to run whenever the button is clicked.</li>
<li>Next to Run these actions, click Add and select Switch Views</li>
<li>In the Rule Details dialogue box, select the view you want to switch to and click OK</li>
</ul>
<p>And hey presto, we can now switch views as part of completing the form. The image belows shows my form in Design mode with the rule configured.</p>
<p style="text-align: center;"><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-buttondesign.jpg"><img class="aligncenter size-full wp-image-2848" title="InfoPath Button with Rule" src="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-buttondesign.jpg" alt="InfoPath Button with Rule" width="587" height="242" /></a></p>
<p>&#8212;<br />
How to create that arrow? If you want a simple DIY cheat to create images for Picture buttons, open PowerPoint.  Within PowerPoint, create the image you want. Then right click and choose Save as Picture&#8230;</p>
<p style="text-align: center;"><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-picturebutton.jpg"><img class="aligncenter size-full wp-image-2850" title="Creating a picture using PowerPoint" src="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-picturebutton.jpg" alt="Creating a picture using PowerPoint" width="471" height="363" /></a></p>
<p>In the image above, in PowerPoint I simply inserted an arrow from the Shapes available in the Insert menu (Illustrations section), added a bit of text, removed the chunky line around it, then right-clicked and saved as a picture.  Then in InfoPath, open the properties of your Picture button and select your image.</p>
<p>And that&#8217;s all for now. Some tips for using views in forms.</p>
<p>All good forms should have more than one view. As a simple rule of thumb, if you only need one view, you don&#8217;t need a Forms library, you should just use a standard SharePoint list and modify the form that comes with the list (it&#8217;s a ready-made InfoPath form) which is far quicker and easier to do.</p>
<p><a href="http://www.sharepointsharon.com/resources/handbook-2010/features/forms-and-infopath/">Click Here</a> to view other InfoPath posts in this series.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsharon.com/2011/11/infopath-2010-one-form-multiple-views/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>InfoPath 2010 &#8211; assigning a unique reference</title>
		<link>http://www.sharepointsharon.com/2011/11/infopath-2010-reference-filename/</link>
		<comments>http://www.sharepointsharon.com/2011/11/infopath-2010-reference-filename/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 11:58:08 +0000</pubDate>
		<dc:creator>Sharon Richardson</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[infopath]]></category>

		<guid isPermaLink="false">http://www.sharepointsharon.com/?p=2808</guid>
		<description><![CDATA[This is the first in a series of posts about some InfoPath tips and tricks that I&#8217;ve been using over the past 12 months. It&#8217;s not an introductory tutorial and will assume that you have some knowledge of InfoPath.  All solutions will use InfoPath 2010 with SharePoint 2010. This post will show how to create [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.sharepointsharon.com%2F2011%2F11%2Finfopath-2010-reference-filename%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.sharepointsharon.com%2F2011%2F11%2Finfopath-2010-reference-filename%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-feature1.jpg"><img class="aligncenter size-medium wp-image-2824" title="InfoPath form with unique reference number" src="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-feature1-300x120.jpg" alt="InfoPath form with unique reference number" width="300" height="120" /></a></p>
<p>This is the first in a series of posts about some InfoPath tips and tricks that I&#8217;ve been using over the past 12 months. It&#8217;s not an introductory tutorial and will assume that you have some knowledge of InfoPath.  All solutions will use InfoPath 2010 with SharePoint 2010.</p>
<p>This post will show how to create a unique reference number in the form and how to then use that number automatically as part of the filename.</p>
<p>A big improvement with InfoPath 2010 and SharePoint 2010 is the ability to not just submit the form to SharePoint but also to automatically configure a filename as part of the process. If you also assign a unique reference number, you can ensure that files are not automatically overwritten because they share the same name or fail to submit because you configured to prevent overwriting files.</p>
<p>To do this, you need to create field that contains a unique reference number and include it as part of the formula for generating a filename.</p>
<h2>Create the Reference Number</h2>
<p>To create the reference number, we will use the ID column from the SharePoint Forms Library where these forms will be stored.</p>
<h3>Preparation</h3>
<ul>
<li>Within the SharePoint site where you want the forms to be stored, create a Forms Library.</li>
<li>Open InfoPath 2010 Designer and create a new form using the template SharePoint Form Library</li>
<li>Within the InfoPath form, add a Text Box control to your form, rename it &#8216;refNo&#8217;.  Add a note along the lines &#8216;The reference number will be automatically assigned when you submit this form&#8217;</li>
</ul>
<p>Done! The image at the start of this post shows the sample form I am using for this post.</p>
<h3>Step 1: Set up a data connection to receive data from SharePoint</h3>
<ul>
<li>Within InfoPath, open the Manage Data Connections dialogue box. Either click on Manage Data Connections at the bottom of the taskpane on the right of your page (if it&#8217;s open), or click on the Data tab in the ribbon at the top of the page, and then click on Data Connections.</li>
<li>In the Data Connections dialogue box, click the Add button</li>
<li>Follow the Data Connection Wizard:</li>
<ol>
<li>Select Create a new connection to <strong>Receive Data</strong> and click Next</li>
<li>Select the source of your data: <strong>SharePoint library</strong> or list and click Next</li>
<li>Enter the URL for the SharePoint site you created for your Form and click Next</li>
<li>Select the InfoPath forms library and click Next</li>
<li>In the Select fields box, ID will already be selected. Unless this connection is going to be used to retrieve other data from the library, click Next</li>
<li>Do <strong>not</strong> tick the box to store a copy of the data in the form template.</li>
<li>Enter a name for the connection, e.g. &#8216;Retrieve ID&#8217; and do check the box to automatically retrieve data when the form is opened. Click Finish and then close the data connections dialogue box</li>
</ol>
</ul>
<h3>Step 2: Configure the Reference Number field</h3>
<ul>
<li>Open the properties for the Text Box on the form bound to the refNo field</li>
<li>Next to the Default Value box, cick on the <strong><em>fx</em></strong> button.</li>
<li>In the Insert Fomula dialogue box, click Insert Function button. Select the &#8216;max&#8217; function and click OK.</li>
<li>In the Formula area you should now see <strong>max(<span style="text-decoration: underline;">double click to insert field</span>)</strong>. Double click to insert a field.</li>
<li>In the Select a Field or Group dialogue box, you need to change the Fields list from &#8216;Main&#8217; to &#8216;Retrieve ID (Secondary)</li>
<li>You then need to select the ID column, but make sure you pick from the dataFields, not queryFields. See image below</li>
</ul>
<p><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-calc.jpg"><img class="aligncenter size-medium wp-image-2814" title="InfoPath setting default value" src="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-calc-300x184.jpg" alt="InfoPath setting default value" width="300" height="184" /></a></p>
<ul>
<li>Your formula should now look like <strong>max(<span style="text-decoration: underline;">ID</span>)</strong>.  To make the reference number unique, we are going to add +1 to the formula, so that it retrieves the current largest ID in the SharePoint library and then adds 1. In otherwords, we are calculating the ID for this form before it has been submitted and has the ID number generated.</li>
<li>The complete formula should look as follows: <strong>max(ID)+1</strong><br />
If you want to start at a different number, add more than 1 to the ID, e.g. +100. If you want to include text in the reference, use the concat function.<strong><br />
</strong></li>
<li>Click OK.  Just below the Default Value field is a check box called &#8216;Refresh value when formula is recalculated. It is checkedby defualt. <strong>Uncheck the box</strong>. We do not want this field to refresh the calculation after the default value has been set.</li>
<li>Whilst still in the Text Box properties, click the Display tab and set the field to be Read Only to prevent users from accidentally changing the reference number.</li>
</ul>
<h2>Create the Filename and Publish to SharePoint</h2>
<p>There are two stages to complete when creating InfoPath forms for use in SharePoint libraries:</p>
<ul>
<li>Setup the Submit Options for the form, where you can specify what happens when completed forms are submitted, including automatically generating a filename.</li>
<li>Configure the Publish settings to publish this form template to the SharePoint library, including promoting fields into SharePoint columns.</li>
</ul>
<h3>Step 1: Set up a data connection to submit the form to SharePoint</h3>
<p>There are various places to start this process. You can either click on Manage Data connections whilst the form is open, or click on the File menu and click the button &#8216;Submit Options&#8217; that will take you through the same process.</p>
<ul>
<li>Open the Manage Data Connections dialogue box</li>
<li>In the Data Connections dialogue box, click Add.</li>
<li>Follow the Data Connection Wizard:</li>
<ol>
<li>Select Create a new connection to <strong>Submit data</strong> and click Next</li>
<li>Select to submit the data <strong>To a document library on a SharePoint site</strong> and click Next</li>
<li>Enter the URL to the document library you created during Preparation</li>
<li>For the Filename, click the <strong><em>fx</em></strong> button and create a formula to generate your filename.<br />
You can choose your own formula to autogenerate the filename, just make sure it includes the refNo field to ensure each form has a unique filename.  The image below shows my formular which will generate filename as &#8216;Feedback-NNN&#8217;, where NNN is the refNo.<br />
<a href="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-Filename.jpg"><img class="aligncenter size-medium wp-image-2815" title="InfoPath configuring filename" src="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-Filename-300x205.jpg" alt="InfoPath configuring filename" width="300" height="205" /></a></li>
<li>When you&#8217;ve finished click next, enter a name for your connection, e.g. Submit form to SharePoint, and click Finish</li>
</ol>
</ul>
<h3>Step 2: Configure the Publish settings</h3>
<ul>
<li>Click on the File tab in the InfoPath menu</li>
<li>Within the File menu, click the big Publish button. If you can&#8217;t see it, click on Publish in the navigation on the left. Do <strong>not</strong> click Quick Publish if it is visible, unless you have already completed this step.</li>
<li>In the Publish menu, click on the big SharePoint Server button.</li>
<li>Follow the Publishing Wizard:</li>
<ol>
<li>Enter the URL for the SharePoint site containing your Forms library and click Next</li>
<li>Assuming you want to, check the box to Enable this form to be filled out by using a browser (it&#8217;s checked by default) and check &#8216;Form Library&#8217; for what you want to create or modify. Click Next.</li>
<li>Select the button to Update the form template in an existing form library. And choose the same Form library that you used to retrieve the ID field. Click Next.</li>
<li>In the next screen, you can add fields from the form that will be promoted into corresponding columns in the SharePoint library. We&#8217;re not adding any as part of this example. Click Next. And then click Publish.</li>
<li>Assuming your form publishes successfully, click Close.</li>
</ol>
</ul>
<h2>Testing</h2>
<p>We&#8217;re now ready to test our form and check that it is creating a unique reference for each form and then using that reference in the filename.</p>
<ul>
<li>Go to your InfoPath library on your SharePoint site</li>
<li>Click the &#8216;Add document&#8217; link and create a new form.  Click the Submit button to save and close.</li>
<li>Repeat and create a second form.</li>
<li>Check the library to see if the filenames are showing correctly*. You can also re-open the forms and should see the reference number populated</li>
</ul>
<p>*<br />
The very first form in the library will have a reference number of NaN, because there currently are no IDs to calculate from. As soon as the library has at least one form, the calculation will work. This is important to remember. If you are creating these libraries for other users, make sure you leave one test form behind and only delete it once they have created at least one proper form.</p>
<p>Below shows my Form library with forms submitted, the first showing the NaN reference.</p>
<p><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-libraryfiles1.jpg"><img class="aligncenter size-full wp-image-2830" title="InfoPath forms library" src="http://www.sharepointsharon.com/wp-content/uploads/2011/11/infopath-libraryfiles1.jpg" alt="InfoPath forms library" width="431" height="132" /></a></p>
<p>Final note: If you&#8217;d be interested in attending a webinar to go through these steps, please drop a me line using the <a href="http://www.sharepointsharon.com/about/contact/">contact form</a>. The image used at the start just uses the contactenate function to add text the reference number.</p>
<p>Go to the <a href="http://www.sharepointsharon.com/resources/handbook-2010/features/forms-and-infopath/">InfoPath</a> section under Resources to view related InfoPath posts.</p>
<p>[Update] Well spotted in the comments. One potential gotcha with this approach is the risk of conflicts if two forms are open at the same time and neither have been saved &#8211; they will both have the same number.  How to automatically save forms in progress and avoid this gotcha (along with some others) will be covered in a later post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsharon.com/2011/11/infopath-2010-reference-filename/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>SharePoint for Records: Good, Bad, Ugly</title>
		<link>http://www.sharepointsharon.com/2011/10/sharepoint-for-records-management/</link>
		<comments>http://www.sharepointsharon.com/2011/10/sharepoint-for-records-management/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 14:43:56 +0000</pubDate>
		<dc:creator>Sharon Richardson</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[solutions]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[records]]></category>

		<guid isPermaLink="false">http://www.sharepointsharon.com/?p=2800</guid>
		<description><![CDATA[In October I presented at a Records Management event in London for Unicom. The title of my presentation was SharePoint and Records Management: The Good, Bad and Ugly. The slides are embedded below. Please note they never behave as well on the web as when presented. Especially so in this case, as I decided to [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.sharepointsharon.com%2F2011%2F10%2Fsharepoint-for-records-management%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.sharepointsharon.com%2F2011%2F10%2Fsharepoint-for-records-management%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>In October I presented at a Records Management event in London for <a href="http://www.unicom.co.uk">Unicom</a>. The title of my presentation was <strong>SharePoint and Records Management: The Good, Bad and Ugly</strong>. The slides are embedded below. Please note they never behave as well on the web as when presented. Especially so in this case, as I decided to make the slideshow behave like an app.</p>
<p id="__ss_9922607" style="text-align: center;"><object id="__sse9922607" width="425" height="355" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sprm-gbu-oct11-finalweb-111028071622-phpapp01&amp;stripped_title=sharepoint-and-records-management-good-bad-and-ugly&amp;userName=JoiningDots" /><param name="allowscriptaccess" value="always" /><param name="allowfullscreen" value="true" /><embed id="__sse9922607" width="425" height="355" type="application/x-shockwave-flash" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sprm-gbu-oct11-finalweb-111028071622-phpapp01&amp;stripped_title=sharepoint-and-records-management-good-bad-and-ugly&amp;userName=JoiningDots" allowFullScreen="true" allowScriptAccess="always" allowscriptaccess="always" allowfullscreen="true" /> </object></p>
<p>My slides were created to support the talk, not prop me up so don&#8217;t work well on their own. Here are some notes about what I said on the day:</p>
<h5>Disclaimer: it&#8217;s a summary</h5>
<p>First of all, this talk was for just 40 minutes. Meaning there was only time for a very high level summary, most of which was based on my opinion. If you were looking to be convinced that SharePoint is terrible for records management, you will hear what you want to hear. (Originally, I was asked to compare SharePoint with open source for records management.)</p>
<h5>The Good</h5>
<p>There are a bunch of new features in SharePoint 2010 to support records management:</p>
<ul>
<li>Document IDs provide permalinks that will work even if you move the documents to different sites, perfect if you want to manage records in a centralised store rather than in-place within collaborative sites. They are configured per site collection, which needs to be taken into consideration when designing your SharePoint deployment.</li>
<li>SharePoint includes some new workflow actions that can be used for managing documents and records. &#8216;Lookup manager for user&#8217; will query the User Profile Service. Provided you have a well populated directory sync&#8217;ing with the User Profile service, you can actually look up any properties, but manager is great for automating approval processes. &#8216;Replace list item permissions&#8217; can be used to automatically set item permissions during the workflow. Means you can set the user&#8217;s permission to read-only whilst the manager can still edit during that approval process. And when the document is finished, you can now automatically declare the document as a record, locking it for everyone.</li>
<li>Being able to configure a retention stage was available in SharePoint 2007. But now in 2010 you can configure multiple different stages, which provides a much more realistic solution. The example in the slide: review a document every 2 years, after 12 years send it to the archive. New in SharePoint 2010 is a Content Organiser as part of the centralised Records Center. It can route incoming items and store them as part of a file plan. Users don&#8217;t need to know what retention settings are, provided they describe what the document is, e.g. a contract, or it&#8217;s status, e.g. confidential, the Content Organiser can be configured to automatically decide where to put the document. Placing in a certain folder can then automatically inherit additional metadata properties, such as retain for 6 years from date last modified if it&#8217;s in the Financial Documents.</li>
</ul>
<p>New to SharePoint 2010 since July 2011 (requires SharePoint 2010 with Service Pack 1) is a big jump in scale options. Previously, life was happier if all site collections were kept to under 100GB and content databases kept to 200GB. In rare exceptions, you were allowed to grow a single site in a single site collection in a single content database to 1TB. Now, the 100GB/200GB limit is still recommended for highly active sites and deployments with only basic disaster recovery/backup capabilities. But the new limits are up to 4TB for all scenarios, if you&#8217;ve got the right set-up. And you can even go unlimited for archive scenarios (where a tiny amount of content is accessed infrequently).</p>
<p>What didn&#8217;t make the list? Managed Metadata. I&#8217;m being a bit harsh, it&#8217;s a great introduction for information management in general. But there are to many limitations currently to get it beyond &#8216;OK&#8217; for serious records management needs. For more details, see references at the end of this post.</p>
<h5>The Bad</h5>
<p>Licensing is an easy issue to pick on. It applies to most Microsoft products deployed in organisations. As well as choosing which server product to use, you also need to pick the type of CAL, and the options vary if being deployed internally versus externally. External use has a special Server licence that is different (i.e. a lot more expensive) than the internal Server licence but doesn&#8217;t require a CAL whereas internal servers do. If allowing external use, you&#8217;ll be needing ISA Server, ForeFront or other technologies to secure access over the Internet. You may be considering the full FAST product and chances are you will still be using Office for creating and editing documents. Which leads on to Office Web Access &#8211; enables Office documents to be opened in a web browser as part of a SharePoint site but isn&#8217;t part of the SharePoint licence, it requires an Office volume licensing agreement (no prizes for guessing why).</p>
<p>Getting started is the next challenge. SharePoint is a platform and building a records management solution using its features takes a fair bit of planning and configuration. And comprehensive solutions usually require additional software from specialist partners. Microsoft&#8217;s own records management deployment uses partner solutions to manage the full records management process.</p>
<p>And, as with many Microsoft products, cross-platform support is currently weak. It&#8217;s a step-up from SharePoint 2007 in that you can now open SharePoint 2010 sites using non-Internet Explorer browsers. But try viewing on an iPad, it&#8217;s not just Flash that isn&#8217;t supported (SharePoint uses a fair bit of Silverlight, Microsoft&#8217;s equivalent to Flash) and SharePoint default user interface is definitely not touch-optimised. Almost certainly to improve in future versions, but for now a definite gotcha. And beyond devices, organisations that are primarily on Microsoft products will have a far easier time deploying than those using other servers, operating systems and applications to be integrated.</p>
<h5>Options</h5>
<p>As to whether or not organisations should be considering alternatives to SharePoint. There are a number of criteria to consider:</p>
<ul>
<li>Platform vs Niche: is records management the primary purpose of your organisation? Then you probably should evaluate niche solutions that specialise. If it needs to be considered as part of a wider remit of information and knowledge-based activities, then a platform is likely to have better value. SharePoint is a platform. It&#8217;s not the only one.</li>
<li>Proprietary vs Open Source: If you&#8217;re anti-proprietary solutions, then you&#8217;ll answer this for yourself. From a solution perspective, the main difference is that proprietary solutions tend to have limited lifespans that require upgrades where as open source solutions can be self-maintained for as long as you want to. Whether that&#8217;s a good or bad thing depends on if there is a reason for the upgrade, such as changes in security needs.</li>
<li>On-premise vs Cloud: Is still a very immature discussion at this stage. And the cloud-options beyond basic file storage are very limited. SharePoint Online does not have the full feature set of the on-premise server &#8211; there is no Records Center, only in-place records management.</li>
</ul>
<h5>The Ugly</h5>
<p>This section was less about SharePoint and more about the challenge of records management.</p>
<p>First up, are we talking about records management or information governance? It&#8217;s important to define, very specifically, what you mean by records management because that should then drive the technology choice. The hypothetical example I used to demonstrate: (The slide is missing its animation build on Slideshare.) A lorry driver decides to do a friend a favour (agreed via email) and fit in an extra delivery on his route. The tachograph would record this and prove that he drove over hours (as would the unofficial email). A tachograph must be kept for 28 days. If a court case started before the 28 days are up (hypothetical, remember), the lorry driver would commit an offence if he failed to produce the tachograph, even if the actual day in court is after the 28 days are up. Whilst the email may also become a record as part of the court case, that only happens if it hasn&#8217;t been deleted (emails don&#8217;t have a defined retention). Failing to produce the email, if you still have it, would also be an offence. If the court case starts after the 28 days, neither the tachograph or the email are required to be kept. If they&#8217;ve been deleted, they can&#8217;t be used in court. But again, it&#8217;s an offence if you just say they&#8217;ve been deleted when in fact they are still in existence. And this is all separate to the facts of the case itself. Yes, the tachograph and email would prove the lorry driver drove for too long. But the facts are not the responsibility of records management. If they are, then you don&#8217;t have records management, you just keep everything for ever and accept the cost of retrieving all relevant items if and when they are required in a legal matter. Good luck with that.</p>
<p>When we started moving from paper to digital records, the volume of the problem began to grow because technically any piece of information can be considered a record during a legal matter. Social networks have grown the challenge exponentially. You can only manage your own content, you have little or no control beyond your organisation&#8217;s walls. An email always exists in at least 2 places. Are you making sure people are aware of what they can and can&#8217;t post on public web sites? Once something exists on the Internet, you cannot guarantee it is ever removed.</p>
<p style="text-align: center;"><object width="400" height="265" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=7395079&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" /><embed width="400" height="265" type="application/x-shockwave-flash" src="http://vimeo.com/moogaloop.swf?clip_id=7395079&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" allowfullscreen="true" allowscriptaccess="always" /></object></p>
<p>Massive data is where we are heading &#8211; great globs of different types of the stuff with new tools appearing to mine and manage it. Where does records management fit in this context? The same can be asked of SharePoint. Whilst its scale is improving dramatically, can its current architecture handle massive volumes of information? We are seeing new storage methods being used by sites such as Facebook and LinkedIn, moving beyond the traditional hierarchical stores and relational databases.</p>
<p>And finally, the Achilles heel of any records management system is not the technology you choose to use, it&#8217;s the people you choose to employ. Most news headlines don&#8217;t talk about a system failing to delete something or deleting something it shouldn&#8217;t have. They are usually about a human taking information out of the system and sharing it with someone they shouldn&#8217;t, or losing the device the information has been stored on. No technology is going to solve that problem without creating a bigger problem in the process.</p>
<h5>Summary</h5>
<p>Records management should be about two requirements: 1. keeping and disposing of formal documents, i.e. those that have a defined retention; and 2. ensuring any information (formal and informal) used in a legal matter is not deleted whilst that legal matter is in progress. Everything else is about information governance. Few organisations outside of a legal context do this well because it is still an immature solution and technology is only part. of that solution</p>
<p>People are likely to cause you more headaches than the technology. Some level of training is essential to remind people about how they manage their information. Still worried? Then invest in automation and autoclassification technologies to eliminate as much of the human element of the process as possible.</p>
<p>Decide on your deletion policy (or strategy). If you want to be able to prove when someone is lying in court, then accept that you are going to spend a lot of money on keeping and classifying everything. For those with a budget, make sure you can manage what matters and get rid of everything else when you can. Your job is not to try and prove or disprove the legal argument, it is to ensure you are able to provide all the relevant information you have kept.</p>
<h5>SharePoint for Records Management?</h5>
<p>To close, some tips on using SharePoint for records management.</p>
<ul>
<li>Don&#8217;t let people keep old documents in collaborative sites or folders. If they are no longer being used in an active process but people still want to keep them, move them to a centralised records management site. Because if they are inactive, over time they will be forgotten making them harder to find should they become relevant in a legal matter.</li>
<li>Consider using document IDs for formal documents if they are going to be moved to an archive at some point (note: this assumes they stay within SharePoint).</li>
<li>Leverage the features to automate as much of the processes as possible. It will take time to configure but the effort will minimise errors and ease records management procedures</li>
<li>Linking into the previous slide, if you investing in autoclassification, you need more than just SharePoint. Either the full FAST product, which includes autoclassification, or an alternative solution that integrates with SharePoint.</li>
</ul>
<p><strong>References</strong></p>
<ul>
<li><a href="http://vimeo.com/7395079">Trillions video</a> by Maya, Vimeo</li>
<li><a href="http://www.sharepointsharon.com/2011/09/sharepoint-2010-taxonomy-limits/">SharePoint Taxonomy Limits</a> &#8211; blog post, Sep 2011</li>
<li><a href="http://www.sharepointsharon.com/2011/08/sharepoint-2010-performance-and-capacity-limits/">SharePoint Performance and Capacity Limits</a> &#8211; blog post, Aug 2011</li>
<li><a href="http://www.joiningdots.com/blog/2010/07/sharepoint-and-office-web-apps/">SharePoint and Office Web Apps</a> &#8211; blog post, Jul 2010</li>
<li><a href="http://www.joiningdots.com/blog/2008/03/rethinking-the-fileplan/">Rethinking the File Plan</a> &#8211; blog post, Mar 2008</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsharon.com/2011/10/sharepoint-for-records-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create your own article page layouts</title>
		<link>http://www.sharepointsharon.com/2011/09/article-page-layouts/</link>
		<comments>http://www.sharepointsharon.com/2011/09/article-page-layouts/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 17:19:09 +0000</pubDate>
		<dc:creator>Sharon Richardson</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[visual design]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://www.sharepointsharon.com/?p=2764</guid>
		<description><![CDATA[This post applies to SharePoint 2010 Server, Standard or Enterprise edition. SharePoint can be used for all sorts of content. For collaborative and productivity scenarios, the focus is often on document libraries and lists for managing content. Sometimes content is better suited in web pages, such as wiki sites and newsletter. But the default page [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.sharepointsharon.com%2F2011%2F09%2Farticle-page-layouts%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.sharepointsharon.com%2F2011%2F09%2Farticle-page-layouts%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayouts-newCQWP.jpg"><img class="aligncenter size-medium wp-image-2782" title="Content Query Web Part displaying a newsletter summary" src="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayouts-newCQWP-300x80.jpg" alt="Content Query Web Part displaying a newsletter summary" width="300" height="80" /></a></p>
<p>This post applies to SharePoint 2010 Server, Standard or Enterprise edition.</p>
<p>SharePoint can be used for all sorts of content. For collaborative and productivity scenarios, the focus is often on document libraries and lists for managing content. Sometimes content is better suited in web pages, such as wiki sites and newsletter. But the default page layouts are quite basic.</p>
<p><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayout-defaults.jpg"><img class="aligncenter size-medium wp-image-2765" title="default SharePoint web page layouts" src="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayout-defaults-165x300.jpg" alt="default SharePoint web page layouts" width="165" height="300" /></a></p>
<p>The image above (click on images here to view full size) shows the default page layouts for publishing content in web pages. There are three types of article page, two wiki pages and a web part page. We&#8217;re going to create our own article page layout.</p>
<h4>Creating a new article page layout</h4>
<p>The three article pages are very similar. The only difference is whether or not you include an image page control on the page and, if you do, whether it is on the left or right side of the page. All three include page controls for a title, article date, byline and page content.</p>
<p><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayout-content-default.jpg"><img class="aligncenter size-medium wp-image-2767" title="Default article page layout with some content" src="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayout-content-default-300x163.jpg" alt="Default article page layout with some content" width="300" height="163" /></a></p>
<p>The image above shows the article page layout Image on Right with some content in the Title, Article Date, Byline, Page Image and Page Content.  It looks fine when viewing the page, but it&#8217;s just one clump of content &#8211; the Page Content control.  The only slices we can display elsewhere are the Title and Byline.</p>
<p><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayout-cqwp-default1.jpg"><img class="aligncenter size-medium wp-image-2769" title="Content Query Web Part" src="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayout-cqwp-default1-300x113.jpg" alt="Content Query Web Part" width="300" height="113" /></a></p>
<p>The image above shows a Content Query web part (CQWP) displaying the &#8216;Latest Newsletter&#8217;.  (CQWPs can be displayed on any site in a site collection, in this case, showing part of the news letter on another site.) The active link is the Title and the text next to the image is the Byline, displayed as a description.  Instead of a Byline, I want to publish a summary without having to duplicate content in the actual article page.  To do that, I need to create my own article page layout.</p>
<h5>Create the required columns</h5>
<p>Every control on a page layout is linked to a column.  If we want to create our own page controls, we first need to create the columns. This is slightly different to creating columns in a document library or list.  Page controls must be associated with site columns, not library columns.  Site Columns includes four additional column types specifically to use in web publishing. These are not available when creating columns within lists and libraries.</p>
<ol>
<li>On your site (or site collection root if you want to re-use the columns across other sites), go to Site Actions &#8211; Site Settings</li>
<li>In Site Settings, click on Site Columns</li>
<li>In Site Columns, click Create.  For our example, we are going to split our article page into three: News Summary, Message from the Boss, and the rest of the newsletter. We need two additional columns for the Summary and Message from the Boss. The image below shows the settings for our News Summary column.  Note the column type (Full HTML content&#8230;)</li>
</ol>
<p><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayouts-columns-create1.jpg"><img class="aligncenter size-medium wp-image-2771" title="Creating Site Columns" src="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayouts-columns-create1-300x290.jpg" alt="Creating Site Columns" width="300" height="290" /></a></p>
<h5>Add the columns to the Article Page content type</h5>
<p>To make it easy to add our new columns to a page layout, we&#8217;re going to add them to the corresponding content type.</p>
<ol>
<li>In the same site where you just created your columns, go to Site Actions &#8211; Site Settings</li>
<li>In Site Settings, click on Site Content Types</li>
<li>Scroll down to the group Page Layout Content Types and click on Article Page</li>
<li>In the Article Page Content Type template, click Add from existing site columns and add your two new columns to the content type.</li>
</ol>
<h5>Create the article page layout</h5>
<ol>
<li>Edit the site in SharePoint Designer</li>
<li>In the Navigation (on the left), click on Page Layouts</li>
<li>In the ribbon menu (at the top), click New Page Layout</li>
<li>In the New dialogue box, select the Page Layout Content Types group and the Article Page Content Type. Enter a URL name (all one word) and a title for your new page layout.</li>
</ol>
<p><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayouts-spd-newpagelayout.jpg"><img class="aligncenter size-medium wp-image-2772" title="Creating a new page layout in SharePoint Designer" src="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayouts-spd-newpagelayout-300x188.jpg" alt="Creating a new page layout in SharePoint Designer" width="300" height="188" /></a></p>
<h5>Add controls to your article page layout</h5>
<p>First up, we currently have a completely blank page layout. To cheat and get us started, we are going to copy the design of one of the existing article page layouts.</p>
<ol>
<li>In the Page Layouts folder, click on the page layout ArticleRight.aspx</li>
<li>In the page layout settings, click Edit file (under Customization)</li>
<li>When prompted, do NOT check it out.  Then, when prompted, click Yes to open in advanced mode. Copy the entire contents of the code screen and paste it into the code screen of your new page layout. When finished, close the ArticleRight.aspx page layout.</li>
</ol>
<p>Side note: I personally prefer split mode in SPD to display both the code and the design of a page layout. If you can&#8217;t see any code, click on Split or Code just beneath the page layout.</p>
<p>Your new page layout should now look just like the page layout for articles with an image on the right. We are now ready to add our two additional page controls: News Summary and Message from the Boss.  We want to add these controls above the Page Content control&#8217;</p>
<ol>
<li>In the Toolbox on the right side of the screen, scroll sown to the Content Fields group. You should see your two columns. In this example, Message from the Boss and News Summary.</li>
<li>Drag the two columns onto the page layout. I have added the News Summary and Message from the Boss within the DIV for the article content.</li>
<li>Look at the settings for the Page Content control (FieldName=&#8221;PublishingPageContent&#8221;) in code, it has two properties set:
<ul>
<li>HasInitialFocus=True</li>
<li>MinimumEditHeight=400px</li>
</ul>
<p>These two settings control the height of the box on the page layout and where the cursor is placed. For mine, I am going to use HasInitialFocus=True on my News Summary control. I am also going to make both of my columns have a minimum editing height of 200px.  When you are making these changes, make sure you add the properties before runat=&#8221;server&#8221; to make sure you get them in the right place (if you&#8217;re not experienced with doing this stuff).</li>
<li>Finally, I&#8217;m going to add a title for my newsletter in the DIV for the article header, to save writing them within the page each month. Note: normally I&#8217;d format these better or replace with a banner image (I was going to go all Matrix&#8217;y), but to keep it simple&#8230;</li>
</ol>
<p><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayouts-editlayout.jpg"><img class="aligncenter size-medium wp-image-2779" title="Editing a page layout" src="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayouts-editlayout-300x195.jpg" alt="Editing a page layout" width="300" height="195" /></a></p>
<p>In the image above, you can see my two columns with field names displaying their GUIDs instead of the friendlier names of the built-in PublishingPageContent within DIV class=&#8221;article-content&#8221;. And I added a plain DIV to drop the magazine title &#8216;The Oracle&#8217; at the top of the DIV class=&#8221;article-header&#8221; with a basic style applied.  The toolbox over on the right of the page shows my two columns listed under Content Fields.</p>
<p>When you&#8217;re ready, save the page layout, check it in and publish/approve ready for use in the site.</p>
<h5>Add the page layout to the site</h5>
<p>Once published, we can add our new page layout to the list of page layouts used in the site.</p>
<ol>
<li>Back at the site, go to Site Actions &#8211; Site Settings</li>
<li>Within Site Settings, click on Page layouts and site templates (under the Look and Feel group)</li>
<li>Under Page Layouts, select &#8216;Pages in this site can only use the following layouts) and add your page layout. Click OK.</li>
</ol>
<p>Note: If you want the new page layout to be the default when new pages are created, go back into Page Layouts and set it to be the default.</p>
<h5>Use the new page layout</h5>
<p>If I go to edit my current newsletter, I can now change the page layout and select my new format.</p>
<p><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayout-newarticle.jpg"><img class="aligncenter size-medium wp-image-2780" title="Using our new page layout" src="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayout-newarticle-300x183.jpg" alt="Using our new page layout" width="300" height="183" /></a></p>
<p>In the image above, I have moved my summary and message from the boss into the new boxes on the page. Compare to the original image earlier in this post. (In hindsight, should have made the two boxes 100px <img src='http://www.sharepointsharon.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  they don&#8217;t need to be that large.) As a tip, set the default size of the box to roughly how much content you would want people to put in it.</p>
<p>When you publish the page, it looks just the same. But now that we have content segmented, we can start to display those segments elsewhere.</p>
<h5>Modifying the content query web part (CQWP)</h5>
<p>The final step in this post is going to be to display the news summary from our newsletter on the Intranet home page. We need to change the columns that are displayed in the CQWP under Title and Description.</p>
<p><a href="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayouts-compareCQWP.jpg"><img class="aligncenter size-medium wp-image-2781" title="Comparing Content Query Web Parts" src="http://www.sharepointsharon.com/wp-content/uploads/2011/09/pagelayouts-compareCQWP-300x175.jpg" alt="Comparing Content Query Web Parts" width="300" height="175" /></a></p>
<p>In the image above, &#8216;Original Latest News&#8217; is the CQWP with its default settings, displaying the Title and Byline of the newsletter.  Beneath it, &#8216;Latest News&#8217; shows our new CQWP displaying the Byline (instead of Title) and Newsletter Summary (instead of ByLine).</p>
<p>I&#8217;m planning to go into the CQWP in a bit more detail in another post, including adding a &#8216;Read more&#8230;&#8217; link.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsharon.com/2011/09/article-page-layouts/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 Performance and Capacity Limits</title>
		<link>http://www.sharepointsharon.com/2011/08/sharepoint-2010-performance-and-capacity-limits/</link>
		<comments>http://www.sharepointsharon.com/2011/08/sharepoint-2010-performance-and-capacity-limits/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 15:35:13 +0000</pubDate>
		<dc:creator>Sharon Richardson</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[capacity]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://www.sharepointsharon.com/?p=2529</guid>
		<description><![CDATA[One TechNet article I&#8217;m always dipping into for reminders when designing SharePoint solutions is the capacity management article defining boundaries, thresholds and supported limits for sites, lists and libraries. For the full article, read SharePoint 2010 Capacity Management: Software boundaries and limits (at time of writing, updated 14 July 2011 following changes introduced with Service [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.sharepointsharon.com%2F2011%2F08%2Fsharepoint-2010-performance-and-capacity-limits%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.sharepointsharon.com%2F2011%2F08%2Fsharepoint-2010-performance-and-capacity-limits%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>One TechNet article I&#8217;m always dipping into for reminders when designing SharePoint solutions is the capacity management article defining boundaries, thresholds and supported limits for sites, lists and libraries. For the full article, read <a href="http://technet.microsoft.com/en-gb/library/cc262787.aspx">SharePoint 2010 Capacity Management: Software boundaries and limits</a> (at time of writing, updated 14 July 2011 following changes introduced with Service Pack 1).</p>
<p>First up, Microsoft definitions:</p>
<ul>
<li>Boundary = static limit that cannot be exceeded by design</li>
<li>Threshold = configurable limit that can be exceeded to accommodate specific requirements</li>
<li>Supported = Configurable limits that have been set by default to a tested value.</li>
</ul>
<p>Second, there have been a lot of changes introduced following Service Pack 1 released in June. The last major update to the software boundaries and limits was September 2010.  These tables have been updated to reflect the changes.</p>
<p>What follows is my summary and additional notes with references at the end. Some items are in a different order to the key reference as I&#8217;ve organised by layer &#8211; web app &#8211; content DB &#8211; site collection &#8211; site &#8211; list/library &#8211; page followed by some of the key services. Note: When a Max.Value has an asterisk next to it, that usually means you&#8217;ll never (or shouldn&#8217;t, IMHO) get close to it&#8230;</p>
<h4>Farms and Web Applications</h4>
<table style="background-color: #ffffff;" border="0">
<tbody>
<tr style="border: 1px solid #cccccc; background-color: #d3d3d3;">
<td width="90">What</td>
<td width="75">Max.<br />
Value</td>
<td width="75">Limit<br />
Type</td>
<td>Notes</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Zone</td>
<td>5 per<br />
web app</td>
<td>Boundary</td>
<td>Hard-coded &#8211; Default, Intranet, Extranet, Internet and Custom (just labels, can use for different purposes if needed)</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Managed<br />
Path</td>
<td>20 per<br />
web app</td>
<td>Supported</td>
<td>Cached on web server so can affect web front-end performance. You normally get 2 by default in your first web app: &#8216;sites&#8217; and &#8216;my&#8217;.  &#8216;My&#8217; should be in a separate web app if you have more than 100 users or allow large mysites.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Solution<br />
cache size</td>
<td>300MB per<br />
web app</td>
<td>Threshold</td>
<td>Allows InfoPath Forms service to hold solutions in cache to speed retrieval of data. If exceeded, solutions are retrieved from disk which may slow response times</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Application<br />
Pools</td>
<td>10 per<br />
web server</td>
<td>Supported</td>
<td>Limit depends on RAM allocated to web servers and workload of the farm (user base and usage characteristics &#8211; a single highly active application pool can reach 10GB or more)</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>SharePoint Entities with Web Analytics enabled</td>
<td>30,000 per farm</td>
<td>Supported</td>
<td>Do not enable web analytics if a farm is going to contain more than 30,000 entities: includes all web applications, site collections and sites.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Office Web Application Cache</td>
<td>100GB</td>
<td>Threshold</td>
<td>Space available to render documents, created as part of a content database.  Not advised to increase this default.  Note: it will drop itself in the first site collection. Can use PowerShell to manage. Don&#8217;t have it in a busy or important site collection.</td>
</tr>
</tbody>
</table>
<h4>Content Databases and Site Collections</h4>
<table border="0">
<tbody>
<tr style="border: 1px solid #cccccc; background-color: #d3d3d3;">
<td width="90">What</td>
<td width="75">Max<br />
Value</td>
<td width="75">Limit<br />
Type</td>
<td>Notes</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Number of<br />
Content DBs</td>
<td>300 per<br />
web app</td>
<td>Supported</td>
<td>Increasing the number of content DBs doesn&#8217;t affect end user ops but will affect admin such as creating new site collections.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Content DB size<br />
- General usage</td>
<td>200GB</td>
<td>Supported</td>
<td>Limit to 200GB for active site collections and general usage scenarios &#8211; i.e. collaborative working, search etc.<br />
If using remote blob storage (RBS), total volume of remote BLOB storage and metadata in content database must not exceed 200GB</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Content DB size<br />
- All usage</td>
<td>4 TB*</td>
<td>Supported</td>
<td>Big change with Service Pack 1, previous limit was 1TB and only for archiving/records management &#8211; see next row for that scenario.  Can now go beyond 200GB for any scenario provided you meet certain criteria, including figuring how you are going to backup and restore in a timely fashion because the cheap methods won&#8217;t work.  Recommends still keeping site collections to 100GB.  Disk sub-system performance must be 0.25 IOPs per GB, prefer 2 IIOPs per GB = expensive&#8230;  If refactoring site collections, stick to the 200GB limit for content DBs.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Content DB size<br />
- Archiving</td>
<td>No explicit limit*</td>
<td>Supported</td>
<td>Previously 1TB. Updateed with Service Pack 1. Read Microsoft&#8217;s guidance before considering adopting this approach (links at the end of this post). Sites must be based on Document Center or Records Center site templates. (But no longer specifies only 1 site) Less than 5% of content accessed per month and less than 1% modified or written per month. No alerts, workflows, item level security (but can use Content Routing workflows to get content in)</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Content DB items or documents</td>
<td>60,000,000*</td>
<td>Supported</td>
<td>60 million is the largest numner of items per content database that has been tested on SharePoint 2010. So your 4TB or unlimited Content DB must have less than 60 million items in it.. (items = list items and library documents).</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Number of<br />
site collections</td>
<td>2,000 rec.*<br />
5,000 max.*</td>
<td>Supported</td>
<td>The larger the number of site collections in a content database, the  slower the upgrade. Limit is linked to size &#8211; i.e. must keep within  200GB database limit. 2,000 site collections in a single content DB =  100MB per site collection! Note: if have more than 5,000 users, will  need to split MySites (each MySite is a site collection) across more  than one contentDB. Easy enough to do, even in Central Admin (just  online/offline each DB) but do put them in a dedicated web app.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Site Collection<br />
size</td>
<td>Maximum size of the content database*&nbsp;</p>
<p>100GB if using built-in site collection backup/restore</td>
<td>Supported</td>
<td>This was 100GB pre-Service Pack 1.  However Microsoft still strongly recommend keeping the size of site collections to 100GB for two reasons:  1. Certain site collection actions may affect performance or fail if other site collections are active in the content database. (Solution: have 1 site collection per content database) 2. SharePoint site collection backup and restore is only supported for a maximum site collection size of 100GB. If larger, entire content DB must be backed up.  If multiple site collections larger than 100GB are in a single content DB, operations may take a long time and fail (Solution: have 1 site collection per content database)&nbsp;</p>
<p>In short: If you have 1 site collection per content database, you can go beyond 100GB.  It&#8217;s a big leap between 100GB and 4TB/unlimited but 200GB should now be fine.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Number of web sites</td>
<td>250,000 per<br />
site collection*</td>
<td>Supported</td>
<td>Nesting sites is recommended, e.g. shallow hierarchy of 100 sites, each with 1,000 subsites, or a deep hierarchy with 100 sites, each with 10 subsite levels, 100 per level. Both = 100,000.<br />
Note: My recommendation: don&#8217;t have more than 100 at the top-level&#8230; wouldn&#8217;t go more than 5 levels deep either &#8211; you&#8217;ll hit the URL string limit.  And I avoid having more than 250 at any level.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td><span style="color: #000000;">Subsite</span></td>
<td>2,000 per<br />
site view</td>
<td>Threshold</td>
<td>Interface for enumerating subsites of a given web site does not perform well above 2,000. Will also affect All Site Content page and Tree View control.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>RBS storage<br />
subsystem</td>
<td>20ms</td>
<td>Boundary</td>
<td>If using Remote Blob Storage (RBS), Network Attached Storage (NAS) must respond to a BLOB request within 20ms (i.e. SharePoint must receive first byte from the NAS within 20 milliseconds. For other RBS limits, see also the Content DB size for general usage &#8211; RBS deployments must keep the content DB under 200GB.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Content deployment jobs running on different paths</td>
<td>20</td>
<td>Supported</td>
<td>For paths connected to site collections in the same source content database &#8211; exceeding increases risk of deadlocks on the database.  If you are using SQL Server snapshots for content deployment, each path creates a snapshot increasing I/O requires for the source database</td>
</tr>
</tbody>
</table>
<h4>Lists and Libraries, Documents and Pages</h4>
<table border="0">
<tbody>
<tr style="border: 1px solid #cccccc; background-color: #d3d3d3;">
<td width="90">What</td>
<td width="90">Max<br />
Value</td>
<td width="75">Limit<br />
Type</td>
<td>Notes</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>List row size</td>
<td>8,000 bytes</td>
<td>Boundary</td>
<td>Each list or library item can only occupy 8,000 bytes total in the database. 256 bytes are reserved for built-in columns leaving 7,744 bytes to use. The limit includes with row-rapping (a single item can take up to 6 rows to overcome SQL type limits but the list row size must still be less than 8,000 bytes.  See notes at the end of this table for designing large lists.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Row size limit</td>
<td>6 table rows</td>
<td>Supported</td>
<td>SQL supports row-wrapping that SharePoint can make use of &#8211; it means an item can wrap across up to 6 rows (6 rows required per item) when the number of columns exceed SQL type limits. See notes at the endo fthis table for more details.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>File size</td>
<td>2GB</td>
<td>Boundary</td>
<td>Default size is 50MB. Can be increased but other limits will need to be reduced to protect performance (i.e. fewer major versions of documents)<br />
Note:  All document max. values are based on the default size. Change it and you change the values.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Documents</td>
<td>30,000,000<br />
per library*</td>
<td>Supported</td>
<td>You will need to nest folders to reach this maximum. The value varies depending on how documents and folders are organised and by the type and size of documents stored. This number can be misleading. See also Major Versions and List View Thresholds &#8211; views must return less than 5,000 items.  Also, this limit is based on the max. upload size of 50MB. If increase the upload size, reduce the number of documents per library.  You still need to consider your chosen content DB limit.  If 200GB, that means 400,000 documents based on average file size of 5MB.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Major versions</td>
<td>400,000 per library*</td>
<td>Supported</td>
<td>The number of documents per library includes all versions where version history is used. If 400,000 major versions is the supported limit, then the library supports 400,000 documents from the end user&#8217;s perspective (each document is only listed once, regardless of the number of versions behnd it).  Actual max. value will depend on your content DB size. If it&#8217;s a collaborative site collection with a 200GB limit and you keep 4 versions per document, that&#8217;s 50,000 documents, and less if they are larger than 5MB on average.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Items</td>
<td>30,000,000<br />
per list*</td>
<td>Supported</td>
<td>Note that Microsoft gets around large lists by suggesting the use of views, site hierarchies and metadata navigation  to break up large data repositories. See List View thresholds for performance concerns with large lists.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Content DB limit</td>
<td>60,000,000<br />
items or documents</td>
<td></td>
<td>Limit introduced with Service Pack update.  If you have 120 million items, you need 2 content databases, each containing only 2 lists or libraries and nothing else, regardless of the size of the database.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>List View threshold</td>
<td>5,000 items</td>
<td>Threshold</td>
<td>Maximum number of list or library items that a database operation, such as query, can process at the same time outside of daily time window (overnight), when queries are unrestricted. If you want to have a list with more than 5,000 items, you need views that will always return less than 5,000 items.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>List View threshold for authors and admins</td>
<td>20,000</td>
<td>Threshold</td>
<td>The increase above 5,000 for users is possible for auditing so requires appropriate admin permissions &#8211; works with the Allow Object Model Override.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>List View<br />
lookup threshold</td>
<td>8 join ops<br />
per query</td>
<td>Threshold</td>
<td>Maximum number of joins per query, such as lookup columns, person/group columns or workflow status columns. Operation blocks after more than 8 joins, i.e. only see first 8.  Doesn&#8217;t apply to single item ops.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Bulk Operations</td>
<td>100 items per bulk operation</td>
<td>Boundary</td>
<td>The user interface allows a maximum of 100 items to be selected for bulk operations.  If you are using datasheet view and try selecting all, you&#8217;ll have problems if all means more than 100 items.  Ditto if using the checkboxes instead to select items.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Web Parts</td>
<td>25 per wiki or<br />
web part page</td>
<td>Threshold</td>
<td>Estimate based on simple web parts. Complexity will determine performance e.g. displaying Excel Services or InfoPath forms, connecting Web Parts etc., meaning fewer web parts more likely</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Coauthoring Office files</td>
<td>10 recommended<br />
99 maximum</td>
<td>Threshold</td>
<td>Recommended maximum is 10 concurrent editors per document. Boundary is 99. 100th+ user will get &#8216;file in use&#8217; error and can only view a read-only copy.  Applies to Word (.docx) and PowerPoint (.pptx and ppsx) when authored in Office 2010 (coauthoring not yet supported in browser&#8230;)</td>
</tr>
</tbody>
</table>
<h5>Column Limits (Large Lists)</h5>
<p>When designing large lists or libraries, consider the following. SharePoint 2010 supports SQL row-wrapping and can wrap up to 6 times (means one item actually occupies 6 rows instead of 1).  The maximum size per row is 8,000 bytes, with 256 reserved for built-in columns, which means the total number of user columns must not exceed 7744 bytes, regardless of how many row-wraps are used.</p>
<p>All the following values are Threshold limits.</p>
<table border="0">
<tbody>
<tr style="border: 1px solid #cccccc; background-color: #d3d3d3;">
<td width="150">Column Type</td>
<td width="40">Per<br />
row</td>
<td width="40">Per<br />
list</td>
<td width="40">Size<br />
Bytes</td>
<td>Notes</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Singe line of text<br />
or Choice</td>
<td>64</td>
<td>276</td>
<td>28</td>
<td>Maximum is capped from 384 due to exceeding 7,744 bytes</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Multiple lines of text</td>
<td>32</td>
<td>192</td>
<td>28</td>
<td></td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Number or currency</td>
<td>12</td>
<td>72</td>
<td>12</td>
<td></td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Date and Time</td>
<td>8</td>
<td>48</td>
<td>12</td>
<td></td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Lookup, Person or Group</td>
<td>16</td>
<td>96</td>
<td>4</td>
<td></td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Yes/No</td>
<td>16</td>
<td>96</td>
<td>5</td>
<td></td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Hyperlink or Picture</td>
<td>32</td>
<td>138</td>
<td>56</td>
<td>Maximum is capped from 192 due to exceeding 7,744</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Calculated</td>
<td>8</td>
<td>48</td>
<td>28</td>
<td></td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Managed Metadata</td>
<td>14<br />
16</td>
<td>94</td>
<td>40<br />
32</td>
<td>First managed metadata field in a list is allocated 4 columns: tag, string value, catch all and spillover.<br />
Subsequent fields have 2 columns: tag and string value.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>GUID</td>
<td>1</td>
<td>6</td>
<td>20</td>
<td></td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Int (Integer)<br />
.</td>
<td>16</td>
<td>96</td>
<td>4</td>
<td></td>
</tr>
</tbody>
</table>
<p>External data column typically have a primary column (text field); hidden ID column (multi-line text) and secondary columns (text, number, Boolean or multi-line) based on the data types defined in the BDC.</p>
<p>Tips include creating and using an index to organise a large list &#8211; allows filtered views and faster results.</p>
<h4>Security</h4>
<p>The short version: keep tidy via Active Directory. Put users into Active Directory (AD) groups, put AD groups into SharePoint groups. Don&#8217;t forget, you can&#8217;t add Sharepoint groups to SharePoint groups.</p>
<table border="0">
<tbody>
<tr style="border: 1px solid #cccccc; background-color: #d3d3d3;">
<td width="200">What</td>
<td width="90">Max<br />
Value</td>
<td width="75">Limit<br />
Type</td>
<td>Notes</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Number of SharePoint groups a user<br />
can belong to</td>
<td>5,000</td>
<td>Supported</td>
<td>Not a hard limit, consistent with AD guidelines.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Users (security objects) in a<br />
site collection</td>
<td>2 million per<br />
site collection</td>
<td>Supported</td>
<td>Based on number of entries listed in permissions. Workaround is to use Windows security groups instead of individual users to apply permissions.  Also, use Powershell to manage users instead of UI if rendering is slowing down</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Active Directory Principles/Users in<br />
a SharePoint group</td>
<td>5,000 per<br />
group</td>
<td>Supported</td>
<td>Can have up to 5,000 AD users or groups in a SharePoint group.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>SharePoint groups</td>
<td>10,000 per<br />
site collection</td>
<td>Supported</td>
<td>Above 10,000 groups, ops slow down such as adding users to a group</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Security scope for lists and libraries</td>
<td>1,000 per list</td>
<td>Threshold</td>
<td>Maximum number of unique security scopes set for a list. Scope contains ACL but can include security principals specific to SharePoint as well as Windows user accounts (i.e. SharePoint groups, Forms-based accounts, AD groups).</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Security principal:<br />
Size of Security Scope</td>
<td>5,000 per ACL</td>
<td>Supported</td>
<td>Size of scope affects data used for a security check calculation on security principals</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h4>Search</h4>
<table border="0">
<tbody>
<tr style="border: 1px solid #cccccc; background-color: #d3d3d3;">
<td width="90">What</td>
<td width="90">Max<br />
Value</td>
<td width="75">Limit<br />
Type</td>
<td>Notes</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Search service apps</td>
<td>20 per farm</td>
<td>Supported</td>
<td>Shouldn&#8217;t need more than 20&#8230;</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Content Sources</td>
<td>50 per search service app</td>
<td>Threshold</td>
<td>The recommended limit of 50 can be exceeded up to the boundary of 500 per search service application if fewer start addresses are used and the concurrent crawl limit must be followed.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Start addresses</td>
<td>100 per content source</td>
<td>Threshold</td>
<td>The recommended limit of 100 can be exceeded up to the boundary of 500 per content source if fewer content sources are used (i.e. less than 50). Ditto for vice versa.  Use fewer than 100 start addresses if you have more content sources.  Recommended tip if you have lots of start addresses is to use an HTML page containing the start addresses instead &#8211; the HTML crawler will then hit the page first and follow the links on the page</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Concurrent<br />
crawls</td>
<td>20 per search app</td>
<td>Threshold</td>
<td>The number of crawls (content sources/start addresses) that can be underway at the same time.  Exceeding will just slow down crawling, defeating the purpose.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Crawl rules</td>
<td>100 per search app</td>
<td>Threshold</td>
<td>Can be exceeded but may struggle to view the rules in search admin UI.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Crawl impact rule</td>
<td>100 per farm</td>
<td>Threshold</td>
<td>Recommendation can be exceeded but display of site hit rules in search admin UI may be affected.  At approx. 2,000 site hit rules, the Manage Site Hit Rules page becomes unreadable</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Crawl DB and<br />
Crawl DB items</td>
<td>10 crawl DBs per search service app25 million items per crawl DB</td>
<td>Threshold</td>
<td>Crawl database stores the crawl data (time, status, etc. ) about all   items indexed.  Supported limit is 10 crawl database per  SharePoint  Search service application.  Recommended limit is 25 million  items per  crawl database but at the limit, only 4 crawl database per  search  service application (due to indexed items limit of 100m per search  service app).</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Crawl components</td>
<td>16 per search app</td>
<td>Threshold</td>
<td>Require 2 components per crawl database and 2 per server, assuming  server  has at least 8 cores.  Total number per server must be less than   128/(total query components) to avoid performance problems with I/O.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Crawl log entries</td>
<td>100 million per search app</td>
<td>Supported</td>
<td>Number of individual log entries in the crawl log &#8211; matches the Indexed items.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Indexed items</td>
<td>100 million per search service application&nbsp;</p>
<p>10 million per index partition</td>
<td>Supported</td>
<td>Items includes everything that is indexed &#8211; people (profile pages), list items, documents, web pages, files</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Index partitions</td>
<td>20 per search service app&nbsp;</p>
<p>128 per farm</td>
<td>Threshold</td>
<td>Each index partition holds a subset of the search service application index.  Each partition is recommended to not hold more than 10 million items &#8211; i.e. if you have less than 10 million items to index, you only need one partition.  Plus at limit, could only have 10 per search app due to Indexed items limit of 100 million.  Each partition will also have a property database.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Property DBs</td>
<td>10 per search service app&nbsp;</p>
<p>128 total per farm</td>
<td>Threshold</td>
<td>Stores the metadata for items in the index partition associated with it. An index partition can only be associated with one property store.  (Doesn&#8217;t mention if 2 partitions can share a property DB &#8211; presumably, given the difference in max. value per search service app).</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Crawled Properties</td>
<td>500,000 per search app</td>
<td>Supported</td>
<td>The properties (metadata that goes into the property DB) that are discovered during crawling &#8211; i.e. 500,000 equates to 500,000 columns created in the Property DB that contain the metadata.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Managed Properties</td>
<td>100,000 per search app</td>
<td>Threshold</td>
<td>Mapped from crawled properties (for use in queries and scopes)</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Mappings</td>
<td>100 per managed property</td>
<td>Threshold</td>
<td>Mappings for each managed property (i.e. mapping the number of crawled properties to a single managed property). Exceeding decreases both crawl speed and query performance</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Metadata properties recognised</td>
<td>10,000 per item crawled</td>
<td>Boundary</td>
<td>This is the number of metadata properties that can be determined and indexed when an item is crawled. If you&#8217;ve got a content source with more than 10,000 columns, only the contents of the first 10,000 columns will be indexed.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Query components</td>
<td>128 per search app&nbsp;</p>
<p>64/(total crawl components) per server</td>
<td>Threshold</td>
<td>Total number of query components is limited by the ability of the crawl components to copy files, i.e. query components need to absorb files propagated from crawl components</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Scopes</td>
<td>200 site scopes and 200 shared scopes per search service app</td>
<td>Threshold</td>
<td>Exceeding the limit can reduce crawl efficiency (scope membership is determined as items are indexed) and if too many are added to display groups, can affect browser latency for end users.  Admin interface will also be affected.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Scope rules</td>
<td>100 per scope&nbsp;</p>
<p>600 total per search service</td>
<td>Threshold</td>
<td>Exceeding the limit can reduce crawl freshness and delay potential results from scoped queries</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Display groups</td>
<td>25 per site*</td>
<td>Threshold</td>
<td>Degrades search admin UI if exceed + assume is per site collection &#8211; display groups are only configured as part of site collection admin or in the search site template, not per site for other templates.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Alerts</td>
<td>1,000,000 per search app</td>
<td>Supported</td>
<td>This is the tested limit. Note: you can configure how many alerts an individual can create. The default is 500.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Keywords</td>
<td>200 per site collection</td>
<td>Supported</td>
<td>The boundary (ASP.NET imposed) is 5,000 per site collection given 5 best bets per keyword. Max limit can be modified by tweaking Web.Config or Client.Config files but just don&#8217;t</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Authoritative pages</td>
<td>1 top level and minimal 2nd and 3rd level per search app</td>
<td>Supported</td>
<td>The boundary is 200 per relevance level per search app but if you add more than a few you&#8217;re blurring too much that it&#8217;s not going to improve relevance.  Stick to 1 for the first level (Note: authoritative pages will add a relevance boost to all content at that link (site in effect).</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>URL removals</td>
<td>100 removals per operation</td>
<td>Supported</td>
<td>Similar to bulk operation limit in lists &#8211; how many URLS can be removed from the index in one go</td>
</tr>
</tbody>
</table>
<h4>User Profiles</h4>
<table border="0">
<tbody>
<tr style="background-color: #d3d3d3;">
<td width="90">What</td>
<td width="90">Max<br />
Value</td>
<td width="75">Limit<br />
Type</td>
<td>Notes</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>User profiles</td>
<td>2,000,000 per service app</td>
<td>Supported</td>
<td>If you want to profile more than 2 million people, you&#8217;ll need to split into multiple profile services, e.g. Europe, Americas, Asia-Pacific.  Exceed 2 million in one profile service app and directory import will likely fail.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Social tags, notes and ratings</td>
<td>500 million per database</td>
<td>Supported</td>
<td>Across all users.   Limit is due to concern with backup/restore so if have that solved, can have more.</td>
</tr>
</tbody>
</table>
<h4>Blogs</h4>
<table border="0">
<tbody>
<tr style="border: 1px solid #cccccc; background-color: #d3d3d3;">
<td width="90">What</td>
<td width="90">Max<br />
Value</td>
<td width="75">Limit<br />
Type</td>
<td>Notes</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Blog posts</td>
<td>5,000 per site</td>
<td>Supported</td>
<td>Won&#8217;t be using SharePoint for busy blog sites then&#8230; <img src='http://www.sharepointsharon.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Plenty of other reasons not to. For large and public blog sites, using a dedicated tool like WordPress (what this post is being written on)</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Comments</td>
<td>1,000 per site</td>
<td>Supported</td>
<td>Techcrunch definitely couldn&#8217;t run their site on SharePoint&#8230;</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h4>Business Connectivity Services</h4>
<table border="0">
<tbody>
<tr style="border: 1px solid #cccccc; background-color: #d3d3d3;">
<td width="90">What</td>
<td width="90">Max<br />
Value</td>
<td width="75">Limit<br />
Type</td>
<td>Notes</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>ECT<br />
(in-memory)</td>
<td>5,000 per web server<br />
(per tenant)</td>
<td>Boundary</td>
<td>Total number of external content types (ECT) definitions loaded into memory at a given point in time on a web server</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>External system connections</td>
<td>500 per web server</td>
<td>Boundary</td>
<td>Number of active/open external system connections at a given point in time. Default value is 200.  Limit is enforced at the web server scope, regardless of the kind of external system.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Database items returned per request</td>
<td>2,000 per<br />
DB connector</td>
<td>Threshold</td>
<td>Default maximum of 2,000 is used by database connector to restrict the number of results that can be returned per page</td>
</tr>
</tbody>
</table>
<h4>Workflow</h4>
<table border="0">
<tbody>
<tr style="border: 1px solid #cccccc; background-color: #d3d3d3;">
<td width="90">What</td>
<td width="90">Max<br />
Value</td>
<td width="75">Limit<br />
Type</td>
<td>Notes</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Workflow postpone threshold</td>
<td>15</td>
<td>Threshold</td>
<td>Maximum number of workflows allowed to be executing against a content database at the same time, excluding instances that are running in the timer service.  When threshold is reached, new requests will be queued to run by the timer service later.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Workflow timer batch size</td>
<td>100</td>
<td>Threshold</td>
<td>The number of events that each run of the workflow timer job will pick up and deliver to workflows. Configured via PowerShell</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h4>Managed Metadata</h4>
<table border="0">
<tbody>
<tr style="border: 1px solid #cccccc; background-color: #d3d3d3;">
<td width="90">What</td>
<td width="90">Max<br />
Value</td>
<td width="75">Limit<br />
Type</td>
<td>Notes</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Levels of nested terms</td>
<td>7 per term store</td>
<td>Supported</td>
<td>Term store hierarchy can have up to seven levels.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Number of term sets</td>
<td>1,000 per term store</td>
<td>Supported</td>
<td></td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Number of terms in a term set</td>
<td>30,000</td>
<td>Supported</td>
<td>Additional labels (synonyms and translations) for the same term do not count.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Total number of items in a term store</td>
<td>1,000,000</td>
<td>Supported</td>
<td>An item is either a term or a term set.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h4>PerformancePoint</h4>
<table border="0">
<tbody>
<tr style="border: 1px solid #cccccc; background-color: #d3d3d3;">
<td width="90">What</td>
<td width="90">Max<br />
Value</td>
<td width="75">Limit<br />
Type</td>
<td>Notes</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Cells</td>
<td>1,000,000<br />
per query on Excel Services data source</td>
<td>Boundary</td>
<td>PerfPoint scorecard can&#8217;t query more than 1 million cells in an Excel Services Data Source, per query.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Columns and rows</td>
<td>15 columns by 60,000 rows</td>
<td>Threshold</td>
<td>Maximum number when rendering any PerfPoint dashboard object that uses an Excel workbook as the data source. The number of rows can change depending on the number of columns &#8211; fewer of one allows more of the other.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Query on a SharePoint list</td>
<td>15 columns by 5,000 rows</td>
<td>Supported</td>
<td>Officially, same as above &#8211; fewer columns = more rows. However recommend sticking with 5,000 max &#8211; fits the query threshold limit for list views.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Query on a SQL Server data source</td>
<td>15 columns by 20,000 rows</td>
<td>Supported</td>
<td>As with previous &#8211; number of rows can change depending on number of columns.</td>
</tr>
</tbody>
</table>
<h4>SharePoint Workspace (formerly known as Groove)</h4>
<table border="0">
<tbody>
<tr style="border: 1px solid #cccccc; background-color: #d3d3d3;">
<td width="90">What</td>
<td width="90">Max<br />
Value</td>
<td width="75">Limit<br />
Type</td>
<td>Notes</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Synchronisation item limit</td>
<td>30,000 items per list</td>
<td>Boundary</td>
<td>SharePoint Workspace won&#8217;t synchronise lists that have more than 30,000 items due to download time being too long and occupying resources.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Synchronisation doucment limit</td>
<td>1,800 documents in a workspace</td>
<td>Boundary</td>
<td>Users receive a warning when they have more than 500 documents in a workspace.</td>
</tr>
</tbody>
</table>
<h4>Project Server</h4>
<table border="0">
<tbody>
<tr style="border: 1px solid #cccccc; background-color: #d3d3d3;">
<td>What</td>
<td>Max<br />
Value</td>
<td>Limit<br />
Type</td>
<td>Notes</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>End of project time</td>
<td>Date: 31 Dec 2039</td>
<td>Boundary</td>
<td>Project plans cannot stretch into 2050&#8230; draw your own conclusions about that.</td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Deliverables per project plan</td>
<td>1,500 deliverables</td>
<td>Boundary</td>
<td></td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Number of fields in a view</td>
<td>256</td>
<td>Boundary</td>
<td></td>
</tr>
<tr style="border: 1px solid #cccccc;">
<td>Numbr of clauses in a filter for a view   .</td>
<td>50</td>
<td>Boundary     .</td>
<td></td>
</tr>
</tbody>
</table>
<p>.</p>
<p><strong>Related Blog Posts</strong></p>
<ul>
<li><a href="http://www.sharepointsharon.com/2010/08/sharepoint-sizing-pt1-servers/">SharePoint Sizing pt 1 &#8211; Servers</a></li>
<li><a href="http://www.sharepointsharon.com/2010/09/sizing-pt2-databases/">SharePoint Sizing pt 2 &#8211; Databases</a></li>
</ul>
<p><strong>References</strong></p>
<ul>
<li><a href="http://technet.microsoft.com/en-gb/library/cc262787.aspx">SharePoint 2010 Software boundaries and limits</a> &#8211; TechNet</li>
<li><a href="http://technet.microsoft.com/en-gb/library/cc262813.aspx">Designing large lists and maximising performance</a> &#8211; TechNet</li>
<li><a href="http://sharepoint.microsoft.com/blog/Pages/BlogPost.aspx?pID=988">Data storage changes for SharePoint 2010</a> (post Service Pack 1) &#8211; SharePoint Team Blog</li>
<li><a href="http://office.microsoft.com/en-us/sharepoint-server-help/creating-and-using-an-index-RZ101874361.aspx?section=3">Techniques for managing large lists</a> &#8211; SharePoint help, Microsoft.com</li>
<li><a href="http://www.sharepointjoel.com/Lists/Posts/Post.aspx?List=0cd1a63d-183c-4fc2-8320-ba5369008acb&amp;ID=471&amp;utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A%20JoelsSharepointLand%20%28Joel%20Oleson%27s%20SharePoint%20Land%29">Managing large lists in SharePoint for users and site admins</a> &#8211; Joel Oleson</li>
</ul>
<p>This post is filed in the <a href="http://www.sharepointsharon.com/resources/handbook-2010/architecture/">Architecture &amp; Planning</a> section of the SharePoint 2010 Handbook on this site.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointsharon.com/2011/08/sharepoint-2010-performance-and-capacity-limits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

