<?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>Neil on SharePoint</title>
	<atom:link href="http://www.neilrichards.net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.neilrichards.net</link>
	<description></description>
	<lastBuildDate>Sat, 07 May 2011 21:55:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Missing document icons from search results with FAST for SharePoint</title>
		<link>http://www.neilrichards.net/uncategorized/missing-document-icons-from-search-results-with-fast-for-sharepoint</link>
		<comments>http://www.neilrichards.net/uncategorized/missing-document-icons-from-search-results-with-fast-for-sharepoint#comments</comments>
		<pubDate>Sat, 07 May 2011 21:25:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FAST]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.neilrichards.net/blog/?p=184</guid>
		<description><![CDATA[There’s a defect whereby your search results in SharePoint will not have document icons if you’re using FAST for SharePoint. This will happen to you, whenever you’re using a Document Library created from a custom Document Library template (i.e. Type != 101). Why this happens The problem is that the contentclass of documents from custom [...]]]></description>
			<content:encoded><![CDATA[<p>There’s a defect whereby your search results in SharePoint will not have document icons if you’re using FAST for SharePoint.</p>
<p><a href="http://www.neilrichards.net/blog/wp-content/uploads/2011/05/SearchResults1.png"><img class="size-full wp-image-188" title="SearchResults" src="http://www.neilrichards.net/blog/wp-content/uploads/2011/05/SearchResults1.png" alt="" width="638" height="177" /></a></p>
<p>This will happen to you, whenever you’re using a Document Library created from a custom Document Library template (i.e. Type != 101).</p>
<p><strong>Why this happens</strong></p>
<p>The problem is that the <strong>contentclass</strong> of documents from custom libraries indexed by FAST in is not compatible with the way the <strong>Core Results Web Part</strong> determines which icon to display. Under normal circumstances, FAST allocates documents a <strong>contentclass</strong> of <strong>STS_ListItem_DocumentLibrary</strong> and when search results are returned to the <strong>Core Results</strong> <strong>Web Part</strong> as an xml document, our document is accompanied by an <strong>imageurl</strong> element which points to an icon within the layouts folder (i.e.  /_layouts/images/icdocx.png).</p>
<p>When using a custom document library, let’s say with a type of 15000, the <strong>contentclass</strong> will be STS_ListItem_15000 and the <strong>Core Results Web Part</strong> will be returned an <strong>imageurl</strong> element of /_layouts/images/STS_ListItem16.gif.</p>
<p>This has been accepted as a bug by the product team. Unfortunately, So far as I know, it is not likely to be resolved in either upcoming hotfixes or Service Pack 1 (I have no visibility of any future CUs or Service Packs). The Microsoft-recommended workaround is to create a <a href="http://msdn.microsoft.com/en-us/library/ff795801.aspx">Custom Pipeline Extension</a> whereby library items that have a <strong>contentclass</strong> of <strong>STS_ListIem_&lt;a number&gt; </strong>are converted to<strong> STS_ListItem_DocumentLibrary</strong>.</p>
<p>I’m checking into whether I can post some PSS-provided sample code for the pipeline extension, but until then, <a href="http://msdn.microsoft.com/en-us/library/ff795801.aspx">visit this page on MSDN</a> to get instructions on how to create one.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neilrichards.net/uncategorized/missing-document-icons-from-search-results-with-fast-for-sharepoint/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Slides from my talk on FAST for SharePoint at the Best Practices Conference</title>
		<link>http://www.neilrichards.net/presentation/slides-from-my-talk-on-fast-for-sharepoint-at-the-best-practices-conference</link>
		<comments>http://www.neilrichards.net/presentation/slides-from-my-talk-on-fast-for-sharepoint-at-the-best-practices-conference#comments</comments>
		<pubDate>Thu, 14 Apr 2011 13:04:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FAST]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[sharepoint2010]]></category>
		<category><![CDATA[fast]]></category>
		<category><![CDATA[fs4sp]]></category>
		<category><![CDATA[sharepoint 2010]]></category>

		<guid isPermaLink="false">http://www.neilrichards.net/blog/?p=178</guid>
		<description><![CDATA[FAST for SharePoint Deep Dive View more presentations from neil_richards]]></description>
			<content:encoded><![CDATA[<div style="width:425px" id="__ss_7625033"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/neil_richards/avanade-fast-for-sharepoint-deep-dive" title="FAST for SharePoint Deep Dive">FAST for SharePoint Deep Dive</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/7625033" width="800" height="668" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/neil_richards">neil_richards</a> </div>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.neilrichards.net/presentation/slides-from-my-talk-on-fast-for-sharepoint-at-the-best-practices-conference/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Key Tools from my talk on FAST at the SharePoint Best Practices Conference</title>
		<link>http://www.neilrichards.net/sharepoint/key-tools-from-my-talk-at-the-sharepoint-best-practices-conference</link>
		<comments>http://www.neilrichards.net/sharepoint/key-tools-from-my-talk-at-the-sharepoint-best-practices-conference#comments</comments>
		<pubDate>Mon, 11 Apr 2011 06:06:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FAST]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[sharepoint2010]]></category>

		<guid isPermaLink="false">http://www.neilrichards.net/blog/?p=173</guid>
		<description><![CDATA[There are more out there, but these are the primary tools I use when working with FAST for SharePoint. QR Server debugging queries &#62;&#62; Use this to inspect queries coming from SharePoint to FAST. FFD Dumper for inspecting crawled properties &#62;&#62; Use this to inspect crawled properties MossMan FAST Query tool &#62;&#62; A handy little [...]]]></description>
			<content:encoded><![CDATA[<div>There are more out there, but these are the primary tools I use when working with FAST for SharePoint.</div>
<ul>
<li><a href="http://www.neilrichards.net/blog/?p=100">QR Server debugging queries</a> &gt;&gt; Use this to inspect queries coming from SharePoint to FAST.</li>
<li><a href="http://www.neilrichards.net/blog/?p=153">FFD Dumper for inspecting crawled properties</a> &gt;&gt; Use this to inspect crawled properties</li>
<li><a href="http://fastforsharepoint.codeplex.com/">MossMan FAST Query tool</a> &gt;&gt; A handy little tool which allows you to build queries yourself, and interrogate FAST. Useful when writing custom FAST control.</li>
<li><a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ead44c66-7d02-4edf-9e56-2f56c6f59f22&amp;displaylang=en">FASTSearch2010.chm</a> &gt;&gt; A downloadable MSDN reference which holds a ton of PowerShell commands that relate to configuring FAST</li>
<li><a href="http://www.google.co.uk/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBkQFjAA&amp;url=http%3A%2F%2Fwww.microsoft.com%2Fdownloads%2Fdetails.aspx%3FFamilyID%3D751fa0d1-356c-4002-9c60-d539896c66ce&amp;ei=DZmiTdWxBsGnhAec69SSBQ&amp;usg=AFQjCNHIyqgWpBKvOwJchb10LZ5oRKD6nw">Information Worker Demo VM</a> &gt;&gt; Downloadable VM from Microsoft that is setup and ready to use. Comes with FAST 4 SharePoint preconfigured</li>
<li><a href="http://powergui.org/index.jspa">PowerGui</a> &gt;&gt; IDE for working with PowerShell. Invaluable if you&#8217;re working with PowerShell for a longer period of time.</li>
<li><a href="http://www.google.co.uk/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBYQFjAA&amp;url=http%3A%2F%2Ffs4splogger.codeplex.com%2F&amp;ei=_ZiiTYP5FJKyhAfcrZSEBQ&amp;usg=AFQjCNH1OF7wfmjM4VOd0J4pRUbGPTIf1w">FAST Query Logger</a> &gt;&gt; A new tool which makes working with the QR Server significantly easier.</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neilrichards.net/sharepoint/key-tools-from-my-talk-at-the-sharepoint-best-practices-conference/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Debugging FAST for SharePoint : Part 2 – the FFDumper; inspecting crawled properties</title>
		<link>http://www.neilrichards.net/sharepoint/debugging-fast-for-sharepoint-part-2-%e2%80%93-the-ffdumper-inspecting-crawled-properties</link>
		<comments>http://www.neilrichards.net/sharepoint/debugging-fast-for-sharepoint-part-2-%e2%80%93-the-ffdumper-inspecting-crawled-properties#comments</comments>
		<pubDate>Tue, 22 Mar 2011 09:01:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FAST]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[sharepoint2010]]></category>

		<guid isPermaLink="false">http://www.neilrichards.net/blog/?p=153</guid>
		<description><![CDATA[Previously I blogged about the QR Server, my first port of call whenever I need to debug FAST. At that stage I ask the question “What does FAST know about this document?” and the QR Server is the best place to start looking. Sometimes, the information in the QR Server isn’t enough to figure out [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.neilrichards.net/blog/wp-content/uploads/2011/03/ffd6.png"><br />
</a>Previously I blogged about the QR Server, my first port of call whenever I need to debug FAST. At that stage I ask the question “What does FAST know about this document?” and the QR Server is the best place to start looking.</p>
<p>Sometimes, the information in the QR Server isn’t enough to figure out what’s going wrong. If that’s the case, my next question is usually “What is FAST told about this document?”</p>
<p>As part of this process it is critical to understand the difference between Crawled &amp; Managed Properties.</p>
<p>A Crawled Property is something that is fed into the FAST document processing engine. It may or may not decide to index and keep what it finds. If the information it does is not ignored it will end up in the Full Text index, a Managed Property, or both. Crawled Properties à What FAST is told, Managed Properties à What FAST knows and has decided to keep.</p>
<p>While the QR Server is for managed properties, you use a tool called <strong>FFDDumper</strong> to inspect crawled properties.</p>
<p>The debugging process for using the FFDDumper goes like this:</p>
<ol>
<li>Enable the FFDDumper &amp; reset your document processors</li>
<li>Mark an individual document for being re-crawled</li>
<li>Start an incremental crawl</li>
<li>Inspect the generated FFD files</li>
<li>Turn off the FFDDumper and reset your document processors</li>
</ol>
<p><strong>Enabling the FFDDump</strong></p>
<p>There is a file in your FAST installation folder called optionalprocessing.xml (found under %FASTSEARCH%\etc\config_data\DocumentProcessor\). This file is for configuring optional processing pipelines (duh!).</p>
<p>Find the element that looks like the one below and set it to yes.</p>
<p>&lt;processor name=&#8221;FFDDumper&#8221; active=&#8221;<strong>yes</strong>&#8221; /&gt;</p>
<p><strong>THIS WILL SLOW DOWN YOUR SERVER AND GOBBLE DISK SPACE!</strong> Use this for temporary debugging only, and really, only use it for incremental crawls or else the sheer volume of data will make it very difficult to find what you want.</p>
<p>Reset your processing pipelines from the FAST PowerShell console with a</p>
<p>&gt; psctrl reset</p>
<p><strong>Marking a document for re-crawl</strong></p>
<p>In SharePoint navigate to your FAST Content Service Application and mark a single document for a re-crawl. Alternatively, make a small change to a document (make sure the document is published).</p>
<p>&nbsp;</p>
<p><a href="http://www.neilrichards.net/blog/wp-content/uploads/2011/03/ffd1.png"><img class="alignleft size-full wp-image-154" title="ffd1" src="http://www.neilrichards.net/blog/wp-content/uploads/2011/03/ffd1.png" alt="" width="1008" height="610" /></a></p>
<p style="clear: left;">&nbsp;</p>
<p>Kick off an incremental crawl by going to the context menu of your Content Source.</p>
<p><img class="alignleft size-full wp-image-155" title="ffd2" src="http://www.neilrichards.net/blog/wp-content/uploads/2011/03/ffd2.png" alt="" width="733" height="438" /></p>
<p style="clear: left;">&nbsp;</p>
<p><strong>Inspecting the generated FFD Files</strong></p>
<p>If you navigate to %FASTSEARCH%\data\ffd you’ll find one or more folders. Go to the newest folder and look inside. There should be a few .ffd files, one of which will contain the ssic of your document (you can get this from the QR server).</p>
<p><a href="http://www.neilrichards.net/blog/wp-content/uploads/2011/03/ffd3.png"><img class="alignleft size-full wp-image-156" title="ffd3" src="http://www.neilrichards.net/blog/wp-content/uploads/2011/03/ffd3.png" alt="" width="834" height="369" /></a></p>
<p style="clear: left;">&nbsp;</p>
<p><a href="http://www.neilrichards.net/blog/wp-content/uploads/2011/03/ffd4.png"><img class="alignleft size-full wp-image-157" title="ffd4" src="http://www.neilrichards.net/blog/wp-content/uploads/2011/03/ffd4.png" alt="" width="960" height="836" /></a></p>
<p style="clear: left;">&nbsp;</p>
<p>Each line from the FFDDumper will look something like the following:</p>
<p><a href="http://www.neilrichards.net/blog/wp-content/uploads/2011/03/ffd5.png"><img class="alignleft size-full wp-image-158" title="ffd5" src="http://www.neilrichards.net/blog/wp-content/uploads/2011/03/ffd5.png" alt="" width="567" height="21" /></a></p>
<p style="clear: left;">&nbsp;</p>
<p>The format of each line includes:</p>
<ul>
<li>Length of property identifier &amp; name</li>
<li>Property identifier (may be a GUID)</li>
<li>Property name</li>
<li>Variant Type</li>
<li>Length of the property value (often preceded by an &#8216;s&#8217;)</li>
<li>The property value</li>
</ul>
<p>Only lines with GUIDs are available to be mapped into Managed Properties. Lines without GUIDs are internal to FAST and are not accessible. If you look at the screenshot below, the unfortunate implication is that you can’t write your own pipeline extension to run against the raw crawled data.</p>
<p>&nbsp;</p>
<p><a href="http://www.neilrichards.net/blog/wp-content/uploads/2011/03/ffd6.png"><img class="alignleft size-full wp-image-161" title="ffd6" src="http://www.neilrichards.net/blog/wp-content/uploads/2011/03/ffd6.png" alt="" width="588" height="256" /></a></p>
<p style="clear: left;">&nbsp;</p>
<p><strong>Reset the FFDDump</strong></p>
<p>Once you’re done, reset the FFD Dump to its regular configuration</p>
<p>&lt;processor name=&#8221;FFDDumper&#8221; active=&#8221;<strong>no</strong>&#8221; /&gt;</p>
<p>Finally, run a <strong>psctrl reset </strong>to load the updated settings of optionalprocessing.xml</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neilrichards.net/sharepoint/debugging-fast-for-sharepoint-part-2-%e2%80%93-the-ffdumper-inspecting-crawled-properties/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>FAST Search site collection features are not activated</title>
		<link>http://www.neilrichards.net/sharepoint/fast-search-site-collection-features-are-not-activated</link>
		<comments>http://www.neilrichards.net/sharepoint/fast-search-site-collection-features-are-not-activated#comments</comments>
		<pubDate>Mon, 07 Mar 2011 23:08:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FAST]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[sharepoint2010]]></category>

		<guid isPermaLink="false">http://www.neilrichards.net/blog/?p=149</guid>
		<description><![CDATA[I&#8217;ve recently created a new SharePoint site collection but was missing the FAST features out of the Site Collection Settings. I had a site collection within the same Web Application where the features were present and so was very confused. I already had added myself to the FASTSearchAdministrators and the FASTSearchKeywordAdministrators groups on my FAST server [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently created a new SharePoint site collection but was missing the FAST features out of the Site Collection Settings. I had a site collection within the same Web Application where the features were present and so was very confused. I already had added myself to the FASTSearchAdministrators and the <a href="http://technet.microsoft.com/en-us/library/ff381251.aspx">FASTSearchKeywordAdministrators</a> groups on my FAST server which can also keep the FAST options hidden, and besides, I already had them visible elsewhere.</p>
<p>There were no obvious features to activate within the Site Collection features, and I had standard, enterprise &amp; publishing features enabled. Noting the url of one of the pages in the working site collection I tried loading it up in the broken one. For example:</p>
<ul>
<li>site/workingSC/_layouts/contextualkeywordmanagement.aspx</li>
<li>site/brokenSC/_layouts/contextualkeywordmanagement.aspx</li>
</ul>
<p>At this point I got the standard SharePoint error popup with the message <span style="color: #ff0000;">FAST Search site collection features are not activated<span style="color: #000000;">. Pretty obvious what&#8217;s going on, the feature isn&#8217;t activated and there&#8217; s no obvious way to do so via the UI. </span></span></p>
<p><strong>Finding the Feature GUID</strong></p>
<p><span style="color: #ff0000;"><span style="color: #000000;">Digging through the API using Reflector reveals this method which any reasonable developer can infer will give you the error message above.</span></span></p>
<pre>private static void ValidatePremiumSiteCollectionFeature()
{
   if (SPContext.Current.Site.Features[new Guid(SearchAdminConstants.FAST_SITE_ADMIN_FEATURE_ID)] == null)
   {
     ReportError(StringResourceManager.GetString(LocStringId.FSAdmin_Fast_Site_Admin_Feature_Not_Activated));
   }
}</pre>
<p>A little more use of Reflector gets you the GUID for the FAST Site Admin Feature (5EAC763D-FBF5-4d6f-A76B-EDED7DD7B0A5).</p>
<p>Armed with this guid you can get the Feature definition. You don&#8217;t need it, but it&#8217;s interesting regardless (I&#8217;ve never seen this available via the UI).</p>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; font-size: 12px; line-height: 18px; white-space: pre;">Get-SPFeature | ? { $_.id -eq &#8220;5EAC763D-FBF5-4d6f-A76B-EDED7DD7B0A5&#8243; } </span></p>
<pre>
DisplayName                    Id                                       Scope
-----------                    --                                       -----
SearchExtensions               5eac763d-fbf5-4d6f-a76b-eded7dd7b0a5     Site</pre>
<p>From here, if you want to add the feature to a site collection simply run the following PowerShell</p>
<p>$siteWithNoFastFeatures = get-SPSite http://mysite/noFAST<br />
$siteWithNoFastFeatures.Features.Add(&#8220;5EAC763D-FBF5-4d6f-A76B-EDED7DD7B0A5&#8243;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neilrichards.net/sharepoint/fast-search-site-collection-features-are-not-activated/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Problem using Managed Metadata fields in the User Profile Service</title>
		<link>http://www.neilrichards.net/sharepoint/problem-using-managed-metadata-fields-in-the-user-profile-service</link>
		<comments>http://www.neilrichards.net/sharepoint/problem-using-managed-metadata-fields-in-the-user-profile-service#comments</comments>
		<pubDate>Mon, 07 Mar 2011 18:19:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[sharepoint2010]]></category>

		<guid isPermaLink="false">http://www.neilrichards.net/blog/?p=136</guid>
		<description><![CDATA[Ever got this helpful message when trying to configure the user profile to use a termset? There was a problem retrieving data for this field. Updating values in this field is disabled temporarily. You can still update values in other fields. Love it! There are lots of potential causes for this. Earlier today I found [...]]]></description>
			<content:encoded><![CDATA[<p>Ever got this helpful message when trying to configure the user profile to use a termset?</p>
<p style="padding-left: 30px;"><span style="color: #ff0000;">There was a problem retrieving data for this field. Updating values in this field is disabled temporarily. You can still update values in other fields.</span></p>
<p>Love it!</p>
<p>There are lots of potential causes for this. Earlier today I found that my problem was caused by an issue outlined on <a href="http://donalconlon.wordpress.com/2010/07/29/user-profile-metadata-properties-not-recognizing-the-term-store/">Donal Colon&#8217;s blog</a>.</p>
<p>Here&#8217;s my setup:</p>
<ul>
<li>Managed metadata started, configured and running as the only MM Service in my farm</li>
<li>MM service was associated with all web apps</li>
<li>User profile service was configured correctly (I could do profile syncing) and could even associate fields with a Managed Metadata term.</li>
</ul>
<p>However, with all these things, I wasn&#8217;t feeling any User Profile / Managed Metadata love. This was potentially a big problem as I have a client delivery counting on User Contexts in Search (depending upon said UP/MM love).</p>
<p>Enter Donal Colon.</p>
<p>His post suggests that if you don&#8217;t tick the default storage location for keywords when you have TWO MM services then you can get problems like the one I encountered. He also highlighted that having two MM services conflicting can cause a problem.</p>
<p><a href="http://www.neilrichards.net/blog/wp-content/uploads/2011/03/mmupLove.jpg"><img class="alignleft size-full wp-image-141" title="mmupLove" src="http://www.neilrichards.net/blog/wp-content/uploads/2011/03/mmupLove.jpg" alt="" width="785" height="209" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Well, I only had one Managed Metadata service, but if you don&#8217;t have this  box ticked, then you aren&#8217;t getting any terms in your User Profile Service either.</p>
<p>Thanks Donal!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neilrichards.net/sharepoint/problem-using-managed-metadata-fields-in-the-user-profile-service/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rendering html in a SharePoint Dialog requires a DOM element and not a String</title>
		<link>http://www.neilrichards.net/design/rendering-html-in-a-sharepoint-dialog-requires-a-dom-element-and-not-a-string</link>
		<comments>http://www.neilrichards.net/design/rendering-html-in-a-sharepoint-dialog-requires-a-dom-element-and-not-a-string#comments</comments>
		<pubDate>Sat, 26 Feb 2011 09:01:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[sharepoint2010]]></category>

		<guid isPermaLink="false">http://www.neilrichards.net/blog/?p=124</guid>
		<description><![CDATA[Most of the examples of using dialogs in SharePoint refer to calling other pages, effectively creating a popup iframe. This approach is both useful and reasonably well documented (Charlie Holland’s blog has the best examples I’ve seen to date). &#160; &#60;script&#62; function ShowDialog() { var options = { url: 'http://www.google.com', autoSize:true, allowMaximize:true, title: 'Test dialog', [...]]]></description>
			<content:encoded><![CDATA[<p>Most of the examples of using dialogs in SharePoint refer to calling other pages, effectively creating a popup iframe. This approach is both useful and reasonably well documented (<a href="http://www.chaholl.com/archive/2010/11/17/using-the-dialog-framework-in-sharepoint-2010.aspx">Charlie Holland’s blog</a> has the best examples I’ve seen to date).</p>
<p>&nbsp;</p>
<pre class="brush: js">&lt;script&gt;

	function ShowDialog()
	{
		var options = {
			url: 'http://www.google.com',
			autoSize:true,
			allowMaximize:true,
			title: 'Test dialog',
			showClose: true,
		};
		var dialog = SP.UI.ModalDialog.showModalDialog(options);
	}

&lt;/script&gt;

&lt;a href="javascript:ShowDialog()"&gt;Boo&lt;/a&gt;</pre>
<p>What isn’t well documented is using SharePoint modal dialogs to render dynamically generated html. When you call SP.UI.ModalDialog.ShowModalDialog you need to pass in a SP.UI.DialogOptions object. Charlie kindly <a href="http://msdn.microsoft.com/en-us/library/ff410058.aspx">posted the list onto MSDN</a>, but with regards to passing in html it’s incorrect. It seems to indicate that raw html can be passed in.</p>
<pre class="brush: js">&lt;script&gt;

	function ShowDialog()
	{
		var htmlString = 'hello world';

		var options = {
			html: htmlString,
			autoSize:true,
			allowMaximize:true,
			title: 'Test dialog',
			showClose: true,
		};

		var dialog = SP.UI.ModalDialog.showModalDialog(options);
	}

&lt;/script&gt;

&lt;a href="javascript:ShowDialog()"&gt;Boo&lt;/a&gt;</pre>
<p>&nbsp;</p>
<p>However if you try this you’ll just get an error like this:</p>
<p>&nbsp;</p>
<pre>Message: Object doesn't support this property or method
Line: 2
Char: 18225
Code: 0
URI: <a href="#">http:///_layouts/sp.ui.dialog.js?rev=IuXtJ2CrScK6oX4zOTTy%2BA%3D%3D</a></pre>
<p>&nbsp;</p>
<p>This is because the string that gets passed in is evaluated for nodeType (if you want to check for yourself, see around line 764 in SP.UI.Dialog.debug.js, there is a function that the html string is passed into with a definition that looks like $13_0: function($p0).</p>
<p>&nbsp;</p>
<p>What this means is that you have to pass in a DOM element.</p>
<pre class="brush: js"> 

&lt;script&gt;

	function ShowDialog()
	{
		var htmlElement = document.createElement('p');

		var helloWorldNode = document.createTextNode('Hello world!');
		htmlElement.appendChild(helloWorldNode);

		var options = {
			html: htmlElement,
			autoSize:true,
			allowMaximize:true,
			title: 'Test dialog',
			showClose: true,
		};

		var dialog = SP.UI.ModalDialog.showModalDialog(options);
	}

&lt;/script&gt;

&lt;a href="javascript:ShowDialog()"&gt;Boo&lt;/a&gt;</pre>
<p>Do that, and you’ll get your dynamic-html dialog!</p>
<p><a href="http://www.neilrichards.net/blog/wp-content/uploads/2011/02/helloWorld.jpg"><img class="alignleft size-full wp-image-125" title="helloWorld" src="http://www.neilrichards.net/blog/wp-content/uploads/2011/02/helloWorld.jpg" alt="" width="503" height="65" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neilrichards.net/design/rendering-html-in-a-sharepoint-dialog-requires-a-dom-element-and-not-a-string/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Debugging FAST for SharePoint : Part 1 &#8211; the QRServer</title>
		<link>http://www.neilrichards.net/sharepoint/debugging-fast-for-sharepoint-part-1-the-qrserver</link>
		<comments>http://www.neilrichards.net/sharepoint/debugging-fast-for-sharepoint-part-1-the-qrserver#comments</comments>
		<pubDate>Fri, 04 Feb 2011 01:40:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FAST]]></category>
		<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.neilrichards.net/blog/?p=100</guid>
		<description><![CDATA[With FAST for SharePoint being so new, it’s difficult to know how to work with the product when it comes to debugging. There are many different questions: What does it know about document x? What is FAST returning to my SharePoint server? What is the rank of a certain document? What is SharePoint asking FAST? [...]]]></description>
			<content:encoded><![CDATA[<p>With FAST for SharePoint being so new, it’s difficult to know how to work with the product when it comes to debugging. There are many different questions:</p>
<ul>
<li>What does it know about document x?</li>
<li>What is FAST returning to my SharePoint server?</li>
<li>What is the rank of a certain document?</li>
<li>What is SharePoint asking FAST?</li>
<li>Why aren&#8217;t User Contexts working? Are User Contexts working?</li>
</ul>
<p>For all of these questions, the QRServer is an invaluable tool.</p>
<h1>What is the QR Server?</h1>
<p>The Query Result (QR) Server, is a way to speak with FAST directly, without worrying about SharePoint. It&#8217;s a web site, accessible only to users <strong>logged in</strong> to the FAST server that allows users to fire queries into FAST and see the resulting XML. This is important because it allows users to rule-out (or in) SharePoint as the culprit for broken searches.</p>
<p>By default, the QR Server respects content security rules, so using different accounts on the QR Server will give you different results.</p>
<h1>How do I find my QR Server?</h1>
<p>You access the QR Server via a web-browser. The url to type is http://&lt;fastservername&gt;:&lt;basePortNumber+280&gt;/. So let’s say the ever popular contoso.com is served by a FAST server with the name <a href="http://fscontoso1.controso.com/">http://fsContoso1.controso.com</a> using the default base port number of 13000. In that case you’d need to navigate to http://fsContoso1.controso.com:13280.</p>
<p>The QR Server is ONLY accessible directly from a FAST server, so you must Remote Desktop onto the server to use it. From there, you find your base port number by looking at the hostconfiguration.xml in the &lt; FASTInstallLocation&gt;/etc/ folder</p>
<p><a style="clear: right;" href="http://www.neilrichards.net/blog/wp-content/uploads/2011/01/FASTDEBUG-1.png"><img class="alignleft size-full wp-image-104" title="FASTDEBUG-1" src="http://www.neilrichards.net/blog/wp-content/uploads/2011/01/FASTDEBUG-1.png" alt="" width="735" height="851" /></a><br />
<a href="http://www.neilrichards.net/blog/wp-content/uploads/2011/01/FASTDEBUG-2.png"><img class="alignleft size-full wp-image-105" style="float: none;" title="FASTDEBUG-2" src="http://www.neilrichards.net/blog/wp-content/uploads/2011/01/FASTDEBUG-2.png" alt="" width="868" height="825" /></a></p>
<p><strong>The FAST Query Game</strong></p>
<p>Debugging queries in a production or UAT environment is a serious pain. This technique was taught to me by a FAST Ninja (thanks Torstein!) and is a bit bizarre. It involves running a query from SharePoint and then extracting the data passed to FAST out of a log file and manually resubmitting the query on the FAST server, all within 15 seconds.</p>
<p>This approach is necessary because along with your query, SharePoint sends FAST  a user authorization token that is only valid for a short period of time.</p>
<p><strong>Preparation:</strong></p>
<ul>
<li>You must be logged into the FAST server</li>
<li>Open Windows Explorer and navigate to &lt;FASTInstallLocation&gt;/var/logs/querylogs/. Find the most recently modified file.</li>
<li>Open a copy of NotePad (or your favourite text editor)</li>
<li>On the FAST server, open a web browser and navigate to the QR Server.
<ul>
<li>Search for the term &#8220;test&#8221;</li>
</ul>
</li>
<li>Anywhere
<ul>
<li>Open a web browser and navigate to the SharePoint search UI.</li>
</ul>
</li>
<li>At this stage you will have 1x Notepad, 1x Windows Explorer, 2x Web browsers</li>
</ul>
<p><strong>The rules:</strong></p>
<ul>
<li>You must execute your queries from the SharePoint server, via the UI</li>
<li>You have 15 seconds to complete the following process&#8230; or you die… probably.</li>
</ul>
<p><strong>STEP 1: </strong>On your SharePoint FAST Search Centre, execute your query</p>
<p><a href="http://www.neilrichards.net/blog/wp-content/uploads/2011/01/FASTDEBUG-3.png"><img class="alignleft size-full wp-image-106" style="float: none;" title="FASTDEBUG-3" src="http://www.neilrichards.net/blog/wp-content/uploads/2011/01/FASTDEBUG-3.png" alt="" width="1061" height="790" /></a></p>
<p><strong>STEP 2: </strong>Quickly switch to the FAST server and into the the FAST log folder. Open the most recent log file in <strong>Notepad</strong> and navigate to the bottom, making sure Word Wrap is on.</p>
<p><a href="http://www.neilrichards.net/blog/wp-content/uploads/2011/01/FASTDEBUG-4.png"><img class="alignleft size-full wp-image-107" style="float: none;" title="FASTDEBUG-4" src="http://www.neilrichards.net/blog/wp-content/uploads/2011/01/FASTDEBUG-4.png" alt="" width="1079" height="623" /></a></p>
<p><strong>STEP 3:</strong> Take the last url in the file</p>
<p><a href="http://www.neilrichards.net/blog/wp-content/uploads/2011/01/FASTDEBUG-5.png"><img class="alignleft size-full wp-image-108" style="float: none;" title="FASTDEBUG-5" src="http://www.neilrichards.net/blog/wp-content/uploads/2011/01/FASTDEBUG-5.png" alt="" width="1079" height="158" /></a></p>
<p>You will need to grab the url from the  querystring, taking everything after <strong>“search?” </strong>until the HTTP/1.1 text. In a production environment this can span multiple lines and be tricky to select within the 15 second limit. This is usually the part where I run out of time.</p>
<p><strong>STEP 4: </strong>On the QR Server, paste the querystring into the location noted below</p>
<p><a href="http://www.neilrichards.net/blog/wp-content/uploads/2011/01/FASTDEBUG-6.png"><img class="alignleft size-full wp-image-109" style="float: none;" title="FASTDEBUG-6" src="http://www.neilrichards.net/blog/wp-content/uploads/2011/01/FASTDEBUG-6.png" alt="" width="692" height="236" /></a></p>
<p><strong>STEP 5: </strong>Hit &#8220;go&#8221;, &#8220;enter&#8221; or whatever to start your search and see the results FAST sent back to SharePoint</p>
<p>If you run out of time, you’ll see the same QUERYTRANSFORMS elements, but nothing else.</p>
<h1>Interpreting the results</h1>
<p>Following a successful round of the FAST Debugging game, you can investigate the results. I can&#8217;t possibly describe each element, but at a high-level:</p>
<ul>
<li>QUERYTRANSFORMS à Describes what was submitted through SharePoint. Refiner selections, user contexts, sorting selections will all appear here.</li>
<li>NAVIGATION à Indicate what refinement data is being sent back to the server. Useful when the number of displayed refiners seems incorrect.</li>
<li>RESULTSET à Includes all the search hits from the current “page”, including the value of every <strong>managed property</strong> (i.e. attributes of a document that FAST gives special treatment). While it doesn’t give you a way to interrogate every <strong>crawled property</strong> you also get to look at the rank of a document</li>
<li>PAGENAVIGATION à If you work in Collaboration you’re smart enough to figure this out.</li>
</ul>
<p>I&#8217;ll talk more about interpreting the results in my next post, but for now, I hope this helps.</p>
<p>Cheers!</p>
<p>Neil</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neilrichards.net/sharepoint/debugging-fast-for-sharepoint-part-1-the-qrserver/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Fixing the SharePoint 2010 Breadcrumb</title>
		<link>http://www.neilrichards.net/sharepoint2010/fixing-the-sharepoint-2010-breadcrumb</link>
		<comments>http://www.neilrichards.net/sharepoint2010/fixing-the-sharepoint-2010-breadcrumb#comments</comments>
		<pubDate>Sun, 18 Jul 2010 16:03:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[branding]]></category>
		<category><![CDATA[sharepoint2010]]></category>
		<category><![CDATA[masterpage]]></category>

		<guid isPermaLink="false">http://www.neilrichards.net/blog/?p=83</guid>
		<description><![CDATA[In SharePoint 2010 default masterpage (v4.master) has delivered Breadcrumbs in a new, and I think confusing, way. From my perspective, this approach is difficult to use because it is hidden from the user. Once you know about it the breadcrumb is easier to find, but its nowhere near as usable as a traditional breadcrumb. Smashing Magazine [...]]]></description>
			<content:encoded><![CDATA[<p>In SharePoint 2010 default masterpage (v4.master) has delivered Breadcrumbs in a new, and I think confusing, way.</p>
<div class="wp-caption alignleft" style="width: 503px"><a href="http://muraray.wordpress.com/2009/12/12/a-fresh-move-towards-the-up-navigation-button-embedded-on-the-sharepoint-2010-ribbon/"><img title="SharePoint 2010 Breadcrumb" src="http://muraray.files.wordpress.com/2010/01/clip_image002_thumb.jpg" alt="SharePoint 2010 Breadcrumb" width="493" height="198" /></a><p class="wp-caption-text">SharePoint 2010 Breadcrumb</p></div>
<p>From my perspective, this approach is difficult to use because it is hidden from the user. Once you know about it the breadcrumb is easier to find, but its nowhere near as usable as a traditional breadcrumb.</p>
<p><a href="http://www.smashingmagazine.com/2009/03/17/breadcrumbs-in-web-design-examples-and-best-practices-2/">Smashing Magazine</a> offers a range of alternatives you can consider in implementing your own breadcrumb which are worth considering if you want to create a fully-customised master page.</p>
<p>However, want if you want a breadcrumb of the same style as SP2007?</p>
<p><a href="http://www.thesanitypoint.com/archive/2009/12/13/sharepoint-2010-everything-old-is-new-again.aspx"><img title="2007 Breadcrumb" src="http://www.thesanitypoint.com/Lists/Posts/Attachments/77/image_18_25711807.png" alt="" width="233" height="67" /></a></p>
<p>What if you want to revert the 2010 breadcrumb into the style of the 2007 breadcrumb? Well it turns out that the v3 masterpage(the 2007-style masterpage that runs on SharePoint 2010 to allow companies to avoid a visual upgrade) runs the old-school masterpage.</p>
<p>If you dive into the v3 masterpage (default.master) you can see the following snippet to in place of the breadcrumbs.</p>
<p style="padding-left: 30px;">&lt;asp:SiteMapPath SiteMapProvider=&#8221;SPContentMapProvider&#8221; id=&#8221;ContentMap&#8221;  SkipLinkText=&#8221;" RenderCurrentNodeAsLink=&#8221;true&#8221;  NodeStyle-CssClass=&#8221;ms-sitemapdirectional&#8221; runat=&#8221;server&#8221;/&gt;</p>
<p>As it turns out, if you paste that snippet into the v4 masterpage it will work perfectly.</p>
<p><strong>Update: </strong>Turns out it won&#8217;t work perfectly, but its pretty good. There are a number of circumstances (i.e. site settings page) where it falls short, but for most users its better than nothing. To have a perfect breadcrumb, unfortunately you&#8217;ll need to open up visual studio.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neilrichards.net/sharepoint2010/fixing-the-sharepoint-2010-breadcrumb/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Install Active Directory onto a Sharepoint VM AFTER having setup Sharepoint</title>
		<link>http://www.neilrichards.net/sharepoint/install-active-directory-onto-a-sharepoint-vm-after-having-setup-sharepoint</link>
		<comments>http://www.neilrichards.net/sharepoint/install-active-directory-onto-a-sharepoint-vm-after-having-setup-sharepoint#comments</comments>
		<pubDate>Thu, 15 Oct 2009 03:49:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[stsadm]]></category>

		<guid isPermaLink="false">http://www.neilrichards.net/blog/?p=73</guid>
		<description><![CDATA[**Note: this post it limited in scope to the Single Sharepoint VM environment, anything more complicated is frankly beyond my feeble server administration skills. If you try to install AD and DNS onto a Sharepoint VM after having already installed Sharepoint you run into a range of problems. The first time I tried to fix [...]]]></description>
			<content:encoded><![CDATA[<p>**Note: this post it limited in scope to the Single Sharepoint VM environment, anything more complicated is frankly beyond my feeble server administration skills.</p>
<p>If you try to install AD and DNS onto a Sharepoint VM after having already installed Sharepoint you run into a range of problems. The first time I tried to fix the problem I fried my environment and had to revert to a snapshot.</p>
<p>First, install AD and DNS as you normally would. Here&#8217;s a link to the guide I used.</p>
<p>At this point if you try to hit your Central Administration site or any other Sharepoint site, you&#8217;ll get a <strong>Service Unavailable</strong> message on any page you hit.</p>
<p>I tried the following to bring up something, anything Sharepoint:</p>
<ul>
<li>Hitting my server via the computer name (http://phoenix:5555)</li>
<li>Hitting my server via the IP address (192.168.0.2:5555)</li>
<li>Hitting my server via localhost (http://localhost:5555)</li>
<li>Hitting my server via the fully qualified domain name (http://phoenix.kmtests.local:5555/)</li>
</ul>
<p>None of these works, and if I wasn&#8217;t getting the <strong>Service Unavailable</strong> message, I was getting one that said:</p>
<p style="padding-left: 30px;"><em>Under Construction</em></p>
<p style="padding-left: 30px;"><em>The site you are trying to view does not currently have a default page. It may be in the process of being upgraded and configured.</em></p>
<p>Looking at the server logs, you see two errors:</p>
<div id="attachment_77" class="wp-caption alignnone" style="width: 416px"><img class="size-full wp-image-77" title="ApplicationLog" src="http://www.neilrichards.net/blog/wp-content/uploads/2009/10/ApplicationLog.jpg" alt="Application Log Screenshot" width="406" height="450" /><p class="wp-caption-text">Application Log Screenshot</p></div>
<div id="attachment_76" class="wp-caption alignnone" style="width: 416px"><img class="size-full wp-image-76" title="SystemLog" src="http://www.neilrichards.net/blog/wp-content/uploads/2009/10/SystemLog.jpg" alt="System Log screenshot" width="406" height="450" /><p class="wp-caption-text">System Log screenshot</p></div>
<p>Aha! Adding a domain to the mix changes all the user accounts so that your old accounts need to be reconfigured. This is easily done by going into IIS Manager and updating the Identities of all of the app pools to reflect the new, domain enabled accounts.</p>
<p>i.e. servername\MossServiceAcct becomes domainName\MossServiceAcct</p>
<p><img class="alignnone size-full wp-image-79" title="sharedServiceProfileBefore" src="http://www.neilrichards.net/blog/wp-content/uploads/2009/10/sharedServiceProfileBefore.jpg" alt="sharedServiceProfileBefore" width="463" height="437" /></p>
<p><img class="alignnone size-full wp-image-78" title="sharedServiceProfileAfter" src="http://www.neilrichards.net/blog/wp-content/uploads/2009/10/sharedServiceProfileAfter.jpg" alt="sharedServiceProfileAfter" width="463" height="437" /></p>
<p>Having reconfigured the app pools, trying to hit the server again give you a message that says</p>
<p style="padding-left: 30px; "><span style="color: #800000;">The current identity (domainName\MossServiceAcct) does not have write access to &#8216;c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files&#8217;.</span></p>
<p>You can resolve this easily by navigating to that location and by granting write access to the folder in question (you will need to do this for each unique service account which hits the <strong>Temporary ASP.NET Files</strong> folder).</p>
<p>Central Admin will loads, but hold on cowboy/girl, you won&#8217;t be able to get to any of the pages on the <strong>Operations</strong> or <strong>Application Management</strong> tabs.</p>
<p style="padding-left: 30px; ">Some or all identity references could not be translated.   at System.Security.Principal.NTAccount.Translate(IdentityReferenceCollection sourceAccounts, Type targetType, Boolean forceSuccess)</p>
<p>Will it never end?</p>
<p>Ultimately I followed the process outlined on two specific web pages (retyping them would be silly)</p>
<ul>
<li><a href="http://blogs.msdn.com/joelo/archive/2006/08/22/712945.aspx">WSS &amp; SharePoint Server 2007 Password Change via STSADM by Joel Oleson</a></li>
<li><a href="http://support.microsoft.com/kb/934838/en-us">How to change service accounts and service account passwords in SharePoint Server 2007 and in Windows SharePoint Services 3.0</a></li>
</ul>
<p>Following Joel&#8217;s tips I got 100% of the way, but the other page a good reference anyways. I found that there were so many passwords to re-enter that I missed a couple (specifically the <strong>stsadm -o editssp</strong> command) but got there in the end.</p>
<p>Good luck, it&#8217;s a painful process, but a possible one. Just be careful and meticulous and you should be okay.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neilrichards.net/sharepoint/install-active-directory-onto-a-sharepoint-vm-after-having-setup-sharepoint/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

