<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Integrating Radi with SharePoint and Dynamics CRM</title><link>http://www.sharepointblogs.com/radi/default.aspx</link><description>I would like to share my developer experiences with SharePoint and CRM.</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/IntegratingRadiWithSharepointAndDynamicsCrm" type="application/rss+xml" /><item><title>Error in Visual Studio: .NET Runtime version 2.0.50727.3053 - Fatal Execution Engine Error</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/k_6bp-jmHTE/error-in-visual-studio-net-runtime-version-2-0-50727-3053-fatal-execution-engine-error.aspx</link><pubDate>Mon, 13 Apr 2009 10:09:44 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:46376</guid><dc:creator>Radi A.</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=46376</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/04/13/error-in-visual-studio-net-runtime-version-2-0-50727-3053-fatal-execution-engine-error.aspx#comments</comments><description>&lt;p&gt;My IDE was crashing when building a project. The only trace of an error was the Event Log. I didn’t find my answer searching around the net, but managed to guess that ReSharper was responsible for it. I disabled it in the IDE and now everything is ok.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;It crashes on VSTO project templates, I was working on an Outlook add-in with WPF… strange. Has anyone else experienced this?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=46376" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/k_6bp-jmHTE" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/04/13/error-in-visual-studio-net-runtime-version-2-0-50727-3053-fatal-execution-engine-error.aspx</feedburner:origLink></item><item><title>IE8: Disabling the loopback check, 401.1 Unauthorized: Logon Failed</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/HucSvn86tlg/ie8-disabling-the-loopback-check-401-1-unauthorized-logon-failed.aspx</link><pubDate>Sat, 11 Apr 2009 04:23:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:46268</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=46268</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/04/11/ie8-disabling-the-loopback-check-401-1-unauthorized-logon-failed.aspx#comments</comments><description>&lt;p&gt;Dammit, today I couldn&amp;rsquo;t log onto SSP or any other host header site from inside my dev VPC. &lt;/p&gt;
&lt;p&gt;I usually use host headers when I create SharePoint web applications on my development VPC&amp;rsquo;s. I create a loopback entry in the hosts file to direct the FQDN to the current server. &lt;/p&gt;
&lt;p&gt;Today I wanted to check out the IE Developer Tools that come in IE8, so I installed it on my VPC. I specifically unticked the option asking if Windows Updates should be installed &amp;ndash; I did not want anything other than IE8.&lt;/p&gt;
&lt;p&gt;So I fired it up, used it a bit on &lt;a href="http://servername:80"&gt;http://servername:80&lt;/a&gt;, then tried to log in SSP (&lt;a href="http://mysites/servername:80"&gt;http://mysites/servername:80&lt;/a&gt;). The credentials kept getting rejected. I checked things like site collection admins, app pool accounts, even recreated the SSP. Still no luck login in.&lt;/p&gt;
&lt;p&gt;I noticed the following in the Event Log:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sharepointblogs.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/radi/clip_5F00_image001_5F00_17F1CE20.png"&gt;&lt;img border="0" width="529" src="http://www.sharepointblogs.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/radi/clip_5F00_image001_5F00_thumb_5F00_67E77C9E.png" alt="clip_image001" height="133" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" title="clip_image001" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There was an Audit Failure immediately after an Audit Success entry. Here&amp;rsquo;s the failure error:&lt;/p&gt;
&lt;div style="font-size:8pt;margin:20px 0px 10px;overflow:auto;width:97.5%;cursor:text;max-height:200px;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border:gray 1px solid;padding:4px;"&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;An account failed to log on.

Subject:
    Security ID:        NULL SID
    Account Name:        -
    Account Domain:        -
    Logon ID:        0x0

Logon Type:            3

Account For Which Logon Failed:
    Security ID:        NULL SID
    Account Name:        administrator
    Account Domain:        mysites.mossdev2008

Failure Information:
    Failure Reason:        An Error occured during Logon.
    Status:            0xc000006d
    Sub Status:        0x0

Process Information:
    Caller Process ID:    0x0
    Caller Process Name:    -

Network Information:
    Workstation Name:    MOSSDEV2008
    Source Network Address:    127.0.0.1
    Source Port:        49329

Detailed Authentication Information:
    Logon Process:        
    Authentication Package:    NTLM
    Transited Services:    -
    Package Name (NTLM only):    -
    Key Length:        0&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;I got a hint that the credentials are passing through the first time, but then the error appears. My guess was that IE8 did something, or it has some security feature I am not aware of. I launched Firefox and as I thought, logged into SSP successfully. Damn IE8, I haven&amp;rsquo;t even started using it yet.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;After some searching on the net I found the following resources describing the problem. I disabled the loopback check. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.21apps.com/sharepoint/ie8-beta-2-ntlm-4011-not-good-for-sharepoint-developers/"&gt;IE8 Beta 2 - NTLM 401.1 (Not good for SharePoint developers)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://geekswithblogs.net/kjones/archive/2009/02/26/129695.aspx"&gt;401.1 Unauthorized error on SharePoint dev VPC after installing IE8 Beta 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;and resolutions from my colleagues Brian Farnhill and Ishai Sagi: &lt;a href="http://blog.brianfarnhill.com/2008/11/19/ie8-beta-2-authentication-issues-with-host-header-configured-sites/"&gt;IE8 beta 2 authentication issues with host header configured sites&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://support.microsoft.com/default.aspx/kb/896861" title="http://support.microsoft.com/default.aspx/kb/896861"&gt;http://support.microsoft.com/default.aspx/kb/896861&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=46268" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/HucSvn86tlg" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/04/11/ie8-disabling-the-loopback-check-401-1-unauthorized-logon-failed.aspx</feedburner:origLink></item><item><title>Custom Lookup Field Definitions: writing code to perform the wire-up</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/wPrfSRAYN2g/custom-lookup-field-definitions-writing-code-to-perform-the-wire-up.aspx</link><pubDate>Fri, 10 Apr 2009 23:43:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:46253</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=46253</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/04/11/custom-lookup-field-definitions-writing-code-to-perform-the-wire-up.aspx#comments</comments><description>&lt;p&gt;This is the second time I run into this &amp;ndash; writing a feature that creates a custom content type that has a custom lookup field. The field is defined as below:&lt;/p&gt;
