<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1885772335216499010</id><updated>2012-02-16T04:23:39.970-08:00</updated><category term='Development'/><category term='MOSS'/><category term='Other'/><category term='SharePoint 2010'/><category term='Administration'/><title type='text'>Shared Pointers</title><subtitle type='html'>Jan Steenbeek blogs about SharePoint development, configuration and management.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sharedpointers.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sharedpointers.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jan Steenbeek</name><uri>http://www.blogger.com/profile/12263354319780536957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1885772335216499010.post-7762275686903328464</id><published>2011-11-23T01:34:00.000-08:00</published><updated>2011-12-06T06:56:50.196-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Administration'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><title type='text'>"Authenticated users" and the taxonomy hidden list</title><content type='html'>When provisioning a new SharePoint site, a few groups are automatically created for you. With most templates you automatically get a visitors, members and owners group. On publishing sites and record centers you get a lot more. &lt;br /&gt;&lt;br /&gt;For a new Team Site, the "All Groups" page initially looks like this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-WbLeNDZrM2A/TsyyYIVMUWI/AAAAAAAAABk/wFxIZ6xb9DA/s1600/Capture2.PNG" imageanchor="1" style=""&gt;&lt;img border="0" height="226" width="400" src="http://3.bp.blogspot.com/-WbLeNDZrM2A/TsyyYIVMUWI/AAAAAAAAABk/wFxIZ6xb9DA/s400/Capture2.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;5 groups, most of them are pretty obvious. But what is this "Authenticated Users" group doing here? Basically, this is a group that is available through IIS and contains every user that can be authenticated by IIS, i.e., have their identity verified. For instance, all AD users automatically fall into this category.&lt;br /&gt;&lt;br /&gt;From TechNet:&lt;br /&gt;&lt;blockquote&gt;SID: S-1-5-11&lt;br /&gt;Name: Authenticated Users&lt;br /&gt;Description: A group that includes all users whose identities were authenticated when they logged on. Membership is controlled by the operating system.&lt;/blockquote&gt;&lt;br /&gt;If you want to know what permissions a group has within your site, SharePoint 2010 offers us the very useful "Check Permissions" option in the Site Permissions screen:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-T9Xyj6Qk84Q/TsyzdvInyCI/AAAAAAAAABw/M5-bLudoiyQ/s1600/Capture3.PNG" imageanchor="1" style=""&gt;&lt;img border="0" height="282" width="400" src="http://4.bp.blogspot.com/-T9Xyj6Qk84Q/TsyzdvInyCI/AAAAAAAAABw/M5-bLudoiyQ/s400/Capture3.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This shows us the Authenticated Users haven't got any permissions on our site. &lt;br /&gt;&lt;br /&gt;So... an over-active user with spring cleaning in mind, could be forgiven for deleting this group from the site collection. This is pretty easy and you only get a very nondescript warning message:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-QHSVeIifvvo/Tsy-9zGxFoI/AAAAAAAAACU/CnweMpSLgNw/s1600/Capture6.PNG" imageanchor="1" style=""&gt;&lt;img border="0" height="261" width="400" src="http://3.bp.blogspot.com/-QHSVeIifvvo/Tsy-9zGxFoI/AAAAAAAAACU/CnweMpSLgNw/s400/Capture6.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;However, the permission listing does not take permissions on hidden lists in account. Specifically the Taxonomy Hidden List (which is used for caching fields from the managed metadata service application), has some interesting permissions:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ccxXQyWWFxI/Tsy7hEDrRWI/AAAAAAAAACI/kra1UMEYIWs/s1600/Capture5.PNG" imageanchor="1" style=""&gt;&lt;img border="0" height="219" width="400" src="http://2.bp.blogspot.com/-ccxXQyWWFxI/Tsy7hEDrRWI/AAAAAAAAACI/kra1UMEYIWs/s400/Capture5.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;(Reach this list at [site]/lists/taxonomyhiddenlist)&lt;br /&gt;&lt;br /&gt;Removing the Authenticated Users from your site will also remove their permissions from this list. It will cause strange behavior in your site. List views with managed metadata columns will suddenly have blank values. Edit and view forms for list items may show unauthorized exceptions. However, for site collection administrators everything will continue to work, so the problem may not be directly obvious. And when the action and the moment problems are reported lay further apart, trouble shooting becomes a challenge.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bottom line: never remove the SharePoint groups that have been created for you by features or deployment&lt;br /&gt;&lt;br /&gt;Further reading: &lt;a href="http://www.wictorwilen.se/Post/Dissecting-the-SharePoint-2010-Taxonomy-fields.aspx"&gt;A good post on the inner workings of the Taxonomy Hidden List&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update: &lt;/b&gt;The same problem can occur with the masterpage gallery. The publishing feature sets some limited reading rights on the gallery for all authenticated users. Removing these permissions will result in access denied on edit mode for pages for all users, including associated owners. Only site collection admins will still be able to edit pages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1885772335216499010-7762275686903328464?l=sharedpointers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharedpointers.blogspot.com/feeds/7762275686903328464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sharedpointers.blogspot.com/2011/11/authenticated-users-the-taxonomy-hidden.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/7762275686903328464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/7762275686903328464'/><link rel='alternate' type='text/html' href='http://sharedpointers.blogspot.com/2011/11/authenticated-users-the-taxonomy-hidden.html' title='&quot;Authenticated users&quot; and the taxonomy hidden list'/><author><name>Jan Steenbeek</name><uri>http://www.blogger.com/profile/12263354319780536957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-WbLeNDZrM2A/TsyyYIVMUWI/AAAAAAAAABk/wFxIZ6xb9DA/s72-c/Capture2.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885772335216499010.post-6341465717099316575</id><published>2011-08-03T04:11:00.000-07:00</published><updated>2011-08-03T07:10:19.566-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Administration'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>Changing the order of fields in edit or display forms</title><content type='html'>Just a quick post in answer to a question I got yesterday:&lt;br /&gt;&lt;blockquote&gt;How do you change the order of fields in edit or display forms?&lt;/blockquote&gt;&lt;br /&gt;It's a question a lot of end users struggle with, and I never know the answer without Google. So, I thought I'd put it up here, with some more relevant keywords, so others and I can find it more easily in the future.&lt;br /&gt;&lt;br /&gt;1. Go to the list&lt;br /&gt;2. Enter list settings (from the ribbon in 2010, from the drop downs in 2007)&lt;br /&gt;3. Click Advanced settings&lt;br /&gt;4. Ensure ‘allow management of content types’ is checked&lt;br /&gt;5. Go back to the list settings&lt;br /&gt;6. In the list of content types associated with the list, click the one you want to change the order of fields for (in lists that have been created ad hoc this is usually item or document). &lt;br /&gt;7. In the bottom of the screen a link appears called ‘Column order’ &lt;br /&gt;&lt;br /&gt;Hope it helps someone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1885772335216499010-6341465717099316575?l=sharedpointers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharedpointers.blogspot.com/feeds/6341465717099316575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sharedpointers.blogspot.com/2011/08/changing-order-of-fields-in-edit-or.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/6341465717099316575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/6341465717099316575'/><link rel='alternate' type='text/html' href='http://sharedpointers.blogspot.com/2011/08/changing-order-of-fields-in-edit-or.html' title='Changing the order of fields in edit or display forms'/><author><name>Jan Steenbeek</name><uri>http://www.blogger.com/profile/12263354319780536957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885772335216499010.post-5372371249557696899</id><published>2011-03-30T05:23:00.000-07:00</published><updated>2011-12-07T01:07:15.709-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><title type='text'>Deploying solutions to a specific Web Application</title><content type='html'>SharePoint solutions (non-sandboxed) can be deployed at two scopes;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Globally&lt;/li&gt;&lt;li&gt;Web Application&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;SharePoint has the annoying habit of forcing you to deploy globally whenever possible. When you try to deploy a global solution to a specific url you get the following message:&lt;br /&gt;- This solution contains no resources scoped for a Web application and cannot be deployed to a particular Web application.&lt;br /&gt;&lt;br /&gt;In almost all cases I want to deploy my solution to a single web application. This makes creating reusable deployment scripts much easier. It also adds logic to your deployment scenario's and farm solution overview in Central Administration.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;&lt;br /&gt;Another important reason to deploy to a single web application is that upon deployment, retraction or updating of your solution you can avoid restarting all application pools. This limits downtime, especially when you are not alone in your farm:&lt;blockquote&gt;Avoid creating a lot of global SharePoint Packages and try instead to provision as much as you can to specific Web Applications. Every time you touch a global SharePoint Package all Applications Pools will be stopped/recycled. Although there are some scenarios when you can’t avoid creating global SharePoint Packages, you should try to avoid them&lt;/blockquote&gt;&lt;a href="http://blog.mastykarz.nl/optimizing-deploying-sharepoint-packages-minimize-impact-farm-availability/"&gt;An interesting post by Waldek on the subject.&lt;/a&gt;&lt;br /&gt;&lt;b&gt;/Update&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The trick is fooling SharePoint into registering your solution as a web application scoped solution. SharePoint checks wether there are items which have to be deployed to a specific web application when your solution is added to the solution gallery. One of the elements that SharePoint checks for are safe control entries. These have to be merged into a web.config for a specific web application. The easiest way to force deployment to a specific web application is adding a dummy safe control entry to your package.&lt;br /&gt;&lt;br /&gt;Here is how you do that:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-phPF3ov6tGg/TZMdPJ4udyI/AAAAAAAAABM/pAlJ-d6dXIA/s1600/was.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5589843708686006050" src="http://4.bp.blogspot.com/-phPF3ov6tGg/TZMdPJ4udyI/AAAAAAAAABM/pAlJ-d6dXIA/s320/was.png" style="cursor: hand; cursor: pointer; height: 194px; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;1. Double click the package&lt;br /&gt;2. Open the manifest&lt;br /&gt;3. Edit the options&lt;br /&gt;4. Add you dummy data. In my solution I added the following:&lt;br /&gt;&lt;br /&gt;&lt;div class=WordSection1&gt;&lt;br /&gt;&lt;p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:blue'&gt;&amp;lt;&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:#A31515'&gt;Solution&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:blue'&gt; &lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:red'&gt;xmlns&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:blue'&gt;=&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas'&gt;&amp;quot;&lt;span style='color:blue'&gt;http://schemas.microsoft.com/sharepoint/&lt;/span&gt;&amp;quot;&lt;spanstyle='color:blue'&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:blue'&gt;&lt;span style='mso-spacerun:yes'&gt; &lt;br /&gt;&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:#A31515'&gt;Assemblies&lt;/span&gt;&lt;spanstyle='font-size:9.5pt;font-family:Consolas;color:blue'&gt;&amp;gt;&lt;/span&gt;&lt;spanstyle='font-size:9.5pt;font-family:Consolas'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:blue'&gt;&lt;span style='mso-spacerun:yes'&gt;   &lt;br /&gt;&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:#A31515'&gt;Assembly&lt;/span&gt;&lt;spanstyle='font-size:9.5pt;font-family:Consolas;color:blue'&gt; &lt;/span&gt;&lt;spanstyle='font-size:9.5pt;font-family:Consolas;color:red'&gt;Location&lt;/span&gt;&lt;spanstyle='font-size:9.5pt;font-family:Consolas;color:blue'&gt;=&lt;/span&gt;&lt;spanstyle='font-size:9.5pt;font-family:Consolas'&gt;&amp;quot;&lt;span style='color:blue'&gt;SharePointProject1.dll&lt;/span&gt;&amp;quot;&lt;spanstyle='color:blue'&gt; &lt;/span&gt;&lt;span style='color:red'&gt;DeploymentTarget&lt;/span&gt;&lt;spanstyle='color:blue'&gt;=&lt;/span&gt;&amp;quot;&lt;span style='color:blue'&gt;GlobalAssemblyCache&lt;/span&gt;&amp;quot;&lt;spanstyle='color:blue'&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:blue'&gt;&lt;span style='mso-spacerun:yes'&gt;     &lt;br /&gt;&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:#A31515'&gt;SafeControls&lt;/span&gt;&lt;spanstyle='font-size:9.5pt;font-family:Consolas;color:blue'&gt;&amp;gt;&lt;/span&gt;&lt;spanstyle='font-size:9.5pt;font-family:Consolas'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:blue'&gt;&lt;span style='mso-spacerun:yes'&gt;       &lt;br /&gt;&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:#A31515'&gt;SafeControl&lt;/span&gt;&lt;spanstyle='font-size:9.5pt;font-family:Consolas;color:blue'&gt; &lt;/span&gt;&lt;spanstyle='font-size:9.5pt;font-family:Consolas;color:red'&gt;Assembly&lt;/span&gt;&lt;spanstyle='font-size:9.5pt;font-family:Consolas;color:blue'&gt;=&lt;/span&gt;&lt;spanstyle='font-size:9.5pt;font-family:Consolas'&gt;&amp;quot;&lt;span style='color:blue'&gt;SharePointProject1,&lt;br /&gt;Version=1.0.0.0, Culture=neutral, PublicKeyToken=****************&lt;/span&gt;&amp;quot;&lt;spanstyle='color:blue'&gt; &lt;/span&gt;&lt;span style='color:red'&gt;Namespace&lt;/span&gt;&lt;spanstyle='color:blue'&gt;=&lt;/span&gt;&amp;quot;&lt;span style='color:blue'&gt;SharePointProject1&lt;/span&gt;&amp;quot;&lt;spanstyle='color:blue'&gt; &lt;/span&gt;&lt;span style='color:red'&gt;TypeName&lt;/span&gt;&lt;spanstyle='color:blue'&gt;=&lt;/span&gt;&amp;quot;&lt;span style='color:blue'&gt;*&lt;/span&gt;&amp;quot;&lt;spanstyle='color:blue'&gt; /&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:blue'&gt;&lt;span style='mso-spacerun:yes'&gt;     &lt;br /&gt;&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:#A31515'&gt;SafeControls&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:blue'&gt;&amp;gt;&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:blue'&gt;&lt;span style='mso-spacerun:yes'&gt;   &lt;br /&gt;&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:#A31515'&gt;Assembly&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:blue'&gt;&amp;gt;&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:blue'&gt;&lt;span style='mso-spacerun:yes'&gt; &lt;br /&gt;&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:#A31515'&gt;Assemblies&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:blue'&gt;&amp;gt;&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:blue'&gt;&amp;lt;/&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:#A31515'&gt;Solution&lt;/span&gt;&lt;span style='font-size:9.5pt;font-family:Consolas;color:blue'&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;That's all there is to it. This solution will now only deploy at the web application scope!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note: For MOSS this works the same. How to add the entry is a bit different depending on your wsp packaging tool. With STSDEV you can add the entry to the SolutionConfig.xml.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1885772335216499010-5372371249557696899?l=sharedpointers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharedpointers.blogspot.com/feeds/5372371249557696899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sharedpointers.blogspot.com/2011/03/deploying-solutions-to-specific-web.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/5372371249557696899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/5372371249557696899'/><link rel='alternate' type='text/html' href='http://sharedpointers.blogspot.com/2011/03/deploying-solutions-to-specific-web.html' title='Deploying solutions to a specific Web Application'/><author><name>Jan Steenbeek</name><uri>http://www.blogger.com/profile/12263354319780536957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-phPF3ov6tGg/TZMdPJ4udyI/AAAAAAAAABM/pAlJ-d6dXIA/s72-c/was.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885772335216499010.post-1705770286753633782</id><published>2011-03-09T06:22:00.000-08:00</published><updated>2011-06-29T06:29:56.775-07:00</updated><title type='text'>Exceptions when creating site columns based on local term sets</title><content type='html'>This blog is about a little known bug in SharePoint 2010. The bug manifests as follows:&lt;br /&gt;&lt;br /&gt;When creating a new site column of the managed meta data type, and you select "customize your term set", you are presented with one of the following errors:&lt;br /&gt;- This operation cannot be completed. The term store may be unavailable.&lt;br /&gt;- Failed to read from or write to database. Refresh and try again. If the problem persists, please contact the administrator&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-n91oYMAVLMQ/TXeSFKXJuWI/AAAAAAAAAAs/otq7XxU7Tio/s1600/mmd%2Berror%2B1.png"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 209px;" src="http://3.bp.blogspot.com/-n91oYMAVLMQ/TXeSFKXJuWI/AAAAAAAAAAs/otq7XxU7Tio/s320/mmd%2Berror%2B1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5582090880527481186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-0gAXmVm8Gl0/TXeSLQdPNwI/AAAAAAAAAA0/1eyemBQ66QE/s1600/mmd%2Berror%2B2.png"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 300px;" src="http://2.bp.blogspot.com/-0gAXmVm8Gl0/TXeSLQdPNwI/AAAAAAAAAA0/1eyemBQ66QE/s320/mmd%2Berror%2B2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5582090985242834690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Reason&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When you create a site column, the first field is the title. This field is required, but you can start filling out the rest of the form before entering the title. When you choose "Managed Meta data", and then "Customize your term set", an empty term set is directly created for you. This term set is titled "Untitled". This term set is stored in the managed meta data service. Even when you rename the term set afterward, and give the site column a proper name, a reference to this "Untitled" site column is kept, linked to the url of your site collection. You can see this when you create a new column, and again don't specify a title. The suggested title for your term set will be "Untitled_1".&lt;br /&gt;&lt;br /&gt;As long as you keep your site collection, this is not a problem. However, when you delete this site collection and create a new site collection at the same url, this reference causes problems. Because it was stored in the service application, it was not deleted. &lt;br /&gt;&lt;br /&gt;It is always in the way when you try to create new site columns with customized term sets. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Solution&lt;/span&gt;&lt;br /&gt;The only solution I found is creating a new Managed Meta data Service instance. You might want to delete the old one, with the corrupt data, but based on business needs this may not be an option. Remember to configure the new Managed Meta data Service instance with "This service application is the default storage location for column specific term sets" set to true:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-wF10jp3CPRg/TXeTGbGI2bI/AAAAAAAAAA8/j8J8CgIu-nA/s1600/mmd%2B1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 190px;" src="http://3.bp.blogspot.com/-wF10jp3CPRg/TXeTGbGI2bI/AAAAAAAAAA8/j8J8CgIu-nA/s320/mmd%2B1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5582092001711020466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-bXu4AyugxQY/TXeTMGDjNwI/AAAAAAAAABE/ceWXR_CMj6k/s1600/mmd%2B2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 112px;" src="http://1.bp.blogspot.com/-bXu4AyugxQY/TXeTMGDjNwI/AAAAAAAAABE/ceWXR_CMj6k/s320/mmd%2B2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5582092099142235906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you don't, you'll get the following error:&lt;br /&gt;"The default term store for this site cannot be identified"&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; The first &lt;a href="http://support.microsoft.com/kb/2460045"&gt;service pack&lt;/a&gt; for SharePoint contains a fix for the following problem:&lt;br /&gt;- If a user creates a site collection, deletes it, and then re-creates the site collection by using the same name, the site collection group is not re-created in the term store.&lt;br /&gt;If I'm not mistaken, this is a fix for the bug described here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1885772335216499010-1705770286753633782?l=sharedpointers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharedpointers.blogspot.com/feeds/1705770286753633782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sharedpointers.blogspot.com/2011/03/exceptions-when-creating-site-columns.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/1705770286753633782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/1705770286753633782'/><link rel='alternate' type='text/html' href='http://sharedpointers.blogspot.com/2011/03/exceptions-when-creating-site-columns.html' title='Exceptions when creating site columns based on local term sets'/><author><name>Jan Steenbeek</name><uri>http://www.blogger.com/profile/12263354319780536957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-n91oYMAVLMQ/TXeSFKXJuWI/AAAAAAAAAAs/otq7XxU7Tio/s72-c/mmd%2Berror%2B1.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885772335216499010.post-2522169421902054447</id><published>2011-02-21T05:55:00.000-08:00</published><updated>2011-09-15T00:26:29.166-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Administration'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><title type='text'>Usefull forms in the Layouts directory</title><content type='html'>It's been a while since I last posted here. Almost 2,5 years have passed since my last post. I've still been doing SharePoint, I just never got around to blogging about it. I'll try to post more in the coming months, so check back for updates.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To kick things of, I have a little tip that can be very useful to site administrators. SharePoint has a lot of forms for managing the site. These are located in the 14 hive's layouts directory (C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS).&lt;br /&gt;&lt;br /&gt;Some of these are available through the site settings menu. Others are only seen when SharePoint redirects you to them. Most of these however, are also available by just browsing to them. I'll discuss 2 examples, but many more usefull forms are available.&lt;br /&gt;&lt;br /&gt;In site without publishing features you cannot change the masterpage. As you can see here, there is no 'Masterpage' link:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-QHh2oFSQ75g/TWKNNXi99bI/AAAAAAAAAAM/WbXjtqTfIDM/s1600/blog1.PNG"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 202px;" src="http://3.bp.blogspot.com/-QHh2oFSQ75g/TWKNNXi99bI/AAAAAAAAAAM/WbXjtqTfIDM/s320/blog1.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5576174549436593586" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Most of us SharePoint-devers are pretty codeminded, and will choose to just change the masterpage through code, or in our site/web template. However the form is still available:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-I8bxtXHMyl4/TWKNztb1PwI/AAAAAAAAAAU/g4UpLNIVJQc/s1600/blog2.PNG"&gt;&lt;img style=" margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 312px;" src="http://4.bp.blogspot.com/-I8bxtXHMyl4/TWKNztb1PwI/AAAAAAAAAAU/g4UpLNIVJQc/s320/blog2.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5576175208147271426" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;All you need to do is browse to the /_layouts/ChangeMasterPage.aspx page.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A second example is the PermSetup.aspx page. This is the page you get when you choose to use unique permissions for your site. It allows you to manually set the associated member and owner groups for your site. This screen is quite important, because it is the only chance you have for setting the association through the UI. However, the only time you get there is at site creation. Unless you just browse to the /_layouts/PermSetup.aspx page:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-5gdN6HLGluk/TWNnjx3LWsI/AAAAAAAAAAk/K6GZ9s8bi4s/s1600/blog3.PNG"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 301px;" src="http://4.bp.blogspot.com/-5gdN6HLGluk/TWNnjx3LWsI/AAAAAAAAAAk/K6GZ9s8bi4s/s320/blog3.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5576414627992656578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hope these two will save you the trouble of writing custom code.&lt;br /&gt;&lt;br /&gt;Small update, the link to save your site as a template isn't shown when publishing is enabled. This doesn't mean it's gone:&lt;br /&gt;/_layouts/savetmpl.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1885772335216499010-2522169421902054447?l=sharedpointers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharedpointers.blogspot.com/feeds/2522169421902054447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sharedpointers.blogspot.com/2011/02/usefull-forms-in-layouts-directory.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/2522169421902054447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/2522169421902054447'/><link rel='alternate' type='text/html' href='http://sharedpointers.blogspot.com/2011/02/usefull-forms-in-layouts-directory.html' title='Usefull forms in the Layouts directory'/><author><name>Jan Steenbeek</name><uri>http://www.blogger.com/profile/12263354319780536957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-QHh2oFSQ75g/TWKNNXi99bI/AAAAAAAAAAM/WbXjtqTfIDM/s72-c/blog1.PNG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885772335216499010.post-2025923824927127709</id><published>2008-09-05T03:27:00.000-07:00</published><updated>2011-02-23T02:20:32.599-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>ListTemplate name attribute</title><content type='html'>Today I got this error again:&lt;br /&gt;&lt;blockquote&gt;Exception from HRESULT: 0x81070201   at Microsoft.SharePoint.Library.SPRequestInternalClass.CreateListFromFormPost(String bstrUrl, String&amp; pbstrGuid, String&amp; pbstrNextUrl) &lt;br /&gt;   at Microsoft.SharePoint.Library.SPRequest.CreateListFromFormPost(String bstrUrl, String&amp; pbstrGuid, String&amp; pbstrNextUrl) &lt;/blockquote&gt;&lt;br /&gt;I encountered this one previously, but I forgot how to solve it. Therefore I'll post it here, so next time I won't spend an hour on this.&lt;br /&gt;&lt;br /&gt;The name attribute in ListTemplate &lt;strong&gt;must&lt;/strong&gt; be the subfolder scheme.xml is in. Else, when you create a listinstance, you get an error.&lt;br /&gt;&lt;br /&gt;This posting got me through it this time:&lt;br /&gt;&lt;a href="http://spdummies.blogspot.com/2008/01/hresult-0x81070201-exception.html"&gt;http://spdummies.blogspot.com/2008/01/hresult-0x81070201-exception.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1885772335216499010-2025923824927127709?l=sharedpointers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharedpointers.blogspot.com/feeds/2025923824927127709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sharedpointers.blogspot.com/2008/09/listtemplate-name-attribute.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/2025923824927127709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/2025923824927127709'/><link rel='alternate' type='text/html' href='http://sharedpointers.blogspot.com/2008/09/listtemplate-name-attribute.html' title='ListTemplate name attribute'/><author><name>Jan Steenbeek</name><uri>http://www.blogger.com/profile/12263354319780536957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885772335216499010.post-2189645266272630631</id><published>2008-08-18T05:53:00.000-07:00</published><updated>2011-02-23T02:20:51.118-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>Enabling Item Scheduling through code</title><content type='html'>Many settings in MOSS are reachable through code. You could say all, because all settings you see in the GUI are based on actions performed by code. However, the translation is not always very transparant.&lt;br /&gt;&lt;br /&gt;A library can have item scheduling enabled. This allows you to specify a window in time in which a page should be visible to the world. When you enable item scheduling through the GUI you first have to enable "Minor versions" and "Moderation" in the versioning settings. This is quite easy in code:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;//pageLibrary is a SPList object. I assume you know how to get to it.&lt;br /&gt;pageLibrary.EnableMinorVersions = true;&lt;br /&gt;pageLibrary.EnableModeration = true;&lt;br /&gt;pageLibrary.Update();&lt;/blockquote&gt;&lt;br /&gt;The next part is where you hit a brick wall. There is no "Manage Item Scheduling" property for list objects. What shows as a checkbox in the GUI hides a couple of things that happen when you turn Item Scheduling on. The most important is that EventReceivers are added to the list. Normally, when working with EventRecievers you're making your own. Here the objective is to add Microsoft's own EventReceivers through code:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;pageLibrary.EventReceivers.Add(SPEventReceiverType.ItemAdded, "Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c", "Microsoft.SharePoint.Publishing.Internal.ScheduledItemEventReceiver");&lt;br /&gt;pageLibrary.EventReceivers.Add(SPEventReceiverType.ItemUpdating, "Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c", "Microsoft.SharePoint.Publishing.Internal.ScheduledItemEventReceiver");&lt;/blockquote&gt;&lt;br /&gt;Thats it! Seems easy enough, don't you think? These 5 lines of code made up a days work though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1885772335216499010-2189645266272630631?l=sharedpointers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharedpointers.blogspot.com/feeds/2189645266272630631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sharedpointers.blogspot.com/2008/08/enabling-item-scheduling-through-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/2189645266272630631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/2189645266272630631'/><link rel='alternate' type='text/html' href='http://sharedpointers.blogspot.com/2008/08/enabling-item-scheduling-through-code.html' title='Enabling Item Scheduling through code'/><author><name>Jan Steenbeek</name><uri>http://www.blogger.com/profile/12263354319780536957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885772335216499010.post-2025478353992350910</id><published>2008-08-15T04:08:00.000-07:00</published><updated>2011-02-23T02:20:59.844-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>CAML filtering using a time</title><content type='html'>CAML is the query language used to get content from libraries and lists in a SharePoint environment. The keywords are reminiscent of SQL, but they have been formatted to be XML. This means they are very hard to read and write. This is why many use the great (and free) &lt;a href="http://www.u2u.info/SharePoint/U2U%20Community%20Tools/Forms/AllItems.aspx"&gt;u2u CAML builder&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There are two pittfalls I dove into headfirst recently. When you create a custom control in c# you can specify a query to be executed on a SPList object. Easiest is to create your query in u2u and then copy-paste it into your code. However, you should remove the &amp;lt;query&amp;gt; and &amp;lt;/query&amp;gt; tags from your query. If you don't, the result will be all items from the list. Your query will do nothing. This can be quite hard to spot if you expected most or all your items to be returned.&lt;br /&gt;&lt;br /&gt;The second pittfall was in my query parameters. I wanted all items where a DateTime field was lower then "now". Now can be specified as&lt;br /&gt;&amp;lt;value type="DateTime"&amp;gt;&amp;lt;today /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;or you can get your code to output something like this:&lt;br /&gt;&amp;lt;value type="DateTime"&amp;gt;2008-08-08T16:34:07Z&amp;lt;/value&amp;gt;&lt;br /&gt;&lt;br /&gt;This will work. Kinda. It may take some time before you notice that the query processes the date just fine. However, the time part will be ignored. The second example effectively filters like it was:&lt;br /&gt;&amp;lt;value type="DateTime"&amp;gt;2008-08-08T00:00:00Z&amp;lt;/value&amp;gt;&lt;br /&gt;&lt;br /&gt;If you want the time value to be used you've got to say:&lt;br /&gt;&amp;lt;value type="DateTime" includedatetime="'TRUE'"&amp;gt;&amp;lt;Today /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Note: I used both the &amp;lt;Today /&amp;gt; and the yyyy-mm-ddThh-mm-ssZ format in my examples. Both exhibit the same behaviour on dates.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1885772335216499010-2025478353992350910?l=sharedpointers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharedpointers.blogspot.com/feeds/2025478353992350910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sharedpointers.blogspot.com/2008/08/caml-filtering-using-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/2025478353992350910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/2025478353992350910'/><link rel='alternate' type='text/html' href='http://sharedpointers.blogspot.com/2008/08/caml-filtering-using-time.html' title='CAML filtering using a time'/><author><name>Jan Steenbeek</name><uri>http://www.blogger.com/profile/12263354319780536957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885772335216499010.post-5909772371153858983</id><published>2008-08-11T00:54:00.000-07:00</published><updated>2011-02-23T02:21:15.331-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Administration'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>Using more than 3 filters in a CQWP</title><content type='html'>The CQWP has some limitations. One of those is that you are restricted to using no more than 3 filterfields for filtering your content. In some cases that's just not enough. There are more ways than 1 to circumvent this. The most obvious is defining a custom query in CAML (&lt;a href="http://msdn.microsoft.com/en-us/library/aa981241.aspx"&gt;msdn&lt;/a&gt;). This will work very well when your webpart is to be used in one particular place and doesn't have to be customized after it's added.&lt;br /&gt;&lt;br /&gt;However, when you want to use it in a more dynamic manner this won't do. The problem that came across my desk last week was that I had to check three boolean fields in the contenttype, and a date. The solution was to create an extra site column of the type "calculated". The value of this field was based on the other three boolean fields. Only when all three of them where false, the aggregate field would be true. Now I can filter on this field and the date field. I even have 1 filter left.&lt;br /&gt;&lt;br /&gt;Of course, this assumes that the fields you want to use in your filter can be aggregated in a standardized way. But if that's the case, this might just save you from having to write a custom web part.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1885772335216499010-5909772371153858983?l=sharedpointers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharedpointers.blogspot.com/feeds/5909772371153858983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sharedpointers.blogspot.com/2008/08/using-more-than-3-filters-in-cqwp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/5909772371153858983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/5909772371153858983'/><link rel='alternate' type='text/html' href='http://sharedpointers.blogspot.com/2008/08/using-more-than-3-filters-in-cqwp.html' title='Using more than 3 filters in a CQWP'/><author><name>Jan Steenbeek</name><uri>http://www.blogger.com/profile/12263354319780536957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885772335216499010.post-7689739941809240268</id><published>2008-08-07T23:40:00.000-07:00</published><updated>2011-02-23T02:21:23.673-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>"local device name is already in use"</title><content type='html'>There are quite a number of things you could be doing wrong when you're facing this error message. A quick Google search will show a lot of them. One thing Google doesn't mention is that it can also be related to a duplicate GUID that is used by two custom site columns and referenced by a feature reciever.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In my defense, maybe I was just recycling GUIDs out of fear I might someday run out... Or something like that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1885772335216499010-7689739941809240268?l=sharedpointers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharedpointers.blogspot.com/feeds/7689739941809240268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sharedpointers.blogspot.com/2008/08/local-device-name-is-already-in-use.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/7689739941809240268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/7689739941809240268'/><link rel='alternate' type='text/html' href='http://sharedpointers.blogspot.com/2008/08/local-device-name-is-already-in-use.html' title='&quot;local device name is already in use&quot;'/><author><name>Jan Steenbeek</name><uri>http://www.blogger.com/profile/12263354319780536957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885772335216499010.post-555416854354190253</id><published>2008-08-07T06:53:00.000-07:00</published><updated>2011-02-23T02:21:33.637-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>CQWP and custom column troubles</title><content type='html'>Last week I've been struggling with one of the most deceptive bugs I've ever encountered. I had created a custom site column, a date-time field. Multiple contenttypes (all pages) used this site column. Then I used a content by query webpart to show a list of pages on the site, filtered by my custom date field. The first time I tried this I got no results. I thought something had gone wrong in the declaration of my columns and types, so I made some minor modifications and tried again. It worked, I got results and I proudly published my work.&lt;br /&gt;&lt;br /&gt;One day later, a co-worker complained that the results of the CQWP were incorrect. I checked, and he was right. Some results should not have been shown but were, and some that should have been shown were missing. More than a day I spent on this until I found this great posting by Ranjan Banerji (the fact that the link reads "CQWP nightmares" should be a hint):&lt;br /&gt;&lt;a href="http://techblog.ranjanbanerji.com/post/2007/10/30/Content-Query-Web-Part-(CQWP)2c-Cross-List-Query-Nightmare-Part-3.aspx"&gt;http://techblog.ranjanbanerji.com/post/2007/10/30/Content-Query-Web-Part-(CQWP)2c-Cross-List-Query-Nightmare-Part-3.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What happens is that the custom date field gets assigned some generic name in the SQL database. This name is then used in the query by the CQWP. However, there is no guarantee that this name is the same in every content type that uses the custom site column. So the query could be right for only one of your contenttypes. It could also work for most. Maybe even all. But you might not notice you're missing some results until someone else points it out to you...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1885772335216499010-555416854354190253?l=sharedpointers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharedpointers.blogspot.com/feeds/555416854354190253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sharedpointers.blogspot.com/2008/08/cqwp-and-custom-column-troubles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/555416854354190253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/555416854354190253'/><link rel='alternate' type='text/html' href='http://sharedpointers.blogspot.com/2008/08/cqwp-and-custom-column-troubles.html' title='CQWP and custom column troubles'/><author><name>Jan Steenbeek</name><uri>http://www.blogger.com/profile/12263354319780536957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885772335216499010.post-2396903883069673110</id><published>2008-08-07T06:28:00.000-07:00</published><updated>2011-02-23T06:04:06.700-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Welcome</title><content type='html'>Welcome to Jan's Shared Pointers. This will be the place where I document my road to SharePoint wisdom. I hope to share some little things I had to find out the hard way.&lt;br /&gt;&lt;br /&gt;By the way, I'm Dutch. If you see any spelling or grammar errors I won't be offended if you point (no pun intended) them out to me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1885772335216499010-2396903883069673110?l=sharedpointers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharedpointers.blogspot.com/feeds/2396903883069673110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sharedpointers.blogspot.com/2008/08/welcome.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/2396903883069673110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885772335216499010/posts/default/2396903883069673110'/><link rel='alternate' type='text/html' href='http://sharedpointers.blogspot.com/2008/08/welcome.html' title='Welcome'/><author><name>Jan Steenbeek</name><uri>http://www.blogger.com/profile/12263354319780536957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
