<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Microsoft Dynamics CRM - Steve Suh</title>
	<atom:link href="http://crmsdk.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://crmsdk.com</link>
	<description>Steve Suh</description>
	<lastBuildDate>Tue, 17 Nov 2009 17:00:44 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='crmsdk.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/08381ef5650e55b5b20761a23663e5a1?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>Microsoft Dynamics CRM - Steve Suh</title>
		<link>http://crmsdk.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://crmsdk.com/osd.xml" title="Microsoft Dynamics CRM &#8211; Steve Suh" />
	<atom:link rel='hub' href='http://crmsdk.com/?pushpress=hub'/>
		<item>
		<title>CRM Calendar Control Bug &#8211; DataValue returns incorrect value</title>
		<link>http://crmsdk.com/2009/11/16/crm-calendar-control-bug-datavalue-returns-incorrect-value/</link>
		<comments>http://crmsdk.com/2009/11/16/crm-calendar-control-bug-datavalue-returns-incorrect-value/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 19:20:11 +0000</pubDate>
		<dc:creator>Steve Suh</dc:creator>
				<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://crmsdk.com/?p=72</guid>
		<description><![CDATA[While doing some date verification against a CRM date control with JavaScript I came across a bug.  When getting values from CRM UI controls we typically use the [Control].DataValue property.  What i&#8217;ve found is when users use the actual Calendar control to select the date things work fine.  However, if users type [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=72&subd=crmsdk&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>While doing some date verification against a CRM date control with JavaScript I came across a bug.  When getting values from CRM UI controls we typically use the <code>[Control].DataValue</code> property.  What i&#8217;ve found is when users use the actual Calendar control to select the date things work fine.  However, if users type in a date into the field and you have code that gets the date via the .DataValue or .DataXml property it will NOT return the updated date.  </p>
<p>In order to guarantee getting the latest value, I had to go against the raw HTML .value property while using some of CRM&#8217;s date format methods.</p>
<p><code>var dt = new Date();<br />
dt = new Date(ParseDate([CRM_Date_Control_Id].getElementsByTagName("INPUT")[0].value))</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/crmsdk.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/crmsdk.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/crmsdk.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/crmsdk.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/crmsdk.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/crmsdk.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/crmsdk.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/crmsdk.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/crmsdk.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/crmsdk.wordpress.com/72/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=72&subd=crmsdk&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://crmsdk.com/2009/11/16/crm-calendar-control-bug-datavalue-returns-incorrect-value/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce4325f4484f360b997f717d2471d617?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Shy Asian Guy</media:title>
		</media:content>
	</item>
		<item>
		<title>Calling WCF service from a CRM Plug-In</title>
		<link>http://crmsdk.com/2009/09/29/calling-wcf-service-from-a-crm-plug-in/</link>
		<comments>http://crmsdk.com/2009/09/29/calling-wcf-service-from-a-crm-plug-in/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 19:30:01 +0000</pubDate>
		<dc:creator>Steve Suh</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://crmsdk.wordpress.com/2009/09/29/calling-wcf-service-from-a-crm-plug-in/</guid>
		<description><![CDATA[I had a requirement to call a WCF service from with a CRM plug-in.  This seemed like this should be straight forward, connecting to the service, building a service reference, setting up the config file and I should be good to go. 
All was fine and good until working with the config file.  When working with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=61&subd=crmsdk&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I had a requirement to call a WCF service from with a CRM plug-in.  This seemed like this should be straight forward, connecting to the service, building a service reference, setting up the config file and I should be good to go. </p>
<p>All was fine and good until working with the config file.  When working with a WCF service it expects the configuration properties to be in-process.  For instance, if you’re calling a WCF service from within an ASP.NET web site, then adding something like the snippet below to the web.config will allow you to call service.</p>
<p><code> &lt;system.serviceModel&gt;<br />
        &lt;bindings&gt;<br />
            &lt;basicHttpBinding&gt;<br />
                &lt;binding name="BasicHttpBinding_IContract" closeTimeout="00:01:00"<br />
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"<br />
                    allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"<br />
                    maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"<br />
                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"<br />
                    useDefaultWebProxy="true"&gt;<br />
                    &lt;readerQuotas maxDepth="9000000" maxStringContentLength="9000000" maxArrayLength="9000000"<br />
                        maxBytesPerRead="9000000" maxNameTableCharCount="9000000" /&gt;<br />
                    &lt;security mode="TransportCredentialOnly"&gt;<br />
                        &lt;transport clientCredentialType="Windows" proxyCredentialType="None"<br />
                            realm="" /&gt;<br />
                        &lt;!--&lt;message clientCredentialType="UserName" algorithmSuite="Default" /&gt;--&gt;<br />
                    &lt;/security&gt;<br />
                &lt;/binding&gt;<br />
            &lt;/basicHttpBinding&gt;<br />
        &lt;/bindings&gt;<br />
        &lt;client&gt;<br />
          &lt;endpoint address="<a href="http://[SERVICE_URL]">http://[SERVICE_URL]</a>"<br />
              binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IContract"<br />
              contract="[CONTRACT]"<br />
              name="BasicHttpBinding_IContract" /&gt;<br />
        &lt;/client&gt;<br />
    &lt;/system.serviceModel&amp;gt</code></p>
<p>However, the plug-in is registered in the database so an in-process configuration file wasn’t being recognized.  Thankfully the configuration properties are all available via the System.ServiceModel namespace.  You can add the code snippet below to setup the configuration when calling the WCF service.</p>
<p> <br />
<code>using System.ServiceModel;</p>
<p>…</p>
<p>BasicHttpBinding binding = new BasicHttpBinding();<br />
binding.Name = "BasicHttpBinding_IContract";<br />
binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;<br />
binding.MessageEncoding = WSMessageEncoding.Text;<br />
binding.TransferMode = TransferMode.Buffered;<br />
binding.UseDefaultWebProxy = true;<br />
binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;<br />
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;<br />
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;<br />
binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;</p>
<p>binding.SendTimeout = new TimeSpan(0, 10, 0);<br />
EndpointAddress endPointAddress = new EndpointAddress("<a href="http://[SERVICE_URL]">http://[SERVICE_URL]</a>");</p>
<p>ContractClient client = new ContractClient(binding, endPointAddress);</p>
<p>client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;</p>
<p>client.ChannelFactory.Credentials.Windows.ClientCredential = new System.Net.NetworkCredential([ACCOUNT], [PASSWORD], [DOMAIN]);</p>
<p>client.[METHOD]();</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/crmsdk.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/crmsdk.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/crmsdk.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/crmsdk.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/crmsdk.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/crmsdk.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/crmsdk.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/crmsdk.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/crmsdk.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/crmsdk.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=61&subd=crmsdk&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://crmsdk.com/2009/09/29/calling-wcf-service-from-a-crm-plug-in/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce4325f4484f360b997f717d2471d617?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Shy Asian Guy</media:title>
		</media:content>
	</item>
		<item>
		<title>Dynamic Worksheet &#8211; Specified SQL server not found</title>
		<link>http://crmsdk.com/2009/07/21/dynamic-worksheet-specified-sql-server-not-found/</link>
		<comments>http://crmsdk.com/2009/07/21/dynamic-worksheet-specified-sql-server-not-found/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 18:57:46 +0000</pubDate>
		<dc:creator>Steve Suh</dc:creator>
				<category><![CDATA[Excel]]></category>

		<guid isPermaLink="false">http://crmsdk.com/?p=51</guid>
		<description><![CDATA[I was trying to export a dynamic excel sheet from CRM and received the following error on my Windows 7 laptop.
 

Specified SQL server not found

After some tinkering, found out I needed to allow Excel through the Windows Firewall.  Follow the steps below:
Open up the Control Panel
Select System and Security and Windows Firewall
Select Allow a program [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=51&subd=crmsdk&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I was trying to export a dynamic excel sheet from CRM and received the following error on my Windows 7 laptop.</p>
<p> </p>
<div class="mceTemp"><img class="size-full wp-image-52" title="Specified SQL server not found" src="http://crmsdk.files.wordpress.com/2009/07/error.png?w=470&#038;h=283" alt="Specified SQL server not found" width="470" height="283" /></div>
<blockquote><dd class="wp-caption-dd">Specified SQL server not found</dd>
</blockquote>
<p>After some tinkering, found out I needed to allow Excel through the Windows Firewall.  Follow the steps below:</p>
<p>Open up the Control Panel</p>
<div id="attachment_53" class="wp-caption alignnone" style="width: 480px"><img class="size-full wp-image-53" title="Control Panel" src="http://crmsdk.files.wordpress.com/2009/07/control_panel.png?w=470&#038;h=314" alt="Control Panel" width="470" height="314" /><p class="wp-caption-text">Control Panel</p></div>
<p>Select System and Security and Windows Firewall</p>
<div id="attachment_54" class="wp-caption alignnone" style="width: 479px"><img class="size-full wp-image-54" title="Windows Firewall" src="http://crmsdk.files.wordpress.com/2009/07/windows_firewall.png?w=469&#038;h=149" alt="Windows Firewall" width="469" height="149" /><p class="wp-caption-text">Windows Firewall</p></div>
<p>Select Allow a program or feature through Windows Firewall</p>
<p>Select Change settings</p>
<p>Browse to the Excel.exe</p>
<div id="attachment_55" class="wp-caption alignnone" style="width: 480px"><img class="size-full wp-image-55" title="Allow Excel through Windows Firewall" src="http://crmsdk.files.wordpress.com/2009/07/select_excel.png?w=470&#038;h=311" alt="Allow Excel through Windows Firewall" width="470" height="311" /><p class="wp-caption-text">Allow Excel through Windows Firewall</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/crmsdk.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/crmsdk.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/crmsdk.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/crmsdk.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/crmsdk.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/crmsdk.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/crmsdk.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/crmsdk.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/crmsdk.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/crmsdk.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=51&subd=crmsdk&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://crmsdk.com/2009/07/21/dynamic-worksheet-specified-sql-server-not-found/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce4325f4484f360b997f717d2471d617?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Shy Asian Guy</media:title>
		</media:content>

		<media:content url="http://crmsdk.files.wordpress.com/2009/07/error.png" medium="image">
			<media:title type="html">Specified SQL server not found</media:title>
		</media:content>

		<media:content url="http://crmsdk.files.wordpress.com/2009/07/control_panel.png" medium="image">
			<media:title type="html">Control Panel</media:title>
		</media:content>

		<media:content url="http://crmsdk.files.wordpress.com/2009/07/windows_firewall.png" medium="image">
			<media:title type="html">Windows Firewall</media:title>
		</media:content>

		<media:content url="http://crmsdk.files.wordpress.com/2009/07/select_excel.png" medium="image">
			<media:title type="html">Allow Excel through Windows Firewall</media:title>
		</media:content>
	</item>
		<item>
		<title>CRM Report Timeout</title>
		<link>http://crmsdk.com/2009/07/14/crm-report-timeout/</link>
		<comments>http://crmsdk.com/2009/07/14/crm-report-timeout/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 20:59:08 +0000</pubDate>
		<dc:creator>Steve Suh</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Reporting]]></category>

		<guid isPermaLink="false">http://crmsdk.com/?p=41</guid>
		<description><![CDATA[Recently we had a long running CRM report that would timeout occasionally with the error below. 
Error: Request timed out.
 Error Message: Request timed out.
 Error Details: Request timed out.
 Source File: Not available
 Line Number: Not available
 Request URL: [URL]
Stack Trace Info: [HttpException: Request timed out.]
 
#1) SQL Server Report Manager, set Do not timeout&#8230; (did not work)
#2) Extending timeouts in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=41&subd=crmsdk&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Recently we had a long running CRM report that would timeout occasionally with the error below. </p>
<blockquote><p>Error: Request timed out.</p>
<p> Error Message: Request timed out.</p>
<p> Error Details: Request timed out.</p>
<p> Source File: Not available</p>
<p> Line Number: Not available</p>
<p> Request URL: [URL]</p>
<p>Stack Trace Info: [HttpException: Request timed out.]</p></blockquote>
<p> </p>
<p>#1) SQL Server Report Manager, set <strong>Do not timeout&#8230;</strong> (did not work)</p>
<div id="attachment_45" class="wp-caption alignnone" style="width: 480px"><img class="size-full wp-image-45" title="Report Timeout Setting" src="http://crmsdk.files.wordpress.com/2009/07/reporttimeoutsetting2.png?w=470&#038;h=125" alt="Report Timeout Setting" width="470" height="125" /><p class="wp-caption-text">Report Timeout Setting</p></div>
<p>#2) Extending timeouts in the RSREPORTSERVER.CONFIG file&#8230;(did not work)</p>
<p>&lt;Add Key=&#8221;SQLCommandTimeoutSeconds&#8221; Value=&#8221;60&#8243; /&gt;<br />
&lt;Add Key=&#8221;DatabaseQueryTimeout&#8221; Value=&#8221;120&#8243; /&gt;</p>
<p>#3) <strong>Extend the CRM web.config executionTimeout</strong> property &lt;httpRuntime executionTimeout=&#8221;300&#8243; maxRequestLength=&#8221;8192&#8243; /&gt;&#8230;(<strong>this works!</strong>)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/crmsdk.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/crmsdk.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/crmsdk.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/crmsdk.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/crmsdk.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/crmsdk.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/crmsdk.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/crmsdk.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/crmsdk.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/crmsdk.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=41&subd=crmsdk&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://crmsdk.com/2009/07/14/crm-report-timeout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce4325f4484f360b997f717d2471d617?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Shy Asian Guy</media:title>
		</media:content>

		<media:content url="http://crmsdk.files.wordpress.com/2009/07/reporttimeoutsetting2.png" medium="image">
			<media:title type="html">Report Timeout Setting</media:title>
		</media:content>
	</item>
		<item>
		<title>Mobile Express for CRM 4.0</title>
		<link>http://crmsdk.com/2009/07/10/mobile-express-for-crm-4-0/</link>
		<comments>http://crmsdk.com/2009/07/10/mobile-express-for-crm-4-0/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 16:43:07 +0000</pubDate>
		<dc:creator>Steve Suh</dc:creator>
				<category><![CDATA[Enhancements]]></category>

		<guid isPermaLink="false">http://crmsdk.com/?p=39</guid>
		<description><![CDATA[Download it here.
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=39&subd=crmsdk&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Download it <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=f592ec6c-f412-4fd5-9a80-cd3bcbd26d8b">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/crmsdk.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/crmsdk.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/crmsdk.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/crmsdk.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/crmsdk.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/crmsdk.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/crmsdk.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/crmsdk.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/crmsdk.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/crmsdk.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=39&subd=crmsdk&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://crmsdk.com/2009/07/10/mobile-express-for-crm-4-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce4325f4484f360b997f717d2471d617?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Shy Asian Guy</media:title>
		</media:content>
	</item>
		<item>
		<title>Optimizing and Maintaining Microsoft Dynamics CRM 4.0 Whitepaper</title>
		<link>http://crmsdk.com/2009/07/10/optimizing-and-maintaining-microsoft-dynamics-crm-4-0-whitepaper/</link>
		<comments>http://crmsdk.com/2009/07/10/optimizing-and-maintaining-microsoft-dynamics-crm-4-0-whitepaper/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 16:39:55 +0000</pubDate>
		<dc:creator>Steve Suh</dc:creator>
				<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://crmsdk.com/?p=35</guid>
		<description><![CDATA[Version 2.0 of the Optimizing and Maintaining CRM 4.0 Whitepaper has been released.  You can download it here.
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=35&subd=crmsdk&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Version 2.0 of the Optimizing and Maintaining CRM 4.0 Whitepaper has been released.  You can download it <a href="https://www.microsoft.com/downloads/details.aspx?FamilyID=ba826cee-eddf-4d6e-842d-27fd654ed893&amp;displayLang=en">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/crmsdk.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/crmsdk.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/crmsdk.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/crmsdk.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/crmsdk.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/crmsdk.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/crmsdk.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/crmsdk.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/crmsdk.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/crmsdk.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=35&subd=crmsdk&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://crmsdk.com/2009/07/10/optimizing-and-maintaining-microsoft-dynamics-crm-4-0-whitepaper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce4325f4484f360b997f717d2471d617?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Shy Asian Guy</media:title>
		</media:content>
	</item>
		<item>
		<title>CRM AsyncOperationBase Issue</title>
		<link>http://crmsdk.com/2009/07/09/crm-asyncoperationbase-issue/</link>
		<comments>http://crmsdk.com/2009/07/09/crm-asyncoperationbase-issue/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 21:28:47 +0000</pubDate>
		<dc:creator>Steve Suh</dc:creator>
				<category><![CDATA[Bugs]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://crmsdk.com/?p=32</guid>
		<description><![CDATA[I worked on a CRM 4.0 system with rollup update #4 that took feeds from SAP and created records in CRM.  Things ran fine until adding a custom audit plug-in that would log modifications to CRM asynchronously.  After installing the plug-ins, the CRM SQL Server would go to 100% usage and start timing out for end users.
After [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=32&subd=crmsdk&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I worked on a CRM 4.0 system with rollup update #4 that took feeds from SAP and created records in CRM.  Things ran fine until adding a custom audit plug-in that would log modifications to CRM asynchronously.  After installing the plug-ins, the CRM SQL Server would go to 100% usage and start timing out for end users.</p>
<p>After investigating with SQL Profiler, it looked like CRM was trying to write to the AsyncOperationBase, when I took a look at the size of the table, it was over 1 million records for a relatively small CRM system. </p>
<p>According to this <a title="Article" href="http://support.microsoft.com/kb/968520">article </a>CRM logs all asynchronous operations to this table, however there is a bug with CRM where it won&#8217;t clear the completed operations.  After following the steps of manually clearing the completed records things worked fine.  However over time the table kept growing and would not clear out the completed operations (even though I added the registry node <span><strong>AsyncRemoveCompletedWorkflows</strong>).  </span></p>
<p><span>I ended up creating a nightly SQL Job that clears out the AsyncOperationBase, WorkflowLogBase, and BulkDeleteFailureBase tables, and broke it into 3 steps.</span></p>
<p><span> </span></p>
<p><span><strong>STEP 1: </strong>Set recovery mode to simple to prevent logging deletes, this will save you time if the table is large.  Then rebuild the index.</span></p>
<blockquote><p>ALTER DATABASE [DATABASE_NAME]</p>
<p>SET RECOVERY SIMPLE<br />
GO<br />
 ALTER INDEX ALL ON AsyncOperationBase REBUILD WITH  <br />
(FILLFACTOR = 80, ONLINE = OFF,SORT_IN_TEMPDB = ON, STATISTICS_NORECOMPUTE = OFF)  </p>
<p> &#8211; Rebuild Indexes &amp; Update Statistics on WorkflowLogBase Table  <br />
ALTER INDEX ALL ON WorkflowLogBase REBUILD WITH  <br />
(FILLFACTOR = 80, ONLINE = OFF,SORT_IN_TEMPDB = ON, STATISTICS_NORECOMPUTE = OFF)</p>
<p> </p></blockquote>
<p><strong>STEP 2: </strong>Actual delete operations</p>
<blockquote><p>declare @DeleteRowCount int<br />
Select @DeleteRowCount = 2000<br />
declare @DeletedAsyncRowsTable table (AsyncOperationId uniqueidentifier not null)<br />
declare @continue int, @rowCount int<br />
select @continue = 1<br />
while (@continue = 1)<br />
begin<br />
      begin tran<br />
      insert into @DeletedAsyncRowsTable(AsyncOperationId)<br />
      Select top (@DeleteRowCount) AsyncOperationId<br />
      from AsyncOperationBase<br />
      where OperationType in (1, 9, 12, 25, 27, 10) AND StateCode = 3 AND StatusCode in (30, 32)    <br />
 <br />
      Select @rowCount = 0<br />
      Select @rowCount = count(*) from @DeletedAsyncRowsTable<br />
      select @continue = case when @rowCount &lt;= 0 then 0 else 1 end    <br />
 <br />
        if (@continue = 1)<br />
        begin<br />
            delete WorkflowLogBase from WorkflowLogBase W, @DeletedAsyncRowsTable d<br />
            where W.AsyncOperationId = d.AsyncOperationId<br />
           <br />
delete BulkDeleteFailureBase From BulkDeleteFailureBase B, @DeletedAsyncRowsTable d<br />
            where B.AsyncOperationId = d.AsyncOperationId<br />
 <br />
            delete AsyncOperationBase From AsyncOperationBase A, @DeletedAsyncRowsTable d<br />
            where A.AsyncOperationId = d.AsyncOperationId           <br />
 <br />
            delete @DeletedAsyncRowsTable<br />
      end<br />
 <br />
      commit<br />
end</p></blockquote>
<p><strong>Step 3: </strong>Rebuild the index and set the recovery</p>
<blockquote><p>
 ALTER INDEX ALL ON AsyncOperationBase REBUILD WITH  <br />
(FILLFACTOR = 80, ONLINE = OFF,SORT_IN_TEMPDB = ON, STATISTICS_NORECOMPUTE = OFF)  </p>
<p> &#8211; Rebuild Indexes &amp; Update Statistics on WorkflowLogBase Table  <br />
ALTER INDEX ALL ON WorkflowLogBase REBUILD WITH  <br />
(FILLFACTOR = 80, ONLINE = OFF,SORT_IN_TEMPDB = ON, STATISTICS_NORECOMPUTE = OFF)</p>
<p>ALTER DATABASE [DATABASE_NAME]<br />
SET RECOVERY FULL<br />
GO</p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/crmsdk.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/crmsdk.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/crmsdk.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/crmsdk.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/crmsdk.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/crmsdk.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/crmsdk.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/crmsdk.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/crmsdk.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/crmsdk.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=32&subd=crmsdk&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://crmsdk.com/2009/07/09/crm-asyncoperationbase-issue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce4325f4484f360b997f717d2471d617?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Shy Asian Guy</media:title>
		</media:content>
	</item>
		<item>
		<title>Permissions to create Price List</title>
		<link>http://crmsdk.com/2009/07/07/permissions-to-create-price-list/</link>
		<comments>http://crmsdk.com/2009/07/07/permissions-to-create-price-list/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 19:37:28 +0000</pubDate>
		<dc:creator>Steve Suh</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Price List]]></category>
		<category><![CDATA[PriceLevel]]></category>

		<guid isPermaLink="false">http://crmsdk.com/?p=28</guid>
		<description><![CDATA[I had a plug-in on an opportunity that among other things assigned a price list based on the currency on the opportunity.  Since price list also has a currency on it, it needed to match what&#8217;s on the opportunity. 
In order for this to work dynamically, I had the plug-in code look for price lists that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=28&subd=crmsdk&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I had a plug-in on an opportunity that among other things assigned a price list based on the currency on the opportunity.  Since price list also has a currency on it, it needed to match what&#8217;s on the opportunity. </p>
<p>In order for this to work dynamically, I had the plug-in code look for price lists that had a matching currency and if they didn&#8217;t exist create a new one.  Since our system doesn&#8217;t use the product catalog or order system, performing these kinds of operations are safe.</p>
<p>The plug-in impersonates the user via the context.InitiatingUserId</p>
<blockquote><p>ICrmService service = context.CreateCrmService(context.InitiatingUserId);</p></blockquote>
<p>This was all fine and good, but after testing with less privileged security roles, I found that they didn&#8217;t have the prvCreateProduct privilege, so the plug-in would fail on creation of the price list (pricelevel entity).  I had to override the impersonation to use the NETWORK SERVICE account by passing in false to the context.CreateCrmService(false) method in order to get the required privilege. </p>
<blockquote><p>private Guid CreatePriceList(IPluginExecutionContext context, Guid currencyId)<br />
        {<br />
            // Need to override the identity of the calling user to SYSTEM, as not everyone has the prvCreateProduct privilege<br />
            // required to create the PriceLevel<br />
            ICrmService crmService = context.CreateCrmService(<strong>false</strong>);</p>
<p>            // Get the name of the currency and use it for the pricelist<br />
            // Unfortunately we have to make another query<br />
            ColumnSet cols = new ColumnSet();<br />
            cols.AddColumn(&#8220;currencyname&#8221;);</p>
<p>            transactioncurrency currency = (transactioncurrency)crmService.Retrieve(EntityName.transactioncurrency.ToString(), currencyId, cols);<br />
           <br />
            pricelevel newPriceList = new pricelevel();<br />
            newPriceList.name = currency.currencyname + &#8221; Price List&#8221;;<br />
            newPriceList.transactioncurrencyid = new Lookup(EntityName.transactioncurrency.ToString(), currency.transactioncurrencyid.Value);</p>
<p>            return crmService.Create(newPriceList);<br />
        }</p></blockquote>
<p>I know I could&#8217;ve added the the user to a higher privileged OOTB role like Sales Manager, but shouldn&#8217;t this privilege be part of the security roles?  If it is perhaps I wasn&#8217;t able to find it, does anyone know of a way to add it?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/crmsdk.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/crmsdk.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/crmsdk.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/crmsdk.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/crmsdk.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/crmsdk.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/crmsdk.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/crmsdk.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/crmsdk.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/crmsdk.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=28&subd=crmsdk&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://crmsdk.com/2009/07/07/permissions-to-create-price-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce4325f4484f360b997f717d2471d617?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Shy Asian Guy</media:title>
		</media:content>
	</item>
		<item>
		<title>Writing to the Windows Event Log</title>
		<link>http://crmsdk.com/2009/07/06/writing-to-the-windows-event-log/</link>
		<comments>http://crmsdk.com/2009/07/06/writing-to-the-windows-event-log/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 08:35:44 +0000</pubDate>
		<dc:creator>Steve Suh</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Debugging]]></category>

		<guid isPermaLink="false">http://crmsdk.com/?p=15</guid>
		<description><![CDATA[Writing errors to the Windows event log can be tricky, especially with permissions on custom folders.  Here&#8217;s a simple method that won&#8217;t require special permissions
using System.Diagnostics;
&#8230;
EventLog log = new EventLog();
log.Source = &#8220;Application&#8221;;
log.WriteEntry(&#8220;Your Message&#8221;, EventLogEntryType.Error);
If you&#8217;re capturing web service exceptions, be sure to capture the SoapException and write the Detail xml node.
     [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=15&subd=crmsdk&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Writing errors to the Windows event log can be tricky, especially with permissions on custom folders.  Here&#8217;s a simple method that won&#8217;t require special permissions</p>
<blockquote><p>using System.Diagnostics;</p>
<p>&#8230;</p>
<p>EventLog log = new EventLog();<br />
log.Source = &#8220;Application&#8221;;<br />
log.WriteEntry(&#8220;Your Message&#8221;, EventLogEntryType.Error);</p></blockquote>
<p>If you&#8217;re capturing web service exceptions, be sure to capture the SoapException and write the Detail xml node.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/crmsdk.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/crmsdk.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/crmsdk.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/crmsdk.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/crmsdk.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/crmsdk.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/crmsdk.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/crmsdk.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/crmsdk.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/crmsdk.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=15&subd=crmsdk&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://crmsdk.com/2009/07/06/writing-to-the-windows-event-log/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce4325f4484f360b997f717d2471d617?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Shy Asian Guy</media:title>
		</media:content>
	</item>
		<item>
		<title>CRM 4.0 and Exchange 2010</title>
		<link>http://crmsdk.com/2009/07/03/crm-4-0-and-exchange-2010/</link>
		<comments>http://crmsdk.com/2009/07/03/crm-4-0-and-exchange-2010/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 21:08:29 +0000</pubDate>
		<dc:creator>Steve Suh</dc:creator>
				<category><![CDATA[E-mail Router]]></category>

		<guid isPermaLink="false">http://crmsdk.com/?p=8</guid>
		<description><![CDATA[I tried installing the e-mail router with forwarding rules from CRM 4.0 to Exchange 2010 (E14). 
The Environment:
CRM Server &#8211; Windows Server 2003, Dynamics CRM 4, Rollup Update #4
Exchange Server &#8211; Windows Server 2008, Exchange 2010 E14 beta
Some findings:

Outgoing e-mails works fine with the router.  Two things I had to change to make it work though [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=8&subd=crmsdk&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I tried installing the e-mail router with forwarding rules from CRM 4.0 to Exchange 2010 (E14). </p>
<p>The Environment:</p>
<p><strong>CRM Server</strong> &#8211; Windows Server 2003, Dynamics CRM 4, Rollup Update #4</p>
<p><strong>Exchange Server &#8211; </strong>Windows Server 2008, Exchange 2010 E14 beta</p>
<p>Some findings:</p>
<ol>
<li><strong>Outgoing e-mails works fine</strong> with the router.  Two things I had to change to make it work though were making sure the <strong>Exchange Server </strong>name matched the certificate name for the exchange server.  The other was for the <strong>Access Credentials</strong> when <strong>Other Specified </strong>was selected to not use theDomain\Administrator account.  This appears to be an account that Exchange does not allow to send e-mails.  I changed this to another service account that had rights to CRM as well (just in case) and got the e-mail router to work.</li>
<p> </p>
<li>Accessing the <strong>Forward Mailbox does not work</strong>.  There were two prerequisites for the Forward Mailbox option to work that Exchange 2010 does not have. 
<ul>
<li>One is WebDav, this looks to have been deprecated  (<a href="http://social.technet.microsoft.com/Forums/en-US/exchange2010/thread/7aabb536-b226-4d01-ada4-d1271b46fdfa">http://social.technet.microsoft.com/Forums/en-US/exchange2010/thread/7aabb536-b226-4d01-ada4-d1271b46fdfa</a>).</li>
<li>The other is the existence of legacy IIS virtual directories for Exchange and ExAdmin.  When Testing Access with for the forward mailbox it returns errors repeating 404 or general timeouts when trying to access the mailbox.  When reviewing the IIS logs the router looks like it&#8217;s requesting the /Exchange/[Mailbox_Name] and the /ExAdmin/Admin/[Domain]/MBX/[Mailbox_Name] and both of these return a 404.  For Exchange 2007 you can create these via the powershell command new-owavirtualdirectory with the -owaversion parameter.  But this parameter is not available with the current bits.</li>
</ul>
</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/crmsdk.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/crmsdk.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/crmsdk.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/crmsdk.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/crmsdk.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/crmsdk.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/crmsdk.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/crmsdk.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/crmsdk.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/crmsdk.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=crmsdk.com&blog=8416726&post=8&subd=crmsdk&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://crmsdk.com/2009/07/03/crm-4-0-and-exchange-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce4325f4484f360b997f717d2471d617?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Shy Asian Guy</media:title>
		</media:content>
	</item>
	</channel>
</rss>