&lt;div style="font-size:8pt;margin:20px 0px 10px;overflow:auto;width:97.5%;cursor:text;max-height:200px;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border:gray 1px solid;padding:4px;"&gt;
&lt;div style="font-size:8pt;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Field&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;   &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;createguid&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;   &lt;span style="color:#ff0000;"&gt;Type&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Lookup&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt;   &lt;span style="color:#ff0000;"&gt;StaticName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Reference&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;   &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Reference&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;   &lt;span style="color:#ff0000;"&gt;DisplayName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Reference&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;   &lt;span style="color:#ff0000;"&gt;AllowMultiVote&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;TRUE&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt;   &lt;span style="color:#ff0000;"&gt;Required&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;TRUE&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt;   &lt;span style="color:#ff0000;"&gt;FillInChoice&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;FALSE&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  10:&lt;/span&gt;   &lt;span style="color:#ff0000;"&gt;Group&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Custom Fields&amp;quot;&lt;/span&gt;      &lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  11:&lt;/span&gt;   &lt;span style="color:#ff0000;"&gt;SourceID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{B45D7C95-C01B-4338-B0AF-88FFA4F3A5F1}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  12:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Field&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Notice the missing &lt;strong&gt;List&lt;/strong&gt; and &lt;strong&gt;ShowField&lt;/strong&gt; and &lt;strong&gt;WebID&lt;/strong&gt; attributes. &lt;/p&gt;
&lt;p&gt;When creating a redeployable solution you don&amp;rsquo;t know the GUID of a site or web that gets created during deployment &amp;ndash; it is different every time, but the lookup field needs to know the web that contains the target list.. Simply specifying the &lt;strong&gt;List&lt;/strong&gt; attribute with a URL is not enough &amp;ndash; it did not work for me even when I had the ShowField attribute.&lt;/p&gt;
&lt;p&gt;The only way I could get the lookup field to work is to run code that updates the field properties after the field and web objects are created. Of particular interest are the &lt;strong&gt;LookupList&lt;/strong&gt;, &lt;strong&gt;LookupField&lt;/strong&gt; and &lt;strong&gt;LookupWebId &lt;/strong&gt;properties of the SPFieldLookup class. I placed the code in a FeatureActivated method.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here is the feature activated code that does this:&lt;/p&gt;
&lt;div style="font-size:8pt;margin:20px 0px 10px;overflow:auto;width:97.5%;cursor:text;max-height:200px;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border:gray 1px solid;padding:4px;"&gt;
&lt;div style="font-size:8pt;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; Guid _myFieldGuid = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Guid(&lt;span style="color:#006080;"&gt;&amp;quot;createguid&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; FeatureActivated(SPFeatureReceiverProperties properties)&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;     {&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;         &lt;span style="color:#008000;"&gt;// get web but DO NOT dispose as it belongs to SP&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt;         SPWeb web = properties.Feature.Parent &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; SPWeb;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  10:&lt;/span&gt;         &lt;span style="color:#008000;"&gt;//get reference to the field and cast as SPFieldLookup&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  11:&lt;/span&gt;         SPFieldLookup myField = web.Site.RootWeb.Fields[_myFieldGuid] &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; SPFieldLookup;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  12:&lt;/span&gt;         &lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  13:&lt;/span&gt;         &lt;span style="color:#008000;"&gt;//set properties&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  14:&lt;/span&gt;         myField.AllowMultipleValues = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  15:&lt;/span&gt;         myField.PushChangesToLists = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  16:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  17:&lt;/span&gt;         myField.LookupWebId = web.ID;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  18:&lt;/span&gt;         myField.LookupList = web.Lists[&lt;span style="color:#006080;"&gt;&amp;quot;Reference&amp;quot;&lt;/span&gt;].ID.ToString();&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  19:&lt;/span&gt;         myField.LookupField = &lt;span style="color:#006080;"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  20:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  21:&lt;/span&gt;         &lt;span style="color:#008000;"&gt;//call Update to save changes&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  22:&lt;/span&gt;         myField.Update();&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  23:&lt;/span&gt;     }&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  24:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt; (SPException ex)&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  25:&lt;/span&gt;     {&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  26:&lt;/span&gt;         &lt;span style="color:#008000;"&gt;//do something here&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  27:&lt;/span&gt;     }&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  28:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hope this helps.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=46253" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/wPrfSRAYN2g" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/04/11/custom-lookup-field-definitions-writing-code-to-perform-the-wire-up.aspx</feedburner:origLink></item><item><title>Content Type Definitions: RemoveFieldRef ID’s are case sensitive</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/rnnLlN1r85A/content-type-definitions-removefieldref-id-s-are-case-sensitive.aspx</link><pubDate>Fri, 10 Apr 2009 23:10:09 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:46252</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=46252</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/04/11/content-type-definitions-removefieldref-id-s-are-case-sensitive.aspx#comments</comments><description>&lt;p&gt;I was working on some pretty basic custom content types inheriting from the OOTB WSS content types. My child content types had to remove some fields from the parent content types. Here is an example:&lt;/p&gt;  &lt;p&gt;Lets say you are inheriting from the OOTB “Event” content type. In it’s schema it includes a “Recurrence” field (fRecurrence). This field has the following GUID: {F2E63656-135E-&lt;strong&gt;4f1c&lt;/strong&gt;-8FC2-CCBE74071901}&lt;strong&gt; &lt;/strong&gt;(notice the GUID is in retarded case…)&lt;/p&gt;  &lt;p&gt;To create a child content type that inherits from “Event” but excludes the “Recurrence” field, you have to add the following in your custom content type definition (my example excludes some other fields):&lt;/p&gt;  &lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt;   &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;     &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentType&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Custom Event&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Group&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Events&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Description&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;&amp;quot;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;     ID=&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;0x010200603E1A38891D40ba9CD81AB1A4A62049&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;FieldRefs&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;RemoveFieldRef&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{f2e63656-135e-4f1c-8fc2-ccbe74071901}&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;fRecurrence&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;RemoveFieldRef&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{7D95D1F4-F5FD-4A70-90CD-B35ABC9B5BC8}&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;fAllDayEvent&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;RemoveFieldRef&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{9da97a8a-1da5-4a77-98d3-4bc10456e700}&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Comments&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;FieldRefs&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The catch is that RemoveFieldRef ID’s are &lt;em&gt;&lt;strong&gt;_sometimes_&lt;/strong&gt;&lt;/em&gt; case sensitive. The ID must either be the same case as the GUID defined in the Field XML schema definition, or specifically &lt;strong&gt;LOWER case&lt;/strong&gt;. This will not work:&lt;/p&gt;

&lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt;
  &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;
    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentType&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Custom Event&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Group&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Events&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Description&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;&amp;quot;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;     ID=&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;0x010200603E1A38891D40ba9CD81AB1A4A62049&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;FieldRefs&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;RemoveFieldRef&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{f&lt;strong&gt;2E6&lt;/strong&gt;3656-&lt;strong&gt;135E&lt;/strong&gt;-4f1c-8fc2-&lt;strong&gt;cCb&lt;/strong&gt;e74071901}&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;fRecurrence&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;RemoveFieldRef&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{7D95D1F4-F5FD-4A70-90CD-&lt;strong&gt;B35abc9B5BC8&lt;/strong&gt;}&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;fAllDayEvent&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;RemoveFieldRef&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{&lt;strong&gt;9dA97a8a&lt;/strong&gt;-1&lt;strong&gt;DA&lt;/strong&gt;5-4a77-98d3-4&lt;strong&gt;BC&lt;/strong&gt;10456e700}&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Comments&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;FieldRefs&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Crazy GUID fiasco!!! &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The “Recurrance” field does not get removed.&lt;/li&gt;

  &lt;li&gt;The “All Day Event” field gets removed. You can use any case for this (WTF?!?)&lt;/li&gt;

  &lt;li&gt;The “Comments” field (Description) also does not get removed. It is identified as {9da97a8a-1da5-4a77-98d3-4bc10456e700}, and you have to use lower case to remove it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Inconsistent, or I am just missing the point. I’ve done some tests, but I still haven’t found the reason as to why some fields need special cases for their GUID’s. I am very keen to hear about other experiences on this. Very interested to know the actual reason for this, or whether it is a bug.&lt;/p&gt;

&lt;p&gt;
  &lt;p&gt;&lt;/p&gt;

  &lt;p&gt;&lt;/p&gt;

  &lt;p&gt;&lt;/p&gt;

  &lt;p&gt;&amp;#160;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;If you are defining custom content types and you want to reorder or remove some fields from the parent (they always inherit), watch out for the case of the GUIDs. If you are getting duplicates, chances are your RemoveFieldRef ID’s should be lower case (or the same case as in the field schema).&lt;/p&gt;

  &lt;p&gt;Hope this saves some hours.&lt;/p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=46252" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/rnnLlN1r85A" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/04/11/content-type-definitions-removefieldref-id-s-are-case-sensitive.aspx</feedburner:origLink></item><item><title>Outlook Email comments: my new favourite feature</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/M3Hh4dr33f8/outlook-email-comments-my-new-favourite-feature.aspx</link><pubDate>Mon, 23 Mar 2009 23:09:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:44980</guid><dc:creator>Radi A.</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=44980</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/03/24/outlook-email-comments-my-new-favourite-feature.aspx#comments</comments><description>&lt;p&gt;I discovered this today while copy/pasting sections of a MS Word document with comments. Outlook emails can also have comments.&lt;/p&gt;
