<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" 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/"><channel><title>Microsoft Dynamics CRM Team Blog</title><link>http://blogs.msdn.com/crm/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Vote: 24 Hours to Build an xRM Application, You Decide on the Application, We Build it</title><link>http://blogs.msdn.com/crm/archive/2009/07/10/vote-24-hours-to-build-an-xrm-application-you-decide-on-the-application-we-build-it.aspx</link><pubDate>Fri, 10 Jul 2009 07:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9828426</guid><dc:creator>crmblog</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/crm/comments/9828426.aspx</comments><wfw:commentRss>http://blogs.msdn.com/crm/commentrss.aspx?PostID=9828426</wfw:commentRss><wfw:comment>http://blogs.msdn.com/crm/rsscomments.aspx?PostID=9828426</wfw:comment><description>Next week WPC 2009 begins in New Orleans. In between sessions and meetings we’ll post updates from the show. If you’re not going you can still participate and here’s how: starting on Monday at 4:30 PM CDT Reuben Krippner, Nikhil Hasija, Bryan Nielson...(&lt;a href="http://blogs.msdn.com/crm/archive/2009/07/10/vote-24-hours-to-build-an-xrm-application-you-decide-on-the-application-we-build-it.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9828426" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/crm/archive/tags/Social+Networks/default.aspx">Social Networks</category><category domain="http://blogs.msdn.com/crm/archive/tags/Conference/default.aspx">Conference</category><category domain="http://blogs.msdn.com/crm/archive/tags/social+software/default.aspx">social software</category><category domain="http://blogs.msdn.com/crm/archive/tags/XRM/default.aspx">XRM</category></item><item><title>Product Release: Mobile Express for Microsoft Dynamics CRM 4.0</title><link>http://blogs.msdn.com/crm/archive/2009/07/09/product-release-mobile-express-for-microsoft-dynamics-crm-4-0.aspx</link><pubDate>Fri, 10 Jul 2009 05:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9828316</guid><dc:creator>crmblog</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/crm/comments/9828316.aspx</comments><wfw:commentRss>http://blogs.msdn.com/crm/commentrss.aspx?PostID=9828316</wfw:commentRss><wfw:comment>http://blogs.msdn.com/crm/rsscomments.aspx?PostID=9828316</wfw:comment><description>We are pleased to announce the availability of Mobile Express for Microsoft Dynamics CRM 4.0. Mobile Express gives organizations a Microsoft supported mobile solution with the power of choice: choices in the devices and in the networks they use when going...(&lt;a href="http://blogs.msdn.com/crm/archive/2009/07/09/product-release-mobile-express-for-microsoft-dynamics-crm-4-0.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9828316" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/crm/attachment/9828316.ashx" length="11292" type="image/jpeg" /><category domain="http://blogs.msdn.com/crm/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://blogs.msdn.com/crm/archive/tags/Mobile/default.aspx">Mobile</category><category domain="http://blogs.msdn.com/crm/archive/tags/WM/default.aspx">WM</category></item><item><title>Making Your Existing Email Address Your Windows Live ID</title><link>http://blogs.msdn.com/crm/archive/2009/07/09/making-your-existing-email-address-your-windows-live-id.aspx</link><pubDate>Thu, 09 Jul 2009 16:14:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9827048</guid><dc:creator>crmblog</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/crm/comments/9827048.aspx</comments><wfw:commentRss>http://blogs.msdn.com/crm/commentrss.aspx?PostID=9827048</wfw:commentRss><wfw:comment>http://blogs.msdn.com/crm/rsscomments.aspx?PostID=9827048</wfw:comment><description>Let’s say you want to invite your new users to CRM Online using their corporate email address, however you are not sure if their corporate email address is their Windows Live ID (WLID).&amp;#160; Why would I do this?&amp;#160; Well if you send the invite to a...(&lt;a href="http://blogs.msdn.com/crm/archive/2009/07/09/making-your-existing-email-address-your-windows-live-id.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9827048" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/crm/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.msdn.com/crm/archive/tags/Windows+Live+ID/default.aspx">Windows Live ID</category></item><item><title>Rolling with the System Administrator Role</title><link>http://blogs.msdn.com/crm/archive/2009/07/09/rolling-with-the-system-administrator-role.aspx</link><pubDate>Thu, 09 Jul 2009 12:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9827090</guid><dc:creator>crmblog</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/crm/comments/9827090.aspx</comments><wfw:commentRss>http://blogs.msdn.com/crm/commentrss.aspx?PostID=9827090</wfw:commentRss><wfw:comment>http://blogs.msdn.com/crm/rsscomments.aspx?PostID=9827090</wfw:comment><description>I recently had a customer that wanted to run the Email Router as a user other than the System Administrator, offhand this seemed like an easy task. The customer setup a new “Service User” and created a special “Service Role” that only had access to email...(&lt;a href="http://blogs.msdn.com/crm/archive/2009/07/09/rolling-with-the-system-administrator-role.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9827090" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/crm/archive/tags/E-mail/default.aspx">E-mail</category><category domain="http://blogs.msdn.com/crm/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.msdn.com/crm/archive/tags/Guest+Star/default.aspx">Guest Star</category><category domain="http://blogs.msdn.com/crm/archive/tags/MVP/default.aspx">MVP</category><category domain="http://blogs.msdn.com/crm/archive/tags/Roles/default.aspx">Roles</category></item><item><title>Which Database Hotfixes Did I Just Install?</title><link>http://blogs.msdn.com/crm/archive/2009/07/08/which-database-hotfixes-did-i-just-install.aspx</link><pubDate>Wed, 08 Jul 2009 16:43:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9824305</guid><dc:creator>crmblog</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/crm/comments/9824305.aspx</comments><wfw:commentRss>http://blogs.msdn.com/crm/commentrss.aspx?PostID=9824305</wfw:commentRss><wfw:comment>http://blogs.msdn.com/crm/rsscomments.aspx?PostID=9824305</wfw:comment><description>&lt;p&gt;This article will cover how to answer:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Which database hotfixes are currently installed on your Microsoft Dynamics CRM Server?&lt;/li&gt;    &lt;li&gt;Which database hotfixes will be installed or uninstalled with a particular hotfix or Update Rollup (UR)?&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Background&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Historically, database hotfixes have been considered an internal detail of Microsoft Dynamics CRM hotfixes, so there is currently no straightforward way for administrators to track exactly when particular database hotfixes are installed or uninstalled.&amp;#160; There has been an increased interest in being able to track this information.&amp;#160; This article is intended to describe a workaround for deriving this information until a more formal means is available, most likely in CRM 5.0 timeframe.&lt;/p&gt;  &lt;p&gt;All database hotfixes are cumulative.&amp;#160; Each new database hotfix will include all previously released database hotfixes as dependencies.&amp;#160; If a particular dependent database hotfix is already installed on your Server, it will not be reinstalled.&amp;#160; If a particular database hotfix is a dependency of other currently installed hotfixes, uninstall of the dependent hotfix will be a no-op.&amp;#160; It will be uninstalled when all other hotfixes that are dependent on it are also uninstalled.&lt;/p&gt;  &lt;p&gt;No database hotfixes are installed when Microsoft Dynamics CRM Server is installed using the “Update installation files (strongly recommended)” option.&amp;#160; No database hotfixes are installed when a new organization database is created.&amp;#160; You must re-install database hotfixes for the new organization.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;How to Track Database Hotfixes&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;You will need to know the KB numbers of the fixes you have already installed.&amp;#160; You can find this information in Add/Remove Programs.&amp;#160; For all of our examples, we will suppose that you have already installed the following:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;KB949069&lt;/li&gt;    &lt;li&gt;KB956129&lt;/li&gt;    &lt;li&gt;KB955482&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;u&gt;Example 1&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Before installing Update Rollup 4 (KB968176), you want to know which database hotfixes will be installed along with it.&lt;/p&gt;  &lt;ol&gt;   &lt;ol&gt;     &lt;li&gt;Download the UR 4 package and save it to your computer&lt;/li&gt;      &lt;li&gt;Extract the UR 4 package&lt;/li&gt;      &lt;ol&gt;       &lt;li&gt;Click Start –&amp;gt; Command Prompt&lt;/li&gt;        &lt;li&gt;In the command prompt window type ‘&amp;lt;dir&amp;gt;\ CRMv4.0-KB968176-i386-Server-ENU.exe /X’, where &amp;lt;dir&amp;gt; is the location where you saved the UR 4 package and hit ENTER.&lt;/li&gt;        &lt;li&gt;In the “Choose Directory For Extracted Files” dialog enter the directory where you would like to save the extracted files; if it does not exist already, it will be created. Click OK.&lt;/li&gt;     &lt;/ol&gt;      &lt;li&gt;Find database hotfix install info in the extracted package&lt;/li&gt;      &lt;ol&gt;       &lt;li&gt;In Windows Explorer, navigate to the directory where you saved the extracted files&lt;/li&gt;        &lt;li&gt;Open the language specific folder such as ‘EN’ for English&lt;/li&gt;        &lt;li&gt;Open the file dbhotfix_install.xml.&amp;#160; Do not modify this file, or any of the contents of the extracted package.&lt;/li&gt;     &lt;/ol&gt;   &lt;/ol&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UR 4’s dbhotfix_install.xml looks like this:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;releases&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1027&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB948172\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1028&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB948588\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1029&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB951300\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1030&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB950229\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1050&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB952149\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font color="#ff0000" face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1095&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB956129\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1200&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB953905\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1205&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB954640\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1213&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB957788\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1225&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB949202\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1233&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB957589\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font color="#ff0000" face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1235&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB955482\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1246&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB956445\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1254&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB960249\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font color="#ff0000" face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1255&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB949069\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1316&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB959419\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1408&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB961768\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;font face="Courier New"&gt;&amp;lt;release version=&amp;quot;&lt;b&gt;04.00.7333.1551&lt;/b&gt;&amp;quot; progress_range=&amp;quot;&lt;b&gt;20&lt;/b&gt;&amp;quot; location=&amp;quot;&lt;b&gt;KB968176\Install\DbHotfix_release.xml&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;/releases&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Each entry is a database hotfix - for ease of reading, I have &lt;font color="#ff0000"&gt;highlighted&lt;/font&gt; the ones installed in our example.&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The location attribute indicates the KB number&lt;/li&gt;    &lt;li&gt;The version attribute indicates the build number&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Your server’s current build number will be the greatest version of all the hotfixes you have previously installed.&amp;#160; So in our example, your current build number is 04.00.7333.1255.&lt;/p&gt;  &lt;p&gt;When you install a new hotfix, any entry with a version greater than your current build number will also be installed.&amp;#160; Any entry with a version less than or equal to your current build number is already installed, and will not be installed again.&amp;#160; So in the case of our example:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;What is currently installed?&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Every entry up to and including 04.00.7333.1255 (KB949069).&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;What will be installed when you install UR 4?&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Every entry greater than 04.00.7333.1255, so in this case the last three entries: KB959419&lt;b&gt;, &lt;/b&gt;KB961768 and KB968176.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&lt;u&gt;Example 2&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;You want to uninstall KB949069.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;We will uninstall as far back as the next greatest version number.&amp;#160; So in our example, that means we will go back to 04.00.7333.1235 (KB955482).&amp;#160; So KB949069, KB960249, and KB956445 will be uninstalled.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;Example 3&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;You want to uninstall KB955482.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;If you uninstall a database hotfix that has a version less than your current build number, it will not actually be uninstalled until you uninstall all hotfixes with a greater version number.&amp;#160; So when you uninstall KB955482, it will not be uninstalled until you also uninstall KB949069.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;Example 4&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;You want to install or uninstall a KB that is not listed in dbhotfix_install.xml&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;If you have a KB that is not listed in this file, this is because no new database hotfix was released with it.&amp;#160; You can still derive database hotfix tracking information by using the build number of that hotfix. You can find the build number in the KB article.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Thanks,   &lt;br /&gt;&lt;a href="http://blogs.msdn.com/crm/pages/bio-leslie-zavisca.aspx" target="_blank"&gt;Leslie Zavisca&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9824305" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/crm/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.msdn.com/crm/archive/tags/hotfix/default.aspx">hotfix</category></item><item><title>RELEASE - White Paper v2: Optimizing and Maintaining Microsoft Dynamics CRM 4.0</title><link>http://blogs.msdn.com/crm/archive/2009/07/07/release-white-paper-v2-optimizing-and-maintaining-microsoft-dynamics-crm-4-0.aspx</link><pubDate>Tue, 07 Jul 2009 17:42:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9823000</guid><dc:creator>crmblog</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/crm/comments/9823000.aspx</comments><wfw:commentRss>http://blogs.msdn.com/crm/commentrss.aspx?PostID=9823000</wfw:commentRss><wfw:comment>http://blogs.msdn.com/crm/rsscomments.aspx?PostID=9823000</wfw:comment><description>&lt;p&gt;The MS CRM E&lt;sup&gt;2&lt;/sup&gt; team is pleased to announce the release of the version 2.0 update of the white paper &lt;i&gt;Optimizing and Maintaining Microsoft Dynamics CRM 4.0&lt;/i&gt;, which is available from Microsoft Downloads at    &lt;br /&gt;&lt;a href="https://www.microsoft.com/downloads/details.aspx?FamilyID=ba826cee-eddf-4d6e-842d-27fd654ed893&amp;amp;displayLang=en"&gt;https://www.microsoft.com/downloads/details.aspx?FamilyID=ba826cee-eddf-4d6e-842d-27fd654ed893&amp;amp;displayLang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Working with resources from Microsoft Premier Field Engineering, Microsoft SQL Server, UK MCS, and CRM Performance and UA teams, this update reflects the latest information available to assist readers with optimizing and maintaining the performance of Microsoft Dynamics CRM 4.0 implementations.&lt;/p&gt;  &lt;p&gt;The following list provides a summary of the changes included with this version 2.0 update:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Updated hardware requirements for:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Microsoft Dynamics CRM 4.0&lt;/li&gt;      &lt;li&gt;Microsoft Dynamics CRM 4.0 for Outlook&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Categorized references/links to external content to by product version where appropriate (e.g. Windows Server 2003 and Windows Server 2008), and provided additional references where available&lt;/li&gt;    &lt;li&gt;In the section&lt;a name="_Toc233098506"&gt; &lt;b&gt;Optimizing and Maintaining Internet Information Services&lt;/b&gt;&lt;/a&gt;, added the topic &lt;i&gt;Optimizing the Performance of Integrated Windows Authentication and Kerberos Authentication&lt;/i&gt;&lt;/li&gt;    &lt;li&gt;In the section &lt;b&gt;Optimizing the Performance of Microsoft Dynamics CRM&lt;/b&gt;:&lt;/li&gt;    &lt;li&gt;In the topic &lt;i&gt;Enhancing Performance by Distributing Server Roles&lt;/i&gt;, added the sub-topic &lt;i&gt;Considerations for Distributing Server Roles&lt;/i&gt;&lt;/li&gt;    &lt;li&gt;In the topic &lt;a name="_Toc233098518"&gt;&lt;i&gt;Optimizing the Performance of Microsoft Dynamics CRM 4.0 Applications&lt;/i&gt;&lt;/a&gt;, in the sub-topic &lt;a name="_Toc233098520"&gt;&lt;i&gt;Optimizing the Performance of Microsoft Dynamics CRM Customizations&lt;/i&gt;&lt;/a&gt;, supplemented the information on disabling auto-complete on lookups with procedural information&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;In the section &lt;b&gt;Optimizing Workflow&lt;/b&gt;, added multiple best practices.&lt;/li&gt;      &lt;li&gt;In the section &lt;b&gt;Optimizing and Maintaining Microsoft SQL Server and the Microsoft Dynamics CRM Database&lt;/b&gt;:&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Added note about and reference to white&lt;i&gt; &lt;/i&gt;paper&lt;i&gt; Improving Microsoft Dynamics CRM Performance and Securing Data with Microsoft SQL Server 2008&lt;/i&gt;&lt;/li&gt;    &lt;li&gt;In the topic &lt;a name="_Toc233098540"&gt;&lt;i&gt;Optimizing and Maintaining Query Performance&lt;/i&gt;&lt;/a&gt;, added the sub-topic &lt;a name="_Toc233098541"&gt;&lt;i&gt;Enhancing&lt;/i&gt; &lt;i&gt;the Performance of the Display of Query Results&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;In the topic &lt;i&gt;Optimizing and Maintaining the Microsoft Dynamics CRM Database&lt;/i&gt;, added the sub-topic &lt;i&gt;Implementing Solid State Drive Technology&lt;/i&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Added &lt;i&gt;Appendix B: CRM Performance Counters&lt;/i&gt;; created &lt;i&gt;Appendix C: CRM E-mail Router Performance Counters&lt;/i&gt; for previously published Appendix B content; added &lt;i&gt;Appendix D: Summary of Changes in v2.0 Update&lt;/i&gt;&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/crm/pages/bio-jim-toland.aspx" target="_blank"&gt;Jim Toland&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9823000" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/crm/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.msdn.com/crm/archive/tags/CRM4/default.aspx">CRM4</category><category domain="http://blogs.msdn.com/crm/archive/tags/CRM+Online/default.aspx">CRM Online</category><category domain="http://blogs.msdn.com/crm/archive/tags/White+Paper/default.aspx">White Paper</category></item><item><title>Monitoring Queue Data with the CRM Queue Gadget</title><link>http://blogs.msdn.com/crm/archive/2009/07/06/monitoring-queue-data-with-the-crm-queue-gadget.aspx</link><pubDate>Mon, 06 Jul 2009 18:17:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9820314</guid><dc:creator>crmblog</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/crm/comments/9820314.aspx</comments><wfw:commentRss>http://blogs.msdn.com/crm/commentrss.aspx?PostID=9820314</wfw:commentRss><wfw:comment>http://blogs.msdn.com/crm/rsscomments.aspx?PostID=9820314</wfw:comment><description>&lt;p&gt;If you are looking for a convenient way to monitor queues, be sure to read our new article on&amp;#160; MSDN,&amp;#160; &lt;a href="http://msdn.microsoft.com/en-us/library/dd981046.aspx"&gt;Monitoring Microsoft Dynamics CRM 4.0 Queues with a Windows Sidebar Gadget&lt;/a&gt;. It shows you how to use Windows Sidebar, also known as “gadgets”, to monitor the information in Microsoft Dynamics CRM queues. The CRM Queue Gadget application lets you view queue data in a small lockable panel on your Windows Vista desktop. It looks like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/crm/WindowsLiveWriter/MonitoringQueueDatawiththeCRMQueueGadget_9EAA/clip_image002_2.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/crm/WindowsLiveWriter/MonitoringQueueDatawiththeCRMQueueGadget_9EAA/clip_image002_thumb.gif" width="120" height="166" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The article is based on the sample application and the blog that were written by Ake Janedittakarn, a software development engineer on the CRM team. Since the publishing of the blog, Ake moved to Thailand and now works on a different team at Microsoft. You can read Ake’s original blog here: &lt;a href="http://blogs.msdn.com/akezyt/archive/2007/08/03/crm-queue-gadget.aspx"&gt;http://blogs.msdn.com/akezyt/archive/2007/08/03/crm-queue-gadget.aspx&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/crm/pages/bio-inna-agranov.aspx" target="_blank"&gt;Inna Agranov&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9820314" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/crm/archive/tags/CRM4/default.aspx">CRM4</category><category domain="http://blogs.msdn.com/crm/archive/tags/SDK/default.aspx">SDK</category><category domain="http://blogs.msdn.com/crm/archive/tags/Gadget/default.aspx">Gadget</category></item><item><title>New Silverlight 2 Sample on Code Gallery</title><link>http://blogs.msdn.com/crm/archive/2009/07/02/new-silverlight-2-sample-on-code-gallery.aspx</link><pubDate>Thu, 02 Jul 2009 17:05:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9814503</guid><dc:creator>crmblog</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/crm/comments/9814503.aspx</comments><wfw:commentRss>http://blogs.msdn.com/crm/commentrss.aspx?PostID=9814503</wfw:commentRss><wfw:comment>http://blogs.msdn.com/crm/rsscomments.aspx?PostID=9814503</wfw:comment><description>&lt;p&gt;I recently did an investigation into using Silverlight 2 with Microsoft CRM 4.0. I have posted the resulting project and supporting documentation on Code Gallery. See &lt;a href="http://code.msdn.microsoft.com/crm4SL2BarChart"&gt;Microsoft Dynamics CRM 4.0 On Premise Silverlight 2 Bar Chart Sample&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Unlike many code samples you may find, this one includes full step-by-step instructions about building and deploying the sample. It is more like a hands-on-lab. This sample leverages the work done by Humberto Lezama Guadarrama in his post &lt;a href="http://blogs.msdn.com/lezamax/archive/2008/11/05/sample-silverlight-2-and-crm.aspx"&gt;Sample:Silverlight 2 and CRM&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;This sample explores the following tasks:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Using the Asynchronous methods required by Silverlight&lt;/li&gt;    &lt;li&gt;Establishing CRM Authentication&lt;/li&gt;    &lt;li&gt;Using Silverlight Toolkit Chart controls&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="4"&gt;Using the Asynchronous methods required by Silverlight&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;One of the things this sample explores is how to use the proxy generated by Visual Studio 2008 for Microsoft CRM 4.0 web services. This is a bit complicated because Silverlight doesn't allow for synchronous Web service calls - and the Microsoft CRM SDK doesn't document the use of asynchronous web services calls. When you create the reference to the Web service in Visual Studio 2008 you don't get a standard CrmService object, you get a CrmServiceSoapClient object which only exposes the asynchronous messages.&lt;/p&gt;  &lt;p&gt;Testing indicates that with one notable exception the asynchronous versions of the methods appear to work as expected. One known problem is that the RetrieveMultipleAsync method may return null values. The work around for this is to use the ExecuteAsync method on an RetrieveMultipleRequest that is configured to return Dynamic Entities. This sample shows how this works.&lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;Establishing CRM Authentication&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;As detailed in Humberto Lezama Guadarrama's post &lt;a href="http://blogs.msdn.com/lezamax/archive/2008/09/24/silverlight-2-and-crm.aspx"&gt;Silverlight 2 and CRM&lt;/a&gt;, it is necessary to provide a mechanism to inject a custom CRM Authentication token into the SOAP headers generated by the proxy. This sample uses the same technique.&lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;Using Silverlight Toolkit Chart controls&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Finally, when creating this sample I was looking for a way to use Silverlight within Microsoft CRM without writing a complete CRM UI. The Silverlight Toolkit provides some useful components to build charts. Since these could be hosted within a CRM IFrame or launched like a report from a custom button - I chose to use those.&lt;/p&gt;  &lt;p&gt;If you are interested in trying Silverlight in the context of Microsoft CRM, I hope this sample helps you.&lt;/p&gt;  &lt;p&gt;Cheers&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/crm/pages/bio-jim-daly.aspx" target="_blank"&gt;Jim Daly&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9814503" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/crm/archive/tags/silverlight/default.aspx">silverlight</category><category domain="http://blogs.msdn.com/crm/archive/tags/SDK/default.aspx">SDK</category><category domain="http://blogs.msdn.com/crm/archive/tags/CodePlex/default.aspx">CodePlex</category></item><item><title>Synchronizing and the Offline Client</title><link>http://blogs.msdn.com/crm/archive/2009/07/01/synchronizing-and-the-offline-client.aspx</link><pubDate>Wed, 01 Jul 2009 15:33:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9811270</guid><dc:creator>crmblog</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/crm/comments/9811270.aspx</comments><wfw:commentRss>http://blogs.msdn.com/crm/commentrss.aspx?PostID=9811270</wfw:commentRss><wfw:comment>http://blogs.msdn.com/crm/rsscomments.aspx?PostID=9811270</wfw:comment><description>&lt;p&gt;One of the great features provided by &lt;a href="http://www.microsoft.com/online/dynamics-crm-online.mspx" target="_blank"&gt;Microsoft Dynamics CRM Online&lt;/a&gt; is the ability to take the application offline (i.e. work on a plane).&amp;#160; This capability is made possible by our S+S (software+services) vision of leveraging the best of services (CRM Online) coupled with the best of software (Outlook).&amp;#160; This is not possible in a SaaS (software as a service) model as locally installed software is required to achieve the functionality since an internet connection would not be available to serve up the hosted service.&amp;#160; The offline CRM Outlook client functionality is made possible by utilizing Outlook, a SQL Express database to store the offline CRM data and IIS on the laptop to render the web pages.&amp;#160; This is a competitive advantage of the Microsoft CRM offering that many of our competitors do not offer or are trying to replicate (thus proving the efficacy of the S+S vision).&lt;/p&gt;  &lt;p&gt;Recently I was asked the following question:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“When I go Offline with the Outlook client and create a CRM Appointment, will it show up on my Outlook calendar?”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This was a question I recently received from one of our customers.&amp;#160; I believed the answer was yes but I wanted to investigate and take the scenario a bit further to include the core synchronization elements (Appointments, Contacts and Tasks).&amp;#160; So to test I:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Installed the Offline &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=E8E6C81A-B7B2-4E57-8599-604967617396&amp;amp;displaylang=en"&gt;Outlook Client&lt;/a&gt;.&amp;#160; There is only 1 Outlook client that supports both subscriptions (Professional – No Offline and Professional Plus – Offline).&amp;#160; In order to achieve the Offline capabilities you must select to install Outlook with Offline Access during the installation process.       &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image002%5B7%5D.jpg"&gt;&lt;img title="Online or Offline installation option" border="0" alt="Online or Offline installation option" src="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image002%5B7%5D_thumb.jpg" width="454" height="342" /&gt;&lt;/a&gt;      &lt;br /&gt;&lt;strong&gt;&lt;em&gt;NOTE: If you have the Outlook Client installed and upgrade your CRM Online subscription to Professional Plus you will need to uninstall and reinstall the Outlook Client in order to gain the offline functionality.&amp;#160; This WILL NOT delete any of the records previously synchronized with CRM and upon reinstall will maintain the CRM and Outlook record linkage.&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Went offline but clicking on the Go Offline button in the CRM toolbar. &lt;/li&gt;    &lt;li&gt;Created a CRM Appointment.      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image002_2.jpg"&gt;&lt;img title="CRM Appointment Created while Offline" border="0" alt="CRM Appointment Created while Offline" src="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image002_thumb.jpg" width="504" height="404" /&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Confirmed the synchronization of the CRM Appointment to the offline Outlook Calendar.      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image006_2.jpg"&gt;&lt;img title="Confirmation of Outlook Appointment created while Offline" border="0" alt="Confirmation of Outlook Appointment created while Offline" src="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image006_thumb.jpg" width="504" height="404" /&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Created a CRM Contact      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image008_2.jpg"&gt;&lt;img title="CRM Contact created while Offline" border="0" alt="CRM Contact created while Offline" src="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image008_thumb.jpg" width="504" height="404" /&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Confirmed the synchronization of the CRM Contact to the offline Outlook Contacts.      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image010_2.jpg"&gt;&lt;img title="Confirmation of Outlook Contact created while Offline" border="0" alt="Confirmation of Outlook Contact created while Offline" src="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image010_thumb.jpg" width="504" height="404" /&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Created a CRM Task.      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image012_2.jpg"&gt;&lt;img title="CRM Task creation while Offline" border="0" alt="CRM Task creation while Offline" src="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image012_thumb.jpg" width="504" height="404" /&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Confirmed the synchronization of the CRM Task to the offline Outlook Task.      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image014_2.jpg"&gt;&lt;img title="Confirmation of Outlook Task created while Offline" border="0" alt="Confirmation of Outlook Task created while Offline" src="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image014_thumb.jpg" width="504" height="404" /&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Created a CRM Appointment in the CRM web client.      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image016_2.jpg"&gt;&lt;img title="Appointment created in web client while Outlook is offline" border="0" alt="Appointment created in web client while Outlook is offline" src="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image016_thumb.jpg" width="504" height="404" /&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Confirmed the Appointment created in CRM Offline has not synchronized to the web database.      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image018_2.jpg"&gt;&lt;img title="Confirmation that Offline Outlook Appointment does not exist in CRM Online (web) database" border="0" alt="Confirmation that Offline Outlook Appointment does not exist in CRM Online (web) database" src="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image018_thumb.jpg" width="504" height="404" /&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Confirmed that the Appointment created in the CRM web client did not synchronize to the Offline Outlook client (only appt. created in step 3 exists).&amp;#160; Synchronized Outlook and CRM by clicking on the Go Online button in the CRM toolbar.      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image020_2.jpg"&gt;&lt;img title="Confirmation that webclient Appointment does not exist in Outlook.  Synchronizing changes made to offline and web client" border="0" alt="Confirmation that webclient Appointment does not exist in Outlook.  Synchronizing changes made to offline and web client" src="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image020_thumb.jpg" width="504" height="404" /&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Confirmed the Offline created CRM Appointment and CRM Task were synchronized to the CRM web database.      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image022_2.jpg"&gt;&lt;img title="Task created while Offline now exists in CRM webclient." border="0" alt="Task created while Offline now exists in CRM webclient." src="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image022_thumb.jpg" width="504" height="404" /&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Confirmed the Online created Appointment was synchronized to the Outlook client.      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image024_2.jpg"&gt;&lt;img title="Appointment created while Offline now exists in CRM webclient." border="0" alt="Appointment created while Offline now exists in CRM webclient." src="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/SynchronizingandtheOfflineClient_D57C/clip_image024_thumb.jpg" width="504" height="404" /&gt;&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Hopefully this will help you get a better understanding of how the offline synchronization process works with the Microsoft Dynamics CRM Outlook client.&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/crm/pages/bio-eric-boocock.aspx" target="_blank"&gt;Eric Boocock&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9811270" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/crm/archive/tags/Office+Integration/default.aspx">Office Integration</category><category domain="http://blogs.msdn.com/crm/archive/tags/Offline/default.aspx">Offline</category><category domain="http://blogs.msdn.com/crm/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.msdn.com/crm/archive/tags/CRM+Online/default.aspx">CRM Online</category></item><item><title>CRM Online: Enhanced Internet Lead Capture capabilities now available</title><link>http://blogs.msdn.com/crm/archive/2009/06/30/crm-online-enhanced-internet-lead-capture-capabilities-now-available.aspx</link><pubDate>Tue, 30 Jun 2009 16:32:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9809791</guid><dc:creator>crmblog</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/crm/comments/9809791.aspx</comments><wfw:commentRss>http://blogs.msdn.com/crm/commentrss.aspx?PostID=9809791</wfw:commentRss><wfw:comment>http://blogs.msdn.com/crm/rsscomments.aspx?PostID=9809791</wfw:comment><description>&lt;p&gt;For those currently using the Internet Lead Capture capabilities within CRM Online you may have noticed that the functionality was enhanced recently.&amp;#160; &lt;/p&gt;  &lt;p&gt;Here are some highlights of what has improved:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;- Canadian customers can now take advantage of Internet Lead Capture (AdCenter integration does not apply in Canada)&lt;/p&gt;    &lt;p&gt;- There is support for vanity URLs which allows you to leverage your unique CRM Online org name for a specific landing page URL if you decide to have Microsoft host your internet lead capture page&lt;/p&gt;    &lt;p&gt;- You have the ability to add any lead field (including custom lead fields) to the Internet Lead Capture web form&lt;/p&gt;    &lt;p&gt;- There is an improved Lead Capture Home Page with embedded charts to show lead capture effectiveness&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;If you aren’t using this functionality today, you can easily activate it by clicking on “Landing Pages” or “Internet Leads” from the Sales or Marketing Tab within the left navigation&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/EnhancedInternetMarketingcapabilitiesnow_99A1/image_2.png"&gt;&lt;img title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/dynamicscrmonline/WindowsLiveWriter/EnhancedInternetMarketingcapabilitiesnow_99A1/image_thumb.png" width="520" height="339" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/crm/pages/bio-brian-galicia.aspx" target="_blank"&gt;Brian Galicia&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9809791" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/crm/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://blogs.msdn.com/crm/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.msdn.com/crm/archive/tags/CRM+Online/default.aspx">CRM Online</category><category domain="http://blogs.msdn.com/crm/archive/tags/Lead+Managment/default.aspx">Lead Managment</category></item><item><title>Answers from the Microsoft Dynamics CRM Community</title><link>http://blogs.msdn.com/crm/archive/2009/06/29/answers-from-the-microsoft-dynamics-crm-community.aspx</link><pubDate>Mon, 29 Jun 2009 18:57:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9808840</guid><dc:creator>crmblog</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/crm/comments/9808840.aspx</comments><wfw:commentRss>http://blogs.msdn.com/crm/commentrss.aspx?PostID=9808840</wfw:commentRss><wfw:comment>http://blogs.msdn.com/crm/rsscomments.aspx?PostID=9808840</wfw:comment><description>&lt;p&gt;I see a lot of support questions on the CRM Team Blog. Some of them get answered, many do not. The best way to get answers to pressing questions depends a lot on how much customization you do to your Microsoft Dynamics CRM installation. It is also important to know what version you are using. If you have a support plan for your CRM installation, that is hands down the fastest way to to get help. The support team will bend over backwards to get you answers and they are measured on how quickly they can do just that.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://social.microsoft.com/Forums/en-US/category/dynamics" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="forums" border="0" alt="forums" src="http://blogs.msdn.com/blogfiles/crm/WindowsLiveWriter/AnswersfromtheMicrosoftDynamicsCRMCommun_A80B/forums_3.jpg" width="644" height="284" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As I also maintain the &lt;a href="http://social.microsoft.com/Forums/en-US/category/dynamics/" target="_blank"&gt;Dynamics Forums&lt;/a&gt; I should say that many times that is the fast way to get answers to common questions including common customizations. It helps to have read the documentation before you ask a question, but there are rarely new questions that our forums team hasn’t heard. Examples of questions that will probably not get answered include:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Can you give me some custom code to do something for me?&lt;/p&gt;    &lt;p&gt;2. How can I do this and I don’t want to read the documentation?&lt;/p&gt;    &lt;p&gt;3. I know nothing about CRM, can you tell me enough to get me started? (See number 2.)&lt;/p&gt;    &lt;p&gt;4. I have a question about another Microsoft product that has nothing to do with CRM; can you answer that?&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;When you get a great answer please feel free to mark the post as answered by clicking the ‘Mark as Answer’ button at the bottom of the post. There are a lot of good people including &lt;a href="https://mvp.support.microsoft.com/communities/mvp.aspx?product=1&amp;amp;competency=Dynamics+CRM" target="_blank"&gt;CRM MVP&lt;/a&gt;s answering questions and I love to see them get credit for their hard work. With all the &lt;a href="http://blogs.msdn.com/crm/archive/2009/03/04/community-top-10-microsoft-dynamics-crm-sites-aka-crm-101.aspx" target="_blank"&gt;Microsoft Dynamics CRM resources&lt;/a&gt; available to you, we should be able to answer most of your questions in a timely manner.&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/crm/pages/bio-jim-jaag-glass.aspx" target="_blank"&gt;JaAG&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9808840" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/crm/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.msdn.com/crm/archive/tags/Support/default.aspx">Support</category><category domain="http://blogs.msdn.com/crm/archive/tags/Suggestions/default.aspx">Suggestions</category><category domain="http://blogs.msdn.com/crm/archive/tags/Forums/default.aspx">Forums</category><category domain="http://blogs.msdn.com/crm/archive/tags/Answers/default.aspx">Answers</category></item><item><title>Windows 7: Be first. Save half.</title><link>http://blogs.msdn.com/crm/archive/2009/06/26/windows-7-be-first-save-half.aspx</link><pubDate>Fri, 26 Jun 2009 15:20:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9805587</guid><dc:creator>crmblog</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/crm/comments/9805587.aspx</comments><wfw:commentRss>http://blogs.msdn.com/crm/commentrss.aspx?PostID=9805587</wfw:commentRss><wfw:comment>http://blogs.msdn.com/crm/rsscomments.aspx?PostID=9805587</wfw:comment><description>&lt;p&gt;&lt;a href="http://store.microsoft.com/microsoft/Windows-7/category/102?WT.mc_id=blog77_win7promo" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Win7" border="0" alt="Win7" src="http://blogs.msdn.com/blogfiles/crm/WindowsLiveWriter/Windows7Befirst.Savehalf_754F/Win7_3.jpg" width="644" height="260" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Many of you may have heard about the awesome pricing for Windows 7 that Microsoft is offering to customers for the next 10 days. The offer will be available from online retailers and directly from Microsoft through the Microsoft Store. Most of my family and friends are all over this so I thought I’d put it out there for my CRM family.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Windows 7: Be first. Save half.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Pre-order Windows 7 today at &lt;a href="http://store.microsoft.com/microsoft/Windows-7/category/102?WT.mc_id=blog77_win7promo" target="_blank"&gt;Microsoft Store&lt;/a&gt;. You'll get it for at least half off and be one of the first to get it. Hurry, quantities are limited.*&lt;/p&gt;  &lt;p&gt;&lt;b&gt;It's pretty simple&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Windows 7 is coming on October 22, 2009. Here's an easy way to get it fast and save a bundle: Pre-order a Windows 7 Home Premium Upgrade for $49 or a Windows 7 Professional Upgrade for $99 at &lt;a href="http://store.microsoft.com/microsoft/Windows-7/category/102?WT.mc_id=blog77_win7promo" target="_blank"&gt;Microsoft Store&lt;/a&gt;.&amp;#160;&amp;#160; That's about half off the estimated retail prices. &lt;/p&gt;  &lt;p&gt;Want more info?&amp;#160; &lt;/p&gt;  &lt;p&gt;Go to the &lt;a href="http://www.windowsteamblog.com/" target="_blank"&gt;Windows team blog&lt;/a&gt; and find out all the details.&amp;#160; &lt;/p&gt;  &lt;p&gt;* The offer begins on June 26, 2009 and will continue while supplies last, or until July 11, 2009, whichever comes first.&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/crm/pages/bio-jim-jaag-glass.aspx" target="_blank"&gt;JaAG&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9805587" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/crm/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://blogs.msdn.com/crm/archive/tags/Because+You+Asked/default.aspx">Because You Asked</category><category domain="http://blogs.msdn.com/crm/archive/tags/Win7/default.aspx">Win7</category></item><item><title>Microsoft Dynamics CRM is in the “Leaders” quadrant in Gartner’s 2009 Magic Quadrant for CRM Customer Service Contact Centers</title><link>http://blogs.msdn.com/crm/archive/2009/06/25/microsoft-dynamics-crm-is-in-the-leaders-quadrant-in-gartner-s-2009-magic-quadrant-for-crm-customer-service-contact-centers.aspx</link><pubDate>Thu, 25 Jun 2009 15:27:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9803748</guid><dc:creator>crmblog</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/crm/comments/9803748.aspx</comments><wfw:commentRss>http://blogs.msdn.com/crm/commentrss.aspx?PostID=9803748</wfw:commentRss><wfw:comment>http://blogs.msdn.com/crm/rsscomments.aspx?PostID=9803748</wfw:comment><description>&lt;p&gt;Customers seeking information before investing in technology often turn to Gartner, Inc., because of its detailed and methodical reviews. Among the most respected reports are its Magic Quadrants, which help buyers assess vendor strengths and weaknesses that can be used to meet the purchaser’s current and future business and technology requirements. Microsoft Dynamics CRM is pleased to note that in the 2009&lt;b&gt;&lt;i&gt; Magic Quadrant For CRM Customer Service Contact Centers&lt;/i&gt;,&lt;/b&gt; published April 3, 2009 and written by Gartner Research Vice President and Distinguished Analyst Michael Maoz, Gartner positions Microsoft Dynamics CRM in the &lt;b&gt;“Leaders”&lt;/b&gt; quadrant. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Microsoft is positioned in the Leaders Quadrant in the latest Gartner Magic Quadrant Report        &lt;br /&gt;on CRM for customer service, April 03, 2009&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/crm/WindowsLiveWriter/MicrosoftDynamicsCRMisintheLeadersquadra_6962/clip_image002_2.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/crm/WindowsLiveWriter/MicrosoftDynamicsCRMisintheLeadersquadra_6962/clip_image002_thumb.gif" width="403" height="408" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;This Magic Quadrant graphic was published by Gartner, Inc. as part of a larger research &lt;/i&gt;&lt;i&gt;note and should be evaluated in the context of the entire report. The Gartner report is available from Microsoft at&lt;/i&gt; &lt;a href="http://www.microsoft.com/presspass/press/2009/apr09/04-29CRMMQPR.mspx"&gt;http://www.microsoft.com/presspass/press/2009/apr09/04-29CRMMQPR.mspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Gartner uses 15 weighted criteria to determine whether a vendor is a niche player, a visionary, a challenger or a leader. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;The Collective Excellence of Dynamics CRM with other Microsoft Products and Technologies &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Delivering the Microsoft integrated customer service contact center vision to Gartner for this report was a collaborative undertaking among not only the many members of the Microsoft Dynamics CRM team but also among many customers who served as detailed references. &lt;/p&gt;  &lt;p&gt;Customer Care Framework, which makes it easy for contact center organizations to aggregate disparate applications into a single user interface, is a good example of the kind of value-add that the world of Microsoft brings to Microsoft Dynamics CRM in the contact center. (Learn more at &lt;a href="http://www.microsoft.com/ccf"&gt;http://www.microsoft.com/ccf&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;More Details and Read the Full Report&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Besides Gartner, Forrester ranks Microsoft Dynamics CRM as a leader in both the &lt;i&gt;Q3 2008 Forrester Wave for Enterprise CRM Suites&lt;/i&gt; and the &lt;i&gt;Q3 Forrester Wave for Mid-Market CRM&lt;/i&gt; reports, citing functionality, ease of use and time to value. Microsoft Dynamics CRM consistently receives accolades from analysts and press alike. The CRM team considers this to serve as a strong affirmation of the product’s ability to deliver.&lt;/p&gt;  &lt;p&gt;The Magic Quadrant is copyrighted 2009 by Gartner, Inc. and is reused with permission. The Magic Quadrant is a graphical representation of a marketplace at and for a specific time period. It depicts Gartner’s analysis of how certain vendors measure against criteria for that marketplace, as defined by Gartner. Gartner does not endorse any vendor, product or service depicted in the Magic Quadrant, and does not advise technology users to select only those vendors placed in the “Leaders” quadrant. The Magic Quadrant is intended solely as a research tool, and is not meant to be a specific guide to action. Gartner disclaims all warranties, express or implied, with respect to this research, including any warranties of merchantability or fitness for a particular purpose.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/crm/pages/bio-karen-smith.aspx" target="_blank"&gt;Karen Smith&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9803748" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/crm/archive/tags/CRM4/default.aspx">CRM4</category><category domain="http://blogs.msdn.com/crm/archive/tags/Research/default.aspx">Research</category><category domain="http://blogs.msdn.com/crm/archive/tags/Gartner/default.aspx">Gartner</category></item><item><title>Microsoft Dynamics CRM 4.0 IWorkflowContext Interface</title><link>http://blogs.msdn.com/crm/archive/2009/06/24/microsoft-dynamics-crm-4-0-iworkflowcontext-interface.aspx</link><pubDate>Wed, 24 Jun 2009 14:38:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9801585</guid><dc:creator>crmblog</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/crm/comments/9801585.aspx</comments><wfw:commentRss>http://blogs.msdn.com/crm/commentrss.aspx?PostID=9801585</wfw:commentRss><wfw:comment>http://blogs.msdn.com/crm/rsscomments.aspx?PostID=9801585</wfw:comment><description>&lt;p&gt;Recently there have been some questions raised on how to use the IWorkflowContext and what data and objects it provides that can be used in your custom workflow activity logic. In this post we will cover the different members available in the IWorkflowContext interface. &lt;/p&gt;  &lt;p&gt;The IWorkflowContext interface is the interface that is used to provide a way to obtain business data that is needed to correctly implement your business logic in a custom workflow activity. &lt;/p&gt;  &lt;p&gt;In order to start we first need to understand how the IWorkflowContext is initialized. &lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;Where does the IWorkflowContext come from?&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The IWorkflowContext is initialized for a particular asyncoperation of type workflow (operationtype 10) when the asyncoperation of type workflow is processed and executed by the Asynchronous Service. However that is only where the context object is created. The data that is contained in the context object was collected prior to this action. &lt;/p&gt;  &lt;p&gt;The Workflow Expansion Task plugin executes asynchronously for a particular message in CRM. For example if you have published a workflow to execute on Create of account, the Workflow Expansion Task plugin will be registered as a step on the Create message for the account entity when the workflow is published. The step will execute asynchronously. The Workflow Expansion Task plugin will retrieve all workflow rules that are published and that are configured to execute when the current message executes. So if you have more than one workflow that is published and should execute on the create message, the primary entity for the workflow is account, and you have access to the workflow based on the scope setting, those workflows will be retrieved. &lt;/p&gt;  &lt;p&gt;The Workflow Expansion Task plugin will loop over each of the workflows retrieved and create an asyncoperation with an operationtype of 10 (Workflow). When the asyncoperation is created certain attributes are populated so that when the asyncoperation is processed by the Asynchronous Service it knows how to process the record. One of the attributes that is populated is the data attribute. In the SDK documentation the data attribute is a string property. The data property contains one of two types of serialized objects &lt;/p&gt;  &lt;p&gt;AsyncOperationData &lt;/p&gt;  &lt;p&gt;WorkflowData &lt;/p&gt;  &lt;p&gt;Since we are working with an asyncoperation record of type workflow, the object is a WorkflowData object. When the asyncoperation is processed and executed by the Asynchronous Service, this WorkflowData object will be the basis of the IWorkflowContext object that we will have access to in our custom workflow activity. &lt;/p&gt;  &lt;p&gt;Now that we know where the IWorkflowContext comes from, let’s look at how we can get access to the interface &lt;/p&gt;  &lt;h4&gt;How to get the IWorkflowContext object&lt;/h4&gt;  &lt;p&gt;The IWorkflowContext object can be obtained through the IContextService interface. Great, another interface! How do you get the IContextService interface??? Simple, we can obtain the IContextService interface through the GetService method on the ActivityExecutionContext which is provided as a parameter in our overridden Execute method for our custom workflow activity. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;{&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;IContextService contextService = (IContextService)executionContext.GetService(typeof(IContextService )); &lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;… &lt;/font&gt;&lt;/i&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now that we have our IContextService interface, we can now access the Context property which is of type IWorkflowContext. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;{&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;IContextService contextService = (IContextService)executionContext.GetService(typeof(IContextService )); &lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;IWorkflowContext context = contextService.Context; &lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;… &lt;/font&gt;&lt;/i&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now that we know how to get the IWorkflowContext we can now look at what data it can provide &lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;Great, we have the IWorkflowContext! Now what can we do with it?&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;In order to see what we have access to through the IWorkflowContext we can view the definition of it in Visual Studio by right-clicking IWorkflowContext, then clicking “Go To Definition”. When we do this we see the following &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;public interface IWorkflowContext&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;{&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;Guid ActivationId { get; }&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;Guid AsyncOperationId { get; }&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;Collection&amp;lt;EntityDependencyBase&amp;gt; EntityDependencies { get; }&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;PropertyBag InputParameters { get; }&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;string MessageName { get; }&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;Guid OrganizationId { get; }&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;PropertyBag OutputParameters { get; }&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;Guid PluginTypeId { get; }&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;Guid PrimaryEntityId { get; }&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;DynamicEntity PrimaryEntityImage { get; }&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;string PrimaryEntityName { get; }&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;DynamicEntity PrimaryEntityPostImage { get; }&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;DynamicEntity PrimaryEntityPreImage { get; }&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;PropertyBag SharedVariables { get; }&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;string StageName { get; }&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;Guid UserId { get; } &lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;ICrmService CreateCrmService();&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;ICrmService CreateCrmService(bool asAdminUser);&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;IMetadataService CreateMetadataService();&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;IMetadataService CreateMetadataService(bool asAdminUser);&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;bool EvaluateCondition(ConditionOperator op, object primaryValue, params object[] values);&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;object EvaluateExpression(ExpressionOperator op, params object[] values);&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;void PopulateEntitiesFrom(CrmWorkflow workflow, string parameterName);&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;int RetrieveActivityCount(bool includeActivitiesCreatedByWorkflow);&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;font face="Courier New"&gt;} &lt;/font&gt;&lt;/i&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h5&gt;Let’s go over each member in this interface &lt;/h5&gt;  &lt;h6&gt;Properties&lt;/h6&gt;  &lt;p&gt;&lt;b&gt;ActivationId&lt;/b&gt;: This is the workflowid for the workflowbase record that is the activation record for the workflow. In other words, this describes which workflow this is an instance of. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;AsyncOperationId&lt;/b&gt;: This is the ID of the asyncoperationbase record. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;EntityDependencies&lt;/b&gt;: This is a generic collection of EntityDependencyBase objects. An EntityDependencyBase object can be of one of the following types &lt;/p&gt;  &lt;p&gt;&lt;b&gt;PrimaryEntityDependency&lt;/b&gt;: Specifies the objectTypeCode (Int32), comma delimited attributes to retrieve for the primary entity (String), and the type of parameter it is (Type) &lt;/p&gt;  &lt;p&gt;&lt;b&gt;RelatedEntityDependency&lt;/b&gt;: Specifies the objectTypeCode (Int32), comma delimited attributes to retrieve for a related entity (String), and the type of parameter it is (Type) &lt;/p&gt;  &lt;p&gt;You are going to have 1 PrimaryEntityDependency, and X RelatedEntityDependencies. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;InputParameters&lt;/b&gt;: InputParameters is a property bag which contains the objects from the request that triggered the workflow. For example, if the workflow executed due to a create message for account, the InputParameters property bag would contain the target account as a DynamicEntity. You access the objects in the property bag just as you would when using a plugin. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;MessageName&lt;/b&gt;: The name of the message which triggered the workflow to execute. Create, Delete, Update, or SetState. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;OrganizationId&lt;/b&gt;: The ID of the organization to which this asyncoperation belongs &lt;/p&gt;  &lt;p&gt;&lt;b&gt;OutputParameters&lt;/b&gt;: OutputParameters is exactly the same as InputParameters. It contains the output of the request. For create, it would contain the GUID of the business entity created. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;PluginTypeId&lt;/b&gt;: The ID of the plugin type. This is the ID for the compiled Windows Workflow that this asyncoperation is an instance of. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;PrimaryEntityImage&lt;/b&gt;: A DynamicEntity object that represents the primary business entity for which the workflow is regarding. If you want to get attributes included in the create or update request, you don’t want to use this. Instead get the Target property out of the InputParameters property bag &lt;/p&gt;  &lt;p&gt;&lt;b&gt;PrimaryEntityName&lt;/b&gt;: The schema name for the entity that this workflow is regarding. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;PrimaryEntityPostImage&lt;/b&gt;: DynamicEntity which contains the primary entity’s ID attribute along with the values for the attributes defined in the PrimaryEntityDependency after the operation which triggered the workflow to execute. This is not specific to a singular workflow, but contains all the needed attributes for all workflows registered to execute on the same message for the same entity type. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;PrimaryEntityPreImage&lt;/b&gt;: DynamicEntity which contains the primary entity’s ID attribute along with the values for the attributes defined in the PrimaryEntityDependency after the operation which triggered the workflow to execute. This is not specific to a singular workflow, but contains all the needed attributes for all workflows registered to execute on the same message for the same entity type. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;SharedVariables&lt;/b&gt;: Another property bag in which you can store data to be persisted to the database for use through-out the execution of the workflow. Also SharedVariables will contain any objects that have been stored in the SharedVariables property bag from the plugin execution context during the entire life of the pipeline for the message which triggered the workflow to execute. So you could store an object in the SharedVariables property bag pre create of an account, and that object would be available in any workflows that were created on create of the account. &lt;/p&gt;  &lt;p&gt;&lt;i&gt;Note&lt;/i&gt;: The IWorkflowContext’s SharedVariables property gets populated from the SharedVariables property on the IPluginExecutionContext for the “Workflow Expansion Task” asynchronous plugin. The “Workflow Expansion Task” executes in the Child pipeline. So if you want values from before the main operation (BeforeMainOperationOutsideTransaction) you need to register your Pre plugin step in the Child pipeline as well. Further, any SharedVariables you populate after the main operation (AfterMainOperationOutsideTransaction) will not be included even if you register your Post plugin step in the Child pipeline since the “Workflow Expansion Task” executes in the pipeline stage that is not available to third parties (AfterMainOperationInsideTransaction).&lt;/p&gt;  &lt;p&gt;&lt;b&gt;StageName&lt;/b&gt;: The name of the stage that workflow is currently in. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;UserId&lt;/b&gt;: If the workflow was executed on demand, this will be the ID of the user who executed the workflow. If the workflow was executed due to a message executing, then it will be the ID of the workflow owner. &lt;/p&gt;  &lt;h6&gt;Methods&lt;/h6&gt;  &lt;p&gt;&lt;b&gt;CreateCrmService&lt;/b&gt;: &lt;/p&gt;  &lt;p&gt;&lt;b&gt;CreateCrmService&lt;/b&gt;(bool asAdminUser): &lt;/p&gt;  &lt;p&gt;Both of these methods return an ICrmService interface. This is optimal way to interact with CRM to execute the various requests in the CRM web service. The overload allows you to execute with more privileges if needed; just in case the current user doesn’t have the required privileges to perform some action in your custom business logic. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;CreateMetadataService&lt;/b&gt;(): &lt;/p&gt;  &lt;p&gt;&lt;b&gt;CreateMetadataService&lt;/b&gt;(bool asAdminUser): &lt;/p&gt;  &lt;p&gt;Both of these methods return an IMetadataService interface. This is optimal way to interact with CRM to execute the various requests in the MetadataService web service. The overload allows you to execute with more privileges if needed; just in case the current user doesn’t have the required privileges to perform some action in your custom business logic. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;RetrieveActivityCount: &lt;/b&gt;Retrieves the number of CRM activity records created so far by this workflow&lt;/p&gt;  &lt;h6&gt;The following methods are for internal use only and are not intended for third party use&lt;/h6&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;EvaluateCondition&lt;/b&gt;&lt;i&gt;(ConditionOperator op, object primaryValue, params object[] values)&lt;/i&gt;&lt;b&gt;:&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;EvaluateExpression&lt;/b&gt;&lt;i&gt;(ExpressionOperator op, params object[] values)&lt;/i&gt;&lt;b&gt;: &lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;PopulateEntitiesFrom&lt;/b&gt;&lt;i&gt;(CrmWorkflow workflow, string parameterName)&lt;/i&gt;&lt;b&gt;:&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/crm/pages/bio-clint-warriner.aspx" target="_blank"&gt;Clint Warriner&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9801585" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/crm/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/crm/archive/tags/Documentation/default.aspx">Documentation</category><category domain="http://blogs.msdn.com/crm/archive/tags/SDK/default.aspx">SDK</category></item><item><title>How to toggle Smart Matching in Microsoft Dynamics CRM 4.0</title><link>http://blogs.msdn.com/crm/archive/2009/06/23/how-to-toggle-smart-matching-in-microsoft-dynamics-crm-4-0.aspx</link><pubDate>Tue, 23 Jun 2009 14:58:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9799557</guid><dc:creator>crmblog</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/crm/comments/9799557.aspx</comments><wfw:commentRss>http://blogs.msdn.com/crm/commentrss.aspx?PostID=9799557</wfw:commentRss><wfw:comment>http://blogs.msdn.com/crm/rsscomments.aspx?PostID=9799557</wfw:comment><description>&lt;p&gt;Smart matching is the default and the only email correlation strategy shipped with CRM 4. Smart matching uses the subject of the current email along with the email recipients of the current email and generates subject hash and address recipient hash and uses these hashes to compare against old emails to find a match for the subject hash and at least HashMinAddressCount number of address recipients to correlate with an old email. HashMinAddressCount is reg key based and has a default value of 2. Smart Matching is not always the solution that customers are looking for. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/crm/archive/2008/11/11/microsoft-dynamics-crm-email-correlation-and-smart-matching.aspx" target="_blank"&gt;Read more about Smart Matching&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;How Smart matching works&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;In cases we have emails that have same subject and atleast 2 (HashMinAddressCount) recipients that match, we treat this as a correlation and set the same regarding object for the new email to the old email which may not be right. &lt;/p&gt;  &lt;p&gt;An example can be a Service based CRM setup might have Service Details in the subject and this email is sent to customer service representative and the case is related to customer Bob and there could be a second email that is addressed to the same CSRs with the same subject line but belongs to Customer John Doe. In this case Smart matching wrongly ties these 2 emails together. &lt;/p&gt;  &lt;p&gt;Another scenario could be a case where HR sends a New Hire subject line email to a Manager and each email could be related to a different new Hire but Smart Matching will go wrong in this case. &lt;/p&gt;  &lt;p&gt;In all these cases, users will have to use caution and always generate unique email subjects to avoid these wrong correlation problems which cannot be that feasible and hence the reason for choosing Tracking Token strategy used in V3 where the token is automatically generated and appended to the subject and emails are now correlated based on the tracking token only. &lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;How to use the tracking token-based solution&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;1. There is a trackingtoken column that is indexed in EmailBase table that is used for correlating new emails with old emails when using the Tracking Token strategy instead of the Smart Matching strategy. This column is not filled for all emails in CRM v4 as we use Smart matching. &lt;/p&gt;  &lt;p&gt;To get this tracking token column populated for the past emails in the database, please use the tool that comes with hotfix KB# 969946 that uses SQL CLR to use the power of regular expressions which are lacking in SQL Server but are available and are used by the CRM Server code to extract the tracking token out of the subject of the past emails in an efficient manner. &lt;/p&gt;  &lt;p&gt;For this tool to work correctly in case CRM Server and SQL Server box are different, please make sure to set up same directory structure where the tool got dropped on the CRM Server in the SQL Server box as well. The reason being , the DB Scripts in the Tool install the assembly EmailTrackingTokenExtractor in the SQL Server and creates a user defined function in SQL Server that links to the external assembly function and hence SQL Server looks for this assembly on the SQL Server box. &lt;/p&gt;  &lt;p&gt;if CRM is 32bit, and SQL is 64bit you will need both the 32bit Hotfix as well as the 64bit Hotfix. The 32bit dll and the exe must be placed on the CRM server, and the 64bit dll must be placed in the same path but on the SQL server. We found that when SQL is 64bit and you attempt to execute a SQL CLR type from a 32bit assembly you will get an error. &lt;/p&gt;  &lt;p&gt;This tool uses the same regular expressions that the CRM server code uses to extract the tokens and so it honors all the different tracking token prefixes and other tracking token settings set in the past. &lt;/p&gt;  &lt;p&gt;Once you have the tool extract all the tracking tokens from the subject and populate the tracking token column in the email base you are ready to enable tracking token strategy. &lt;/p&gt;  &lt;p&gt;The tool has to run at a time when there is no activity (to reduce the contention on Email table and also not have a flood of emails in between) and once the tool run is complete, the hot fix can be installed and smart matching can be disabled. There is a chance that you might have some emails in that small delta of time so you can re-run the tool again to cover these emails if needed. &lt;/p&gt;  &lt;p&gt;Without the power of SQL CLR we would have been forced to retrieve all the emails from the database and process them through the regular expressions in C# layer and bulk update these rows back to the database. &lt;/p&gt;  &lt;p&gt;With the power of SQL CLR we can run updates as simple as: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;update email set trackingtoken = dbo.ExtractToken(subject)&lt;/font&gt; &lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;where trackingtoken is null&lt;/font&gt; &lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;and subject is not null&lt;/font&gt; &lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;and subject &amp;lt;&amp;gt; ''&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;where dbo.ExtractToken is a User defined function that refers to the C# function EmailTrackingTokenExtractor.[EmailTrackingTokenExtractor.TrackingTokenExtractor].ExtractToken which is defined in the EmailTrackingTokenExtractor.dll and is now installed in SQL Server. &lt;/p&gt;  &lt;p&gt;This eliminates all the round trips between the mid-tier and SQL Server and all the processing including the regular expression processing is happening on SQL Server itself. &lt;/p&gt;  &lt;p&gt;2. Follow the instructions of Knowledge Base article &lt;a href="http://support.microsoft.com/kb/958084/" target="_blank"&gt;KB 958084&lt;/a&gt; and set the DisableSmartMatching registry key to 1 to turn off smart matching after installing KB 958084 hotfix. &lt;/p&gt;  &lt;p&gt;For this hotfix to work, please make sure that this registry key DisableSmartMatching is set to 1 and the Use Tracking Token option is set in the Settings. This will direct CRM email tracking manager to correlate emails using the tracking token (CRM V3 strategy) instead of the default CRM v4 Smart matching strategy. &lt;/p&gt;  &lt;p&gt;There is no impact to switch back to Smart matching as we still store the address hashes and the subject hashes.&lt;/p&gt;  &lt;p&gt;Cheers, &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/crm/pages/bio-chandra-akkiraju.aspx" target="_blank"&gt;Chandra Akkiraju&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9799557" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/crm/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.msdn.com/crm/archive/tags/Smart+Matching/default.aspx">Smart Matching</category></item></channel></rss>