&lt;p&gt;Ever replied to someone&amp;rsquo;s email and commented between his/her lines, then changed the colour of your additions so they stand out? How boring&amp;hellip; check this out:&lt;/p&gt;
&lt;p&gt;If you are typing an HTML email, &lt;strong&gt;CTRL-ALT-M&lt;/strong&gt; adds a comment just like in Microsoft Office Word:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sharepointblogs.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/radi/clip_5F00_image001_5F00_0A75B07F.png"&gt;&lt;img border="0" width="426" src="http://www.sharepointblogs.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/radi/clip_5F00_image001_5F00_thumb_5F00_108CD74D.png" alt="clip_image001" height="311" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt; &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;I wish I knew this a year ago! The thing is&amp;hellip; I can&amp;rsquo;t find it in the ribbon bar. bugger.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;And today @&lt;a target="_blank" href="https://twitter.com/merill"&gt;merill&lt;/a&gt; showed me something else&amp;hellip; automatically defining a prefix for your inline comments on reply: &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sharepointblogs.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/radi/clip_5F00_image0016_5F00_5B9FD20F.png"&gt;&lt;img border="0" width="435" src="http://www.sharepointblogs.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/radi/clip_5F00_image0016_5F00_thumb_5F00_60A20FBE.png" alt="clip_image001" height="195" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" title="clip_image001" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To configure this, go to Outlook, click the &lt;strong&gt;Tools&lt;/strong&gt; toolbar, select &lt;strong&gt;Options. &lt;/strong&gt;Click th&lt;strong&gt;e Email Options&amp;hellip; &lt;/strong&gt;button and find the &amp;ldquo;Mark my comments with:&amp;rdquo; settings:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sharepointblogs.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/radi/clip_5F00_image00110_5F00_7E33EABD.png"&gt;&lt;img border="0" width="355" src="http://www.sharepointblogs.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/radi/clip_5F00_image00110_5F00_thumb_5F00_5BFBDF37.png" alt="clip_image001[10]" height="382" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" title="clip_image001[10]" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Awesome stuff, no more hard times in replying to bullet point emails.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=44980" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/M3Hh4dr33f8" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/03/24/outlook-email-comments-my-new-favourite-feature.aspx</feedburner:origLink></item><item><title>Online Xpath expression testing tool</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/LWyS6tCRei0/online-xpath-expression-testing-tool.aspx</link><pubDate>Thu, 19 Mar 2009 00:23:06 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:44792</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=44792</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/03/19/online-xpath-expression-testing-tool.aspx#comments</comments><description>&lt;p&gt;If you don’t do Xpath stuff all the time you might not have a handy helper tool near by. I had to quickly test an expression today, here is what I used: &lt;a title="http://www.mizar.dk/XPath/Default.aspx" href="http://www.mizar.dk/XPath/Default.aspx"&gt;http://www.mizar.dk/XPath/Default.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Did the job!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=44792" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/LWyS6tCRei0" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/03/19/online-xpath-expression-testing-tool.aspx</feedburner:origLink></item><item><title>Content Query Web Part: filtering on a text field – removing results with blank or null values</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/SJbmcFoDFQo/content-query-web-part-filtering-on-a-text-field-removing-results-with-blank-or-null-values.aspx</link><pubDate>Tue, 17 Mar 2009 23:13:44 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:44676</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=44676</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/03/18/content-query-web-part-filtering-on-a-text-field-removing-results-with-blank-or-null-values.aspx#comments</comments><description>&lt;p&gt;This should be an easy pick for developers. When you want to query items and omit results that have a blank or null value in a text field, simply use the greater than 0 filter chaining operator.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sharepointblogs.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/radi/clip_5F00_image001_5F00_26C4DA94.png"&gt;&lt;img title="clip_image001" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="123" alt="clip_image001" src="http://www.sharepointblogs.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/radi/clip_5F00_image001_5F00_thumb_5F00_4CBA8AEA.png" width="230" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; ”Computer Network Name” is a text field in my example. I want to only return results when that field has values.  &lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=44676" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/SJbmcFoDFQo" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/03/18/content-query-web-part-filtering-on-a-text-field-removing-results-with-blank-or-null-values.aspx</feedburner:origLink></item><item><title>Content Query Web Part: querying by content type, grouping results by the parent list</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/vma25_lcbEk/content-query-web-part-querying-by-content-type-grouping-results-by-the-parent-list.aspx</link><pubDate>Tue, 17 Mar 2009 06:33:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:44599</guid><dc:creator>Radi A.</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=44599</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/03/17/content-query-web-part-querying-by-content-type-grouping-results-by-the-parent-list.aspx#comments</comments><description>&lt;p&gt;Consider the following scenario :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An existing content type spread across multiple lists&lt;/li&gt;
&lt;li&gt;A CQWP is required to query the items of that content type and group the results by the list which they belong to&lt;/li&gt;
&lt;li&gt;The group headings have to be links to the actual list&lt;/li&gt;
&lt;li&gt;There should be no visible change to the existing stuff&lt;/li&gt;
&lt;li&gt;There is an existing ItemAdded event handler attached to the content type&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The challenge is, that by default the items returned from the CQWP don&amp;rsquo;t actually know much more about the parent list apart from the ListID that is returned as an attribute of the row element. You would think the list guid is all you need to identify the list instance, which it completely is, but since you are rendering XML with XSL Style Sheets, you don&amp;rsquo;t really have much flexibility in pulling actual information about that list.&lt;/p&gt;
&lt;p&gt;I had a browse around the net to see how other people get the parent list name of row items - the most viable approach was the event handler. Since the already released version of the solution had an event receiver against the content type, my best option was to modify it to give me some information about the parent list.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I added two hidden fields to the content type to satisfy the &amp;ldquo;no visible change&amp;rdquo; requirement &amp;ndash; one for the list name and the other for the list URL (site collection relative).&lt;/li&gt;
&lt;li&gt;I modified the event handler to populate them&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The next challenge was that the CQWP won&amp;rsquo;t see the hidden fields in the UI, so I had to set them manually.&lt;/p&gt;
&lt;p&gt;The following properties inside the .webpart file of my CQWP allows me to add those fields to the grouping functionality of the web part:&lt;/p&gt;
&lt;div style="font-size:8pt;margin:20px 0px 10px;overflow:auto;width:97.5%;cursor:text;max-height:200px;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border:gray 1px solid;padding:4px;"&gt;
&lt;div style="font-size:8pt;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &amp;lt;property name=&lt;span style="color:#006080;"&gt;&amp;quot;AdditionalGroupAndSortFields&amp;quot;&lt;/span&gt; type=&lt;span style="color:#006080;"&gt;&amp;quot;string&amp;quot;&lt;/span&gt;&amp;gt;ParentListName;ParentListUrl&amp;lt;/property&amp;gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt; &amp;lt;property name=&lt;span style="color:#006080;"&gt;&amp;quot;CommonViewFields&amp;quot;&lt;/span&gt; type=&lt;span style="color:#006080;"&gt;&amp;quot;string&amp;quot;&lt;/span&gt;&amp;gt;ParentListName, Text;ParentListUrl, Text&amp;lt;/property&amp;gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt; &amp;lt;property name=&lt;span style="color:#006080;"&gt;&amp;quot;GroupBy&amp;quot;&lt;/span&gt; type=&lt;span style="color:#006080;"&gt;&amp;quot;string&amp;quot;&lt;/span&gt;&amp;gt;ParentListName&amp;lt;/property&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This MSDN article gives a good explanation on how to use these properties: &lt;a href="http://msdn.microsoft.com/en-us/library/aa981241.aspx" title="http://msdn.microsoft.com/en-us/library/aa981241.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa981241.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The CommonViewFields property tells the query to return further fields into the row xml. You can reference the values of these inside the XSL. The AdditionalGroupAndSortFields will allow you to set it in the Group By section in the UI.&lt;/p&gt;
&lt;p&gt;Here is the template inside my header XSL Style Sheet that renders the group heading as a link:&lt;/p&gt;
&lt;div style="font-size:8pt;margin:20px 0px 10px;overflow:auto;width:97.5%;cursor:text;max-height:200px;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border:gray 1px solid;padding:4px;"&gt;
&lt;div style="font-size:8pt;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &amp;lt;xsl:template name=&lt;span style="color:#006080;"&gt;&amp;quot;CustomLinkedHeader&amp;quot;&lt;/span&gt; match=&lt;span style="color:#006080;"&gt;&amp;quot;*&amp;quot;&lt;/span&gt; mode=&lt;span style="color:#006080;"&gt;&amp;quot;header&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;   &amp;lt;div &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt;=&lt;span style="color:#006080;"&gt;&amp;quot;groupheader item medium&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;     &amp;lt;a&amp;gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt;       &amp;lt;xsl:attribute name=&lt;span style="color:#006080;"&gt;&amp;quot;href&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;         &amp;lt;xsl:&lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;-of select=&lt;span style="color:#006080;"&gt;&amp;quot;@ParentListUrl&amp;quot;&lt;/span&gt;/&amp;gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;       &amp;lt;/xsl:attribute&amp;gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;     &amp;lt;xsl:call-template name=&lt;span style="color:#006080;"&gt;&amp;quot;OuterTemplate.GetGroupName&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt;       &amp;lt;xsl:with-param name=&lt;span style="color:#006080;"&gt;&amp;quot;GroupName&amp;quot;&lt;/span&gt; select=&lt;span style="color:#006080;"&gt;&amp;quot;@*[name()=$Group]&amp;quot;&lt;/span&gt;/&amp;gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt;       &amp;lt;xsl:with-param name=&lt;span style="color:#006080;"&gt;&amp;quot;GroupType&amp;quot;&lt;/span&gt; select=&lt;span style="color:#006080;"&gt;&amp;quot;$GroupType&amp;quot;&lt;/span&gt;/&amp;gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  10:&lt;/span&gt;     &amp;lt;/xsl:call-template&amp;gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  11:&lt;/span&gt;     &amp;lt;/a&amp;gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  12:&lt;/span&gt;   &amp;lt;/div&amp;gt;&lt;/pre&gt;
&lt;pre style="font-size:8pt;margin:0em;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;"&gt;  13:&lt;/span&gt; &amp;lt;/xsl:template&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The rest of the XSL handles the parent list name automatically. The good thing is that the web part won&amp;rsquo;t display headings where items are not returned as they don&amp;rsquo;t exist in the result set. It also provides you the ability to filter on fields &amp;ndash; great functionality.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s pretty much it. The CQWP is REALLY powerful, I love it and I now find XSLT stuff really fun too.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=44599" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/vma25_lcbEk" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/03/17/content-query-web-part-querying-by-content-type-grouping-results-by-the-parent-list.aspx</feedburner:origLink></item><item><title>Content Query Web Part: getting a full dump of the raw XML</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/GBX7jN_gPVM/content-query-web-part-getting-a-full-dump-of-the-raw-xml.aspx</link><pubDate>Tue, 17 Mar 2009 05:02:55 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:44598</guid><dc:creator>Radi A.</dc:creator><slash:comments>5</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=44598</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/03/17/content-query-web-part-getting-a-full-dump-of-the-raw-xml.aspx#comments</comments><description>&lt;p&gt;I’ve been doing some really cool stuff with the Content Query Web Part (CQWP) lately, so I’m gonna put together a few posts on some of the nice challenges that I had to tackle.&lt;/p&gt;  &lt;p&gt;After playing around with XSLT for a while now, I have grown to love it and I think it is awesome and really flexible. When styling the CQWP, you sometimes have to get to the RAW xml data that comes out of it – it really helps you understand how XSL style sheets work when you have the raw view. In my case, I had to understand how the grouping functionality of the web part works, so I can incorporate it into my XSLT styling (more posts to follow).&lt;/p&gt;  &lt;p&gt;The following XSL template dumps the xml for you:&lt;/p&gt;  &lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;height:63px;background-color:#f4f4f4;"&gt;   &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;     &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &amp;lt;xsl:template match=&lt;span style="color:#006080;"&gt;&amp;quot;/&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;     &amp;lt;xmp&amp;gt;&amp;lt;xsl:copy-of select=&lt;span style="color:#006080;"&gt;&amp;quot;*&amp;quot;&lt;/span&gt;/&amp;gt;&amp;lt;/xmp&amp;gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt; &amp;lt;/xsl:template&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;I place the above in my own “main” XSL file of the CQWP – I never edit the original one created by the Publishing Infrastructure feature called ContentQueryMain.xsl.&lt;/p&gt;

&lt;p&gt;I replace the following template call with the 3 lines above:&lt;/p&gt;

&lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;height:62px;background-color:#f4f4f4;"&gt;
  &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;
    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &amp;lt;xsl:template match=&lt;span style="color:#006080;"&gt;&amp;quot;/&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;   &amp;lt;xsl:call-template name=&lt;span style="color:#006080;"&gt;&amp;quot;OuterTemplate&amp;quot;&lt;/span&gt; /&amp;gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt; &amp;lt;/xsl:template&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;I also do a small change to the output tag (the first line after the opening &amp;lt;xsl:stylesheet tag)&lt;/p&gt;

&lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;height:99px;background-color:#f4f4f4;"&gt;
  &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;
    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#008000;"&gt;//the original:&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt; &amp;lt;xsl:output method=&lt;span style="color:#006080;"&gt;&amp;quot;html&amp;quot;&lt;/span&gt; indent=&lt;span style="color:#006080;"&gt;&amp;quot;no&amp;quot;&lt;/span&gt; /&amp;gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt; &lt;span style="color:#008000;"&gt;//modified&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt; &amp;lt;xsl:output method=&lt;span style="color:#006080;"&gt;&amp;quot;xml&amp;quot;&lt;/span&gt; indent=&lt;span style="color:#006080;"&gt;&amp;quot;yes&amp;quot;&lt;/span&gt; /&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;This shows me the raw xml in a nice, structured way:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.sharepointblogs.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/radi/clip_5F00_image001_5F00_4332436E.png"&gt;&lt;img title="clip_image001" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="191" alt="clip_image001" src="http://www.sharepointblogs.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/radi/clip_5F00_image001_5F00_thumb_5F00_653A9F34.png" width="514" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=44598" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/GBX7jN_gPVM" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/03/17/content-query-web-part-getting-a-full-dump-of-the-raw-xml.aspx</feedburner:origLink></item><item><title>Code snippet: getting the values of a multi-value lookup field or People and Groups field</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/Zf93QoZI2SM/code-snippet-getting-the-values-of-a-multi-value-lookup-field-or-people-and-groups-field.aspx</link><pubDate>Sat, 14 Mar 2009 02:59:36 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:44404</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=44404</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/03/14/code-snippet-getting-the-values-of-a-multi-value-lookup-field-or-people-and-groups-field.aspx#comments</comments><description>&lt;p&gt;I’ve seen a few ways of getting this done, including regular expressions and other stuff. This is a code snippet of how I do it.&lt;/p&gt;  &lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt;   &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;     &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// Returns a generic collection of the ID and value of a Lookup-Field with multiple values.&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; IDictionary&amp;lt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&amp;gt; GetMultiValueLookupFieldItems(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; SPListItem item, Guid fieldGuid)&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;     var returnValue = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;,&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&amp;gt;();&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (item == &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  10:&lt;/span&gt;     &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  11:&lt;/span&gt;     var lookupField = item.Fields[fieldGuid];&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  12:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  13:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (lookupField.FieldValueType == &lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(SPFieldLookupValueCollection))&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  14:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  15:&lt;/span&gt;         var lookupFieldValues = item[fieldGuid] &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; SPFieldLookupValueCollection;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  16:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (lookupFieldValues == &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  17:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  18:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (var &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; lookupFieldValues)&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  19:&lt;/span&gt;         {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  20:&lt;/span&gt;             returnValue.Add(&lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;.LookupId, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;.LookupValue);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  21:&lt;/span&gt;         }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  22:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  23:&lt;/span&gt;     &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  24:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; returnValue;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  25:&lt;/span&gt; }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;To do this for a People or Group/UserMulti field – the SPFieldUserValueCollection type - just replace SPFieldLookupValueCollection to SPFieldUserValueCollection.&lt;/p&gt;

&lt;p&gt;For something really cool, a generic method with casting at runtime would be really cool to accommodate both situations. I’d be interested on that.&lt;/p&gt;

&lt;p&gt;Here is how to use the code:&lt;/p&gt;

&lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;height:31px;background-color:#f4f4f4;"&gt;
  &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;
    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; IDictionary&amp;lt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&amp;gt; groups = theSPListItemObject.GetMultiValueLookupFieldItems(c_LookupFieldGuid);&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=44404" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/Zf93QoZI2SM" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/03/14/code-snippet-getting-the-values-of-a-multi-value-lookup-field-or-people-and-groups-field.aspx</feedburner:origLink></item><item><title>Notes on SharePoint and CRM integration</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/faf5iFMbsHE/notes-on-sharepoint-and-crm-integration.aspx</link><pubDate>Fri, 30 Jan 2009 05:40:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:25428</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=25428</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/01/30/notes-on-sharepoint-and-crm-integration.aspx#comments</comments><description>&lt;p&gt;A came by a cool post today on &lt;a href="http://www.sharepointusecases.com/"&gt;http://www.sharepointusecases.com/&lt;/a&gt; discussing basic integration possibilities between SharePoint and CRM. I thought it was worth mentioning:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sharepointusecases.com/index.php/2009/01/use-case-integrating-microsoft-office-sharepoint-with-microsoft-dynamics-crm/"&gt;http://www.sharepointusecases.com/index.php/2009/01/use-case-integrating-microsoft-office-sharepoint-with-microsoft-dynamics-crm/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a few other idea&amp;#39;s on use cases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Delivering sales data to a SharePoint dashboard. Could also bring any data that is stored in CRM - support tickets, service activites, event details&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Combining SharePoint sites with CRM entities - Project Workspaces, Account/Case documents in SharePoint, Product catalogue&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;MOSS Public Web Site integrated with CRM to manage events, support tickets, service agreements, enrollment for marketing lists or other subscriptions&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Web parts pulling interesting and relevant statistics of CRM information to a MOSS intranet/portal&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=25428" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/faf5iFMbsHE" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/01/30/notes-on-sharepoint-and-crm-integration.aspx</feedburner:origLink></item><item><title>IE6 print CSS – PNG-24 with the AlphaImageLoader DX filter causing issues</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/jh-F0JzFoNM/ie6-print-css-png-24-with-the-alphaimageloader-dx-filter-causing-issues.aspx</link><pubDate>Wed, 28 Jan 2009 02:50:17 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:25320</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=25320</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/01/28/ie6-print-css-png-24-with-the-alphaimageloader-dx-filter-causing-issues.aspx#comments</comments><description>&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3a935468-19b0-43f8-b03f-0a204a22a567" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/CSS" rel="tag"&gt;CSS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/error" rel="tag"&gt;error&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;If you’re one of the criminals using IE6’s print function, please upgrade. You are causing web developers extra headaches…&lt;/p&gt;  &lt;p&gt;Yesterday I was solving a print styling issue in IE6. It basically looked wrong in IE6, so wrong that I couldn’t even recognise the output. I noticed that elements with a DX filter (AlphaImageLoader) we’re getting displaced.&lt;/p&gt;  &lt;p&gt;The AlphaImageLoader DX filter is used to get IE6 render PNG-24 images correctly. Your CSS file might have the following property:&lt;/p&gt;  &lt;p&gt;&lt;font color="#008000"&gt;filter&lt;/font&gt;&lt;font color="#0000ff"&gt;:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’bg.png&amp;#39;, sizingMethod=&amp;#39;crop&amp;#39;);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;So if you use PNG-24 images for backgrounds, and you are having issues styling the print CSS, try setting the filter to none:&lt;/p&gt;  &lt;p&gt;&lt;font color="#008000"&gt;filter&lt;/font&gt;&lt;font color="#0000ff"&gt;:none;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;I fixed this on a few elements and my print issues went away.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=25320" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/jh-F0JzFoNM" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/01/28/ie6-print-css-png-24-with-the-alphaimageloader-dx-filter-causing-issues.aspx</feedburner:origLink></item><item><title>Detecting the last item in the row set of a Content Query Web Part</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/p1O2jaKgks0/Detecting-the-last-item-in-the-row-set-of-a-content-query-web-part.aspx</link><pubDate>Tue, 20 Jan 2009 10:57:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:25033</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=25033</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/01/20/Detecting-the-last-item-in-the-row-set-of-a-content-query-web-part.aspx#comments</comments><description>&lt;p&gt;It is a common scenario to have the need to render the last row item of the Content Query Web Part (CQWP) a bit different from other row items. You might be positioning div’s and containers with margins and you may want the last row item to have different styles, exclude the last delimiter or include an extra link. Here is how I implemented this requirement by just using the CQWP with some XSL changes:&lt;/p&gt;
&lt;h4&gt;Solution Structure&lt;/h4&gt;
&lt;p&gt;The CWQP uses a few default XSL stylesheets to render its output: ItemStyle.xsl, ContentQueryMain.xsl and Header.xsl located in “/Style Library/XSL Style Sheets”. These items get deployed by the MOSS Publishing Feature. For this exercise I had to modify ItemStyle.xsl and ContentQueryMain.xsl, but instead of modifying the default files I created copies of them and included them in a feature that also deploys my instance of the CQWP.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.sharepointblogs.com/files/folders/25032/download.aspx" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;My feature deploys the required XSL files to a custom folder under “XSL Style Sheets”, and the following properties of my CQWP are modified to reference those XSL files rather than the default ones.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;HeaderXslLink&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;string&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;/Style Library/XSL Style Sheets/MOSSIGWebPart/MOSSIGWebPartHeaderStyle.xslt&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;MainXslLink&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;string&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;/Style Library/XSL Style Sheets/MOSSIGWebPart/MOSSIGWebPartMainStyle.xslt&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ItemXslLink&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;string&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;/Style Library/XSL Style Sheets/MOSSIGWebPart/MOSSIGWebPartItemStyle.xslt&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;h4&gt;XSL modifications&lt;/h4&gt;
&lt;p&gt;Inside the ContentQueryMain.xsl file there is a section that renders the body of the web part. The template is called “OuterTemplate.Body”. The template instantiates a convenient variable $CurPosition, and it passes it onto the item template “OuterTemplate.CallItemTemplate”. &lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xsl:call-template&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;OuterTemplate.CallItemTemplate&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xsl:with-param&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CurPosition&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;select&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;$CurPosition&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;xsl:call-template&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;The inconvenience is that inside &lt;span class="kwrd"&gt;&amp;quot;OuterTemplate.CallItemTemplate&amp;quot;&lt;/span&gt; the parameter is not actually passed to the custom template inside the ItemStyle.xslt file:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xsl:otherwise&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;   &amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xsl:apply-templates&lt;/span&gt; &lt;span class="attr"&gt;select&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mode&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;itemstyle&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;   &amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;xsl:apply-templates&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;xsl:otherwise&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;To pass it through to the ItemStyle.xslt template I included the CurPosition parameter:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xsl:otherwise&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;   &amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xsl:apply-templates&lt;/span&gt; &lt;span class="attr"&gt;select&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mode&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;itemstyle&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;      &amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xsl:with-param&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CurPosition&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;select&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;$CurPosition&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;   &amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;xsl:apply-templates&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;xsl:otherwise&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;I made a matching declaration in my customised ItemStyle.xsl file to accept the parameter:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xsl:template&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;MOSSIGStyle&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;match&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Row[@Style=&amp;#39;MOSSIGStyle&amp;#39;]&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mode&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;itemstyle&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xsl:param&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CurPosition&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;I can then use this variable throughout my item template. A simple check can determine if the current row is the last row:&lt;/p&gt;&lt;pre class="csharpcode"&gt;   &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;linkitem&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;m-item&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xsl:attribute&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;style&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xsl:if&lt;/span&gt; &lt;span class="attr"&gt;test&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;not($CurPosition = 3)&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;margin-top:10px;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;xsl:if&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xsl:if&lt;/span&gt; &lt;span class="attr"&gt;test&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;$CurPosition = 3&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;margin-top:0;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;xsl:if&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;xsl:attribute&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;I always had 5 items returned from query. Similar to the above approach you can bring the total row count if you have a situation where the amount of returned rows changes. OuterTemplate.Body privides the $LastRow parameter.&lt;/p&gt;&lt;pre class="csharpcode"&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xsl:with-param&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;LastRow&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;select&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;$LastRow&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Has anyone approached this in any other way?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=25033" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/p1O2jaKgks0" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/01/20/Detecting-the-last-item-in-the-row-set-of-a-content-query-web-part.aspx</feedburner:origLink></item><item><title>Creating a SharePoint variation hierarchy fails: “An error was encountered performing this operation”</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/q_sW7MU_imQ/creating-a-sharepoint-variation-hierarchy-fails-an-error-was-encountered-performing-this-operation.aspx</link><pubDate>Tue, 20 Jan 2009 05:30:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:25018</guid><dc:creator>Radi A.</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=25018</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/01/20/creating-a-sharepoint-variation-hierarchy-fails-an-error-was-encountered-performing-this-operation.aspx#comments</comments><description>&lt;p&gt;It doesn&amp;#39;t give you much more details than the following message:&lt;/p&gt;
&lt;p&gt;&amp;quot;An error was encountered performing this operation.&amp;nbsp; You may re-try the operation, and you may need to clean up the half-created data first before re-trying. If the problem persists, please contact your system administrator.&amp;quot;&lt;/p&gt;
&lt;p&gt;This error is much more severe than a simple &amp;quot;failure&amp;quot; in the Variation Logs - the Long Running Operation (LRO) that creates the hierarchy terminates half-way. It is also very easy to miss.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve been working a bit with SharePoint variations and they are always tricky. The golden rule about variations (and content deployment) is to have good governance and clean content.&amp;nbsp; A messy content source will only cause headaches.&lt;/p&gt;
&lt;p&gt;Here are the steps I took to solve the above issue:&lt;/p&gt;
&lt;p&gt;I checked with my ugliest best friend - SharePoint&amp;#39;s Unified Logging Service. The following lines are a bit hard to find, but they pointed me in the right direction. I have removed a lot of garbage between them, but kept the sequence:&lt;/p&gt;
&lt;p&gt;&lt;font style="BACKGROUND-COLOR:#cccccc;"&gt;CMS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Site Management&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 78ew&amp;nbsp;&amp;nbsp;&amp;nbsp; Medium&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PublishingPage::CreateVariationInner() Begins. this: http://&lt;b&gt;mossig&lt;/b&gt; /home/intranet/help/Pages/howto.aspx, varlabel: groups&lt;br /&gt;CMS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Publishing&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6wyq&amp;nbsp;&amp;nbsp;&amp;nbsp; Medium&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetFileFromUrl: ArgumentException when attempting get file Url &lt;b&gt;http://staging&lt;/b&gt;/_catalogs/masterpage/HelpPage.aspx Value does not fall within the expected range.&lt;br /&gt;CMS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Publishing&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 89v3&amp;nbsp;&amp;nbsp;&amp;nbsp; Exception&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LRO - An unhandled exception was caught in ThreadEntryPoint System.ArgumentException: Value does not fall within the expected range.&lt;br /&gt;CMS &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Publishing&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8ztq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Medium&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LongRunningOperationJob.UpdateStatus(): Failed, this=35412716&lt;br /&gt;CMS &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Publishing &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8ztq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Medium&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LRO - Starting status update: Failed&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Sometime the above lines are a bit hard to find (especially if you don&amp;#39;t know what you are looking for!). There is usually a LOT of &amp;quot;Potentially excessive number of SPRequest objects&amp;quot; entries in between them because of the extra load that the LRO causes. I usually keep a note of the time of failure or even better, &lt;a href="http://hristopavlov.wordpress.com/2008/06/19/sptraceview-lightweight-tool-for-monitoring-the-sharepoint-diagnostic-logging-in-real-time/"&gt;SPTraceView&lt;/a&gt; if I am watching over it in real time.&lt;/p&gt;
&lt;p&gt;They provided me with enough information to identify the actual cause.&lt;/p&gt;
&lt;p&gt;The &amp;lt;mso:PublishingPageLayout&amp;gt; property of the howto.aspx page was incorrect. The link to the Page Layout file was absolute, pointing to a staging server from the origination of the content.&lt;/p&gt;
&lt;p&gt;&lt;font style="BACKGROUND-COLOR:#cccccc;"&gt;&amp;lt;mso:PublishingPageLayout msdt:dt=&amp;quot;string&amp;quot;&amp;gt;http://staging /_catalogs/masterpage/HelpPage.aspx, Help Page&amp;lt;/mso:PublishingPageLayout&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;I did some research on why this is happening in the first place. The following articles had all the answers:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/stefan_gossner/archive/2008/03/12/common-error-situation-with-when-using-backup-restore-to-transfer-a-database-to-a-new-farm-on-moss-2007.aspx"&gt;http://blogs.technet.com/stefan_gossner/archive/2008/03/12/common-error-situation-with-when-using-backup-restore-to-transfer-a-database-to-a-new-farm-on-moss-2007.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.thekid.me.uk/archive/2007/08/20/fixing-page-layout-urls-after-importing-a-publishing-site-in-sharepoint.aspx"&gt;http://blog.thekid.me.uk/archive/2007/08/20/fixing-page-layout-urls-after-importing-a-publishing-site-in-sharepoint.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://stsadm.blogspot.com/2007/08/fix-publishing-pages-page-layout-url.html"&gt;http://stsadm.blogspot.com/2007/08/fix-publishing-pages-page-layout-url.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Content to &lt;b&gt;staging&lt;/b&gt; was essentially restored via the backup/restore functionality, rather than export/import. This doesn&amp;#39;t do great things to the page layout properties and essentially can break the variation feature.&lt;/p&gt;
&lt;p&gt;The fix is simple - change the URL&amp;#39;s to relative in all files that have absolute URL&amp;#39;s.&amp;nbsp; You can either download the file and modify the property manually, use SharePoint Designer, or experiment with the code/tools by Gary Lapointe.&lt;/p&gt;
&lt;p&gt;Once I fixed all content files the hierarchies created successfully.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=25018" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/q_sW7MU_imQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/01/20/creating-a-sharepoint-variation-hierarchy-fails-an-error-was-encountered-performing-this-operation.aspx</feedburner:origLink></item><item><title>Stretching images can be achieved with a percentage as a width/height value</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/A7fbm9nxlOE/stretching-images-can-be-achieved-with-a-percentage-as-a-width-height-value.aspx</link><pubDate>Sun, 18 Jan 2009 00:23:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:24884</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=24884</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/01/18/stretching-images-can-be-achieved-with-a-percentage-as-a-width-height-value.aspx#comments</comments><description>&lt;p&gt;I keep forgetting about this really cool feature - image sizes can be proportionate to the browser window size and shrink/expand as you change the browser window size.&lt;/p&gt;
&lt;p&gt;This can be very useful in many situations where fixed images cause difficulties in flexible/liquid site designs and layouts. Picture galleries are always a candidate for flexible thumbnail sizes.&lt;/p&gt;
&lt;p&gt;A container (div) sized as a percentage (ie 50%) will stretch together with the browser and always be 50% of the viewable browser area. An image inside that container can be set to a percentage size, lets say 50%. This image will be rendered at 50% of its container size and will change as the container changes.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Example:&lt;/p&gt;
&lt;p&gt;div.container {width:50%;}&lt;/p&gt;
&lt;p&gt;div.container img {width:50%} &lt;/p&gt;
&lt;p&gt;As you stretch the browser, the image will grow.&lt;/p&gt;
&lt;p&gt;This can have great effects when used in column designs where the column widths are flexible and a fixed image size won&amp;#39;t look optimal in different screen resolutions. I used this when creating a web part with thumbnails that fits in a right column web part zone.&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=24884" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/A7fbm9nxlOE" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/01/18/stretching-images-can-be-achieved-with-a-percentage-as-a-width-height-value.aspx</feedburner:origLink></item><item><title>SharePoint error: Cannot convert type 'Microsoft.SharePoint.WebControls.DelegateControl' to 'System.Web.UI.IAttributeAccessor'</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/oBQvlsPDHIg/sharepoint-error-cannot-convert-type-microsoft-sharepoint-webcontrols-delegatecontrol-to-system-web-ui-iattributeaccessor.aspx</link><pubDate>Fri, 09 Jan 2009 03:05:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:24557</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=24557</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2009/01/09/sharepoint-error-cannot-convert-type-microsoft-sharepoint-webcontrols-delegatecontrol-to-system-web-ui-iattributeaccessor.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;I got this error today while deploying a solution to a test environment:&lt;/p&gt;

&lt;p&gt;&amp;quot;&lt;span&gt;CS0030: &lt;/span&gt;&lt;i&gt;Cannot convert type &amp;#39;Microsoft.SharePoint.WebControls.DelegateControl&amp;#39; to &amp;#39;System.Web.UI.IAttributeAccessor&amp;#39;&lt;/i&gt;&amp;quot;&lt;/p&gt;

&lt;p&gt;Disabling SP&amp;#39;s custom errors and turning on callstack in the web.config revealed the following:&lt;/p&gt;
&lt;span style="font-size:9pt;color:red;font-family:&amp;#39;Lucida Console&amp;#39;;"&gt;&lt;span style="font-size:9pt;color:black;font-family:&amp;#39;Lucida Console&amp;#39;;"&gt;Line 171:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- &amp;lt;div id=&amp;quot;login_box&amp;quot;&amp;gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;/p&gt;
&lt;/span&gt;&lt;span style="font-size:9pt;color:red;font-family:&amp;#39;Lucida Console&amp;#39;;"&gt;Line 172:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:9pt;color:red;font-family:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;lt;SharePoint:DelegateControl id=&amp;quot;AALogin&amp;quot; runat=&amp;quot;server&amp;quot; ControlId=&amp;quot;AALogin&amp;quot; __designer:Preview=&amp;quot;&amp;amp;lt;span style=&amp;amp;quot;display:none&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;quot; __designer:Values=&amp;quot;&amp;amp;lt;P N=&amp;#39;ControlId&amp;#39; T=&amp;#39;TrafficDirectorLogin&amp;#39; /&amp;amp;gt;&amp;amp;lt;P N=&amp;#39;ID&amp;#39; T=&amp;#39;TDLogin&amp;#39; /&amp;amp;gt;&amp;amp;lt;P N=&amp;#39;Page&amp;#39; ID=&amp;#39;1&amp;#39; /&amp;amp;gt;&amp;amp;lt;P N=&amp;#39;TemplateControl&amp;#39; ID=&amp;#39;2&amp;#39; /&amp;amp;gt;&amp;amp;lt;P N=&amp;#39;AppRelativeTemplateSourceDirectory&amp;#39; R=&amp;#39;-1&amp;#39; /&amp;amp;gt;&amp;quot;/&amp;gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:red;font-family:&amp;#39;Lucida Console&amp;#39;;"&gt;&lt;span style="font-size:9pt;color:black;font-family:&amp;#39;Lucida Console&amp;#39;;"&gt;Line 173:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt; --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:red;font-family:&amp;#39;Lucida Console&amp;#39;;"&gt;&lt;/span&gt;&amp;nbsp; 
&lt;p&gt;The actual cause of the error was due to the garbage that SharePoint Designer added to the &lt;span style="font-size:9pt;color:red;font-family:&amp;#39;Lucida Console&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:red;font-family:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;lt;SharePoint:DelegateControl&amp;gt;&lt;/span&gt; tag. Removing that control, which is in comments anyway, or fixing the markup solved the problem. &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;There&amp;#39;s 2 quick lessons from this: (1) don&amp;#39;t leave any controls in commented out areas - ASP.NET still processes them during the rendering methods, but the browser leaves them out; (2) Watch out for SharePoint Designer doing black magic to your HTML tags, it has the bad habit of breaking things.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=24557" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/oBQvlsPDHIg" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2009/01/09/sharepoint-error-cannot-convert-type-microsoft-sharepoint-webcontrols-delegatecontrol-to-system-web-ui-iattributeaccessor.aspx</feedburner:origLink></item><item><title>Save Australia's Internet....</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/6gFtS7T8qow/save-australia-s-internet.aspx</link><pubDate>Mon, 08 Dec 2008 22:30:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:23766</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=23766</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2008/12/09/save-australia-s-internet.aspx#comments</comments><description>&lt;p&gt;I believe every internet user in Australia should sign this petition: &lt;a href="http://www.getup.org.au/campaign/SaveTheNet/442" target="_blank"&gt;&lt;strong&gt;http://www.getup.org.au/campaign/SaveTheNet/442&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t want our ruling Government to introduce an internet censorship scheme that will not achieve it&amp;#39;s intended purpose. Our internet in Australia is slow and expensive as it is. Bulgaria&amp;#39;s internet is far more superior that Australia&amp;#39;s.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=23766" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/6gFtS7T8qow" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2008/12/09/save-australia-s-internet.aspx</feedburner:origLink></item><item><title>Google Reader and IE problems</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/Cze3A7vuMgU/google-reader-and-ie-problems.aspx</link><pubDate>Mon, 08 Dec 2008 00:34:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:23740</guid><dc:creator>Radi A.</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=23740</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2008/12/08/google-reader-and-ie-problems.aspx#comments</comments><description>&lt;p&gt;Thanks to the person sitting next to me, &lt;a href="http://www.merill.net/" class=""&gt;Merill Fernando&lt;/a&gt;, I am now a happy user of Google Reader. The problem is that IE7 doesn&amp;#39;t work well with it... Today I found another problem between the two:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.sharepointblogs.com/files/folders/23739/download.aspx" title="Google Reader IE error" alt="Google Reader IE error" height="192" width="534" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Essentially, that means I can&amp;#39;t add friends in my Google Reader when I&amp;#39;m using IE. Why do I use IE? Because my clients do. I actually use all FF, IE and Chrome, but tend to use IE for most of my work-related stuff + I can&amp;#39;t use FF and C for SharePoint, Project Server and CRM stuff. I still think Google Reader should be compatible with IE, ~60% of web users browse via IE, right?&lt;/p&gt;
&lt;p&gt;Oh yeah, feel free to become my friend: sharepoint dot radi at gmail dot com&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=23740" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/Cze3A7vuMgU" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2008/12/08/google-reader-and-ie-problems.aspx</feedburner:origLink></item><item><title>SharePoint specific site Content Deployment: file cannot be imported because its parent web does not exist</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/IhNp4jOweYA/sharepoint-specific-site-content-deployment-file-cannot-be-imported-because-its-parent-web-does-not-exist.aspx</link><pubDate>Tue, 02 Dec 2008 06:21:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:23549</guid><dc:creator>Radi A.</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=23549</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2008/12/02/sharepoint-specific-site-content-deployment-file-cannot-be-imported-because-its-parent-web-does-not-exist.aspx#comments</comments><description>&lt;p&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;I was working on some Content Deployment stuff and ran into a few problems, but I really wanted to describe the following one as I couldn’t find much information on it. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;The history log for the job showed errors but the information was incomplete. I got the following for an error:&lt;/span&gt;&lt;/p&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;“The &lt;/font&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;file &amp;lt;&amp;gt; &lt;b&gt;cannot be imported&lt;/b&gt; because its parent web &amp;lt;&amp;gt; does not exist”&lt;/span&gt; &lt;br /&gt;&lt;font size="3"&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font size="3"&gt;&lt;img src="http://www.sharepointblogs.com/files/folders/23537/download.aspx" title="Content Deployment error" alt="Content Deployment error" height="148" width="589" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;p&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;But that item belongs to a site that I don’t even want to export/import… &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;So why does Content Deployment want to include the item when I don&amp;#39;t even have that site in my list?&lt;/span&gt;&lt;/p&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Thanks to my colleague and drink-mate &lt;a href="http://ari.provoke.co.nz/"&gt;Ari Bakker&lt;/a&gt; I was pointed in the right direction. His &lt;a href="http://ari.provoke.co.nz/archive/2008/06/03/moss-content-deployment-tips-and-tricks.aspx"&gt;blog article&lt;/a&gt; describes using the object model to get a dump of what the Content Deployment job is doing in the background. &lt;/span&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;I created a simple console application and dumped his code. I modified it to only include the specific sites that I wanted, rather than the entire site collection:&lt;/span&gt;&lt;br /&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;SPWeb&lt;/span&gt; web = sitecollection.OpenWeb(&lt;span&gt;&amp;quot;/home&amp;quot;&lt;/span&gt;);&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;SPExportObject&lt;/span&gt; homeWeb = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span&gt;SPExportObject&lt;/span&gt;();&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;homeWeb.Id = web.ID;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;homeWeb.IncludeDescendants = &lt;span&gt;SPIncludeDescendants&lt;/span&gt;.Content;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&lt;/span&gt;homeWeb.Type = &lt;span&gt;SPDeploymentObjectType&lt;/span&gt;.Web;&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;//settings is the SPExportSettings object as per Ari&amp;#39;s code&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:green;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;"&gt;settings.ExportObjects.Add(homeWeb);&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;After running the export code I ended up with lots of files in my export folder: a whole bunch of “.DAT” files that represent content files, and a few “.XML” files. The one that interested me was Manifest.xml – it is an XML representation of all of the SPObjects that get copied by the Content Deployment job. &lt;/span&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;I could find the item that was failing inside Manifest.xml. In my particular instance the Content Deployment job was reporting on a “PublishingImages/Forms/Document” file that belongs to a site that I’m not trying to move across. I could locate the relevant SPObject + a few others related to it in the Manifest.xml file – SPFolder, SPContentType, SPListItem and SPFile belonging to that list item.&lt;/span&gt; 
&lt;p&gt;&lt;img src="http://www.sharepointblogs.com/files/folders/23538/download.aspx" title="Content Deployment history" alt="Content Deployment history" height="277" width="549" /&gt;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;The SPFile was a JPG image. Aha!&lt;/span&gt;&lt;/p&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Doing a quick search inside the same file revealed another SPObject inside the site that I wanted to export/import – it was just a content page.&lt;/span&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;The problem&lt;/span&gt;&lt;/b&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt; is apparent: the content deployment job will include any objects referenced by items in the scope of the job. It will export images in sites other than the ones specified in the export. The problem arises when the content deployment job tries to import these objects into the location that they belong to – but they aren’t included in the scope of the job and their parent webs don’t get copied over. This results in our error. &lt;/span&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;The parent webs of those objects simply don’t exist if there has never been a full deployment prior to this export/import.&lt;/span&gt; &lt;font face="arial,helvetica,sans-serif"&gt;One workaround to this is to use the &lt;b&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;ExcludeDependencies &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-weight:normal;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;property of the &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;"&gt;SPExportObject, &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;this is described in &lt;a href="http://blogs.technet.com/stefan_gossner/archive/2007/10/12/deep-dive-into-the-sharepoint-content-deployment-and-migration-api-part-5.aspx"&gt;Stefan Gossner’s content deployment articles (problem 6).&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;A more practical solution is to copy the image over to the site that you are exporting and edit the content to reference that image. &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Searching for all instances of the image inside Manifest.xml pointed me towards all SPObjects that reference it. &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Cleaning up the content solved the problem. Hope this helps someone.&lt;/span&gt;&lt;/font&gt; 
&lt;p&gt;&lt;b&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Resources:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Read &lt;a href="http://ari.provoke.co.nz/"&gt;Ari’s blog&lt;/a&gt; and drink with him!&lt;/span&gt; 
&lt;p class="MsoNormal" style="margin:0cm 0cm 10pt;"&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Read &lt;a href="http://blogs.technet.com/stefan_gossner"&gt;Stefan Gossner’s blog&lt;/a&gt; if you ever have to do anything with Content Deployment.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=23549" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/IhNp4jOweYA" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2008/12/02/sharepoint-specific-site-content-deployment-file-cannot-be-imported-because-its-parent-web-does-not-exist.aspx</feedburner:origLink></item><item><title>Error installing Project Server 2007 "Setup is unable to proceed..."</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/Iini_OdW9gc/error-installing-project-server-2007-quot-setup-is-unable-to-proceed-quot.aspx</link><pubDate>Thu, 20 Nov 2008 02:43:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:23194</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=23194</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2008/11/20/error-installing-project-server-2007-quot-setup-is-unable-to-proceed-quot.aspx#comments</comments><description>&lt;p&gt;I was&amp;nbsp;going through a&amp;nbsp;Project Server 2007 install and ran into this problem:&lt;/p&gt;
&lt;p&gt;&amp;quot;Setup is unable to proceed due to the following error(s):&lt;/p&gt;
&lt;p&gt;http://go.microsoft.com/fwlink/?LinkId=103318 &lt;br /&gt;Correct the issue(s) listed above and re-run setup.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.sharepointblogs.com/files/folders/23193/download.aspx" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;After a bit of searching and following that link I ended up on this KB article: &lt;a href="http://support.microsoft.com/kb/945967"&gt;http://support.microsoft.com/kb/945967&lt;/a&gt;&amp;nbsp;The only thing is that it doesn&amp;#39;t mention Project Server 2007, but Search Server 2008 and MOSS 2007.&lt;/p&gt;
&lt;p&gt;I realised I was trying to install Project Server 2007&amp;nbsp;binaries with SP1 on an installation of WSS without SP1. It would seem that the error will appear in any WSS-based SP1 server&amp;nbsp;package installation when WSS on the server does not include the service pack. &lt;/p&gt;
&lt;p&gt;The obvious resolution was to install WSS SP1 then proceed with Project Server 2007 _with_ SP1. Would have been nice if that KB article mentions PS 2007&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=23194" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/Iini_OdW9gc" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2008/11/20/error-installing-project-server-2007-quot-setup-is-unable-to-proceed-quot.aspx</feedburner:origLink></item><item><title>Notes on the history of SharePoint</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/rhC-uZrKzMQ/notes-on-the-history-of-sharepoint.aspx</link><pubDate>Thu, 13 Nov 2008 02:53:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:22983</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=22983</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2008/11/13/notes-on-the-history-of-sharepoint.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://raiumair.wordpress.com/"&gt;Rai Umair&lt;/a&gt; showed me today &lt;a class="" href="http://www.joiningdots.net/downloads/SharePoint_History.jpg"&gt;this diagram from Joining Dots&lt;/a&gt; - a nice layout plotting the history of SharePoint. It shows the path that the different Microsoft products took and eventually how the features ended up in SharePoint - all the way back from Site Search Commerce Edition (before Tahoe). &lt;a class="" href="http://www.joiningdots.net/blog/2006/08/sharepoint-history.html"&gt;This Joining Dots blog article&lt;/a&gt; describes the evolution in detail.&lt;/p&gt;
&lt;p&gt;Pretty cool, thought I might keep this for reference.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=22983" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/rhC-uZrKzMQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2008/11/13/notes-on-the-history-of-sharepoint.aspx</feedburner:origLink></item><item><title>Code Snippet: How to get a list's complete/full URL</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/tZnuNzTk2l8/code-snippet-how-to-get-a-list-s-complete-url.aspx</link><pubDate>Wed, 29 Oct 2008 10:56:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:22479</guid><dc:creator>Radi A.</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=22479</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2008/10/29/code-snippet-how-to-get-a-list-s-complete-url.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static string BuildListURL(SPList list)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return list.ParentWeb.Url + &amp;quot;/&amp;quot; + list.RootFolder.Url;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=22479" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/tZnuNzTk2l8" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2008/10/29/code-snippet-how-to-get-a-list-s-complete-url.aspx</feedburner:origLink></item><item><title>SharePoint Content Deployment error: (null) "Long Running Operation Status/Item" not found.</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/QFJXil0sQOQ/sharepoint-content-deployment-error-null-quot-long-running-operation-status-item-quot-not-found.aspx</link><pubDate>Tue, 21 Oct 2008 00:10:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:22144</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=22144</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2008/10/21/sharepoint-content-deployment-error-null-quot-long-running-operation-status-item-quot-not-found.aspx#comments</comments><description>&lt;p&gt;I&amp;#39;ve been banging my head against the wall on some content deployment errors. I found nothing on the net on the following one... It appeared in the content deployment job history:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;(null) &amp;quot;Long Running Operation Status/Item&amp;quot; not found.&lt;/p&gt;
&lt;p&gt;I resolved it by deleting and recreating the&amp;nbsp;content deployment path.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=22144" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/QFJXil0sQOQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2008/10/21/sharepoint-content-deployment-error-null-quot-long-running-operation-status-item-quot-not-found.aspx</feedburner:origLink></item><item><title>Decoding ASP.NET ViewState</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/mCDUkMviT3Y/decoding-asp-net-viewstate.aspx</link><pubDate>Mon, 20 Oct 2008 09:13:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:22103</guid><dc:creator>Radi A.</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=22103</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2008/10/20/decoding-asp-net-viewstate.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;I&amp;#39;ve heard from a few people that you can&amp;#39;t really see what is in your ViewState. That is not really true, you can decode the&amp;nbsp;base64 hashcode that gets included in the &lt;i&gt;&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;__VIEWSTATE&amp;quot;&amp;gt;&lt;/i&gt; HTML tag.&lt;/p&gt;
&lt;p&gt;You can find a few tools around that will help you do that by doing a simple Google search: &lt;a title="http://www.google.com.au/search?source=ig&amp;amp;hl=en&amp;amp;q=viewstate+decode" href="http://www.google.com.au/search?source=ig&amp;amp;hl=en&amp;amp;q=viewstate+decode"&gt;http://www.google.com.au/search?source=ig&amp;amp;hl=en&amp;amp;q=viewstate+decode&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;I had a play with ViewState Decoder 2.2 by Pluralsite.&lt;/p&gt;
&lt;p&gt;&lt;img title="ViewState Decoder 2.2" height="400" alt="ViewState Decoder 2.2" src="http://byfiles.storage.live.com/y1piCg1nYhj-qrHaXc8HH-xdqQUEMP1N3WI9cIje53QXRICTih2sEl9AXtAwhL3HVkG" width="598" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Cool stuff. &lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=22103" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/mCDUkMviT3Y" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2008/10/20/decoding-asp-net-viewstate.aspx</feedburner:origLink></item><item><title>CRM v4 workflows never continue when all "wait" conditions have been met</title><link>http://feedproxy.google.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~3/btRVfYJ5rRY/crm-v4-workflows-never-continue-when-all-quot-wait-quot-conditions-have-been-met.aspx</link><pubDate>Mon, 13 Oct 2008 23:20:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:21868</guid><dc:creator>Radi A.</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.sharepointblogs.com/radi/rsscomments.aspx?PostID=21868</wfw:commentRss><comments>http://www.sharepointblogs.com/radi/archive/2008/10/14/crm-v4-workflows-never-continue-when-all-quot-wait-quot-conditions-have-been-met.aspx#comments</comments><description>&lt;p&gt;&lt;font face="arial,helvetica,sans-serif"&gt;I was looking into a CRM workflow issue where the workflow doesn&amp;#39;t proceed at a &amp;quot;wait&amp;nbsp;until task&amp;quot; step. When the dependent task status has changed to &amp;quot;complete&amp;quot; the workflow should continue, but instead it just hangs.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial,helvetica,sans-serif"&gt;I did a few tests and managed to reproduce the problem by completing the task as soon as possible after it is created by workflow. Delaying the approval doesn&amp;#39;t cause any problems. I managed to locate a hotfix from Microsoft: &lt;span style="FONT-SIZE:11pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"&gt;&lt;a href="http://support.microsoft.com/kb/951919"&gt;&lt;font color="#800080" size="2"&gt;http://support.microsoft.com/kb/951919&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"&gt;&lt;font face="arial,helvetica,sans-serif" size="2"&gt;Installing it resolved the issue.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=21868" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/IntegratingRadiWithSharepointAndDynamicsCrm/~4/btRVfYJ5rRY" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sharepointblogs.com/radi/archive/2008/10/14/crm-v4-workflows-never-continue-when-all-quot-wait-quot-conditions-have-been-met.aspx</feedburner:origLink></item></channel></rss>
