<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.crowehorwath.com/cs/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>CRM Blog : Technical Tips</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx</link><description>Tags: Technical Tips</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP2 (Build: 20611.960)</generator><item><title>CRM Activity Usage Report</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/10/20/crm-activity-usage-report.aspx</link><pubDate>Mon, 19 Oct 2009 23:22:00 GMT</pubDate><guid isPermaLink="false">733c1265-83be-4492-a5ff-7e2be949a514:27800</guid><dc:creator>Danny Varghese</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.crowehorwath.com/cs/blogs/crm/rsscomments.aspx?PostID=27800</wfw:commentRss><comments>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/10/20/crm-activity-usage-report.aspx#comments</comments><description>&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;My colleague Jeremy Hofmann has been busy at one of our clients providing them valuable solutions to meet their business needs.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Below is another great example of how Jeremy has harnessed the customizability of CRM!&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-WEIGHT:bold;FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Business Problem:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Do your clients need a way to monitor activity usage as a means to track user adoption?&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-WEIGHT:bold;FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Solution:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Below is a CRM report we created that looks at activities created or modified over six periods of time, starting with the current date.&amp;nbsp; It can help spot overall trends for individual users or business units.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-WEIGHT:bold;FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Technical Notes:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;This is just a standard SRS report.&amp;nbsp; While I’m not a huge fan of the courier font on reports it was the client standard at the time so feel free to change it.&amp;nbsp; Also it is currently grouped by branch, which is a custom field.&amp;nbsp; You would likely need to change it to another grouping level such as business unit, depending on your clients needs.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-WEIGHT:bold;FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;User Story or Screenshot:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Launch the report from the CRM reports area.&amp;nbsp; With pre-filtering, you can select specific users to monitor.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Look for the up/down arrows and then drill into specific business units. &amp;nbsp;Schedule follow up calls with the users’ managers to understand why usage has dropped, stayed at zero, or increased.&amp;nbsp; Solicit feedback on the application in order to improve specific functionality or determine unmet needs and re-engage Crowe to fill those needs. &lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;img title="Activity Usage" style="WIDTH:511px;HEIGHT:350px;" height="350" alt="Activity Usage" src="http://www.crowehorwath.com/cs/blogs/crm/dvarghese/activityusage/activityUsage.gif" width="511" /&gt;&lt;/p&gt;&lt;img src="http://www.crowehorwath.com/cs/aggbug.aspx?PostID=27800" width="1" height="1"&gt;</description><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Business+Solutions/default.aspx">Business Solutions</category><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx">Technical Tips</category></item><item><title>CRM Custom Browse Folder</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/10/17/crm-custom-browse-folder.aspx</link><pubDate>Sat, 17 Oct 2009 16:14:00 GMT</pubDate><guid isPermaLink="false">733c1265-83be-4492-a5ff-7e2be949a514:27799</guid><dc:creator>Danny Varghese</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.crowehorwath.com/cs/blogs/crm/rsscomments.aspx?PostID=27799</wfw:commentRss><comments>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/10/17/crm-custom-browse-folder.aspx#comments</comments><description>&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;My colleague Jeremy Hofmann has been busy at one of our clients providing them valuable solutions to meet their business needs.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Below is a great example of how Jeremy has harnessed the customizability of CRM!&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-WEIGHT:bold;FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Business Problem:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;We’ve given the client a way to add a documents I_FRAME on a contact record, however there was no easy way for their users to browse the folders – they have to type in a path manually.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-WEIGHT:bold;FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Solution:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Provide a way for them to browse to a folder.&amp;nbsp; SharePoint is not currently an option.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-WEIGHT:bold;FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Technical Notes:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;While IE provides a file browse dialog, there is simply no way to browse folders by themselves.&amp;nbsp; So you have to write your own ActiveX scripting and html output to provide the functionality.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-WEIGHT:bold;FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;User Story or Screenshot:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Now the user can click a browse button next to the path field on the contact form which will launch the dialog box below.&amp;nbsp; Here they can browse to the folder they want and click ok, which will populate the path field on the contact record and update the documents I_FRAME.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Notice it looks very much like Vista so it fits in nicely with their desktop look and feel.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;img title="Custom Browse" style="WIDTH:445px;HEIGHT:382px;" height="382" alt="Custom Browse" src="http://www.crowehorwath.com/cs/blogs/crm/dvarghese/custombrowse/customBrowse.jpg" width="445" /&gt;&lt;/p&gt;&lt;img src="http://www.crowehorwath.com/cs/aggbug.aspx?PostID=27799" width="1" height="1"&gt;</description><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Business+Solutions/default.aspx">Business Solutions</category><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx">Technical Tips</category></item><item><title>CRM Developer Ramp-Up Kit</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/10/13/crm-developer-ramp-up-kit.aspx</link><pubDate>Tue, 13 Oct 2009 13:16:00 GMT</pubDate><guid isPermaLink="false">733c1265-83be-4492-a5ff-7e2be949a514:27574</guid><dc:creator>Danny Varghese</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.crowehorwath.com/cs/blogs/crm/rsscomments.aspx?PostID=27574</wfw:commentRss><comments>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/10/13/crm-developer-ramp-up-kit.aspx#comments</comments><description>&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Microsoft has a great article containing tools to help a CRM developer ramp up.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The article includes presentations and labs that will help complement a developer&amp;#39;s .NET skills to help build on top of the CRM 4.0 platform.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;The article contains links to the following:&lt;/p&gt;
&lt;ul style="MARGIN-TOP:0in;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.75in;DIRECTION:ltr;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Introduction to concepts for developing with Microsoft CRM 4.0&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;New relationship types&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Web services, authentication methods for each installation, multi-tenancy and CRM online&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Integrating custom pages into the user interface, SiteMap customization, IFRAME&amp;#39;s, and JavaScript&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Developing plug-ins which can help extend product functionality with custom code, triggered either before or after an event&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Explanations of the new workflow features&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Features of the SDK for working offline&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;New reporting features&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Analytics &amp;amp; Business Intelligence&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Explanations on how to write new API for making changes to the metadata&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;E-mail setup and new deployment features&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Performance&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Labs to help developers tune their skills&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.75in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;This link can be found here: &lt;a href="http://msdn.microsoft.com/en-us/library/dd393296.aspx"&gt;http://msdn.microsoft.com/en-us/library/dd393296.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.crowehorwath.com/cs/aggbug.aspx?PostID=27574" width="1" height="1"&gt;</description><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Business+Solutions/default.aspx">Business Solutions</category><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx">Technical Tips</category></item><item><title>CRM &amp; Multi-Tenancy</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/10/08/crm-amp-multi-tenancy.aspx</link><pubDate>Thu, 08 Oct 2009 19:13:00 GMT</pubDate><guid isPermaLink="false">733c1265-83be-4492-a5ff-7e2be949a514:27390</guid><dc:creator>Danny Varghese</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.crowehorwath.com/cs/blogs/crm/rsscomments.aspx?PostID=27390</wfw:commentRss><comments>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/10/08/crm-amp-multi-tenancy.aspx#comments</comments><description>&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;How does Microsoft Dynamics CRM handle multi-tenancy?&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;What is multi-tenancy?&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;These are the questions I often get from clients and other developers just interested in the CRM architecture.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Multi-tenancy allows CRM to be deployed on a single server, but allows multiple organizations to be supported.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;For example, say a company has two business units like Commercial and&amp;nbsp;Retail.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;If there is a need for that company to use CRM differently for each business unit, that&amp;#39;s where multi-tenancy can play a key role.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;We can create a tenant for each unit, and each business unit can have it&amp;#39;s own configurations and customizations.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;So how does the CRM architecture handle multi-tenancy?&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;There are two ways new tenants/organizations can be created.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;One way is using the CRM Deployment manager tool.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:black;"&gt;When setting up CRM for the first time, there is a default organization (tenant) created.&amp;nbsp; The Deployment Manager creates a new URL each time a new organization/tenant is created.&amp;nbsp; For example, we can use this to create Commercial and Retail tenants. The url is usually in the format&lt;/span&gt;&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;a href="http://%3cserver:%20port%3e%20/tenant/page.aspx"&gt;&lt;span style="COLOR:blue;"&gt;http://&amp;lt;server: port&amp;gt; /tenant/page.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="COLOR:black;"&gt;.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The Deployment Manager also &lt;/span&gt;&lt;span style="COLOR:#333333;"&gt;creates a new database named “&amp;lt;tenant&amp;gt;_MSCRM” on the specified SQL Server, and creates all CRM tables, filtered views, etc.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;It then updates the MSCRM_CONFIG database (base CRM database) with the information for the newly created tenant/organization.&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;COLOR:#333333;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;COLOR:#333333;FONT-FAMILY:Calibri;"&gt;For example, when setting up CRM for the first time, say a user sets up a default organization to be CroweHorwath on the local host, then the url would be: &lt;a href="http://localhost:5555/CroweHorwath"&gt;http://localhost:5555/CroweHorwath&lt;/a&gt; OR since this is the default organization, one can type &lt;a href="http://localhost/"&gt;http://localhost&lt;/a&gt; and it will default to the CroweHorwath tenant.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Then a user can use the Deployment Manager tool to create a new tenant for the Commercial business unit.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;When the user is finished, the new url will be &lt;a href="http://localhost:5555/Commercial"&gt;http://localhost:5555/Commercial&lt;/a&gt;, and a new database Commercial_MSCRM will be created to hold all configurations/data for the Commercial tenant.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;COLOR:black;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;One more thing, virtual directories are not created for every organization. CRM implements a virtual path provider that parses the URL to figure out which organization you are accessing and to perform the correct authentication.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;CRM uses a web service and the user’s windows credentials to go against active directory and the appropriate organization to authenticate.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;The second way tenants can be creates is programmatically using the CRMDeploymentService.asmx (&lt;a href="http://%3cserver%3e/MSCRMServices/2007/CrmDeploymentService.asmx"&gt;http://&amp;lt;server&amp;gt;/MSCRMServices/2007/CrmDeploymentService.asmx&lt;/a&gt;).&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;One would have to use code to create a new CRM organization object, set the following fields: name, SQL server name, SQL server url, CRM currency information.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Next create a new instance of the CRM Deployment web service and use that to create a new Create response and request objects.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;The above is a brief explanation of how multi-tenancy works in Microsoft Dynamics CRM.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;I hope this will clarify many of the questions out there!&lt;/p&gt;&lt;img src="http://www.crowehorwath.com/cs/aggbug.aspx?PostID=27390" width="1" height="1"&gt;</description><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx">Technical Tips</category></item><item><title>The Other Blue Screen of Death: the Blank Report Pre-Filter</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/04/16/the-other-blue-screen-of-death-the-blank-report-pre-filter.aspx</link><pubDate>Thu, 16 Apr 2009 17:06:00 GMT</pubDate><guid isPermaLink="false">733c1265-83be-4492-a5ff-7e2be949a514:18172</guid><dc:creator>Shelley Lane</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.crowehorwath.com/cs/blogs/crm/rsscomments.aspx?PostID=18172</wfw:commentRss><comments>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/04/16/the-other-blue-screen-of-death-the-blank-report-pre-filter.aspx#comments</comments><description>&lt;p&gt;Upon opening a report with a pre-filter, you expect to be presented with a query builder that will allow you to search for accounts, contacts or other CRM entity&amp;nbsp;by location, owner, or any other field on the respective entity. Something that looks like this:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.crowehorwath.com/cs/blogs/crm/slane/bsod/non_bsod.jpg"&gt;&lt;/a&gt;&lt;a href="http://www.crowehorwath.com/cs/blogs/crm/slane/bsod/bsod.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.crowehorwath.com/cs/blogs/crm/slane/bsod/non_bsod.jpg"&gt;&lt;img src="http://www.crowehorwath.com/cs/blogs/crm/slane/bsod/non_bsod.jpg" border="0" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;What do you do then, when instead you see this (and only this. Nothing&amp;#39;s loading. It&amp;#39;s &amp;quot;Done.&amp;quot;):&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.crowehorwath.com/cs/blogs/crm/slane/bsod/bsod.jpg"&gt;&lt;img src="http://www.crowehorwath.com/cs/blogs/crm/slane/bsod/bsod.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The pre-filter is blank and there doesn&amp;#39;t seem to be an error anywhere. Attempting to &amp;quot;Edit the&amp;nbsp;default filter...&amp;quot; results in the same empty, blue screen. In this case, the filter was loading correctly in the past, but now something is clearly wrong.&lt;/p&gt;
&lt;p&gt;Let&amp;#39;s go back to what the pre-filted &lt;em&gt;&lt;strong&gt;should&lt;/strong&gt;&lt;/em&gt; look like. It &lt;em&gt;&lt;strong&gt;should&lt;/strong&gt;&lt;/em&gt; allow users to filter Accounts&amp;nbsp;by specific Account, Address 1, Category, or a custom attribute called Rating.&amp;nbsp;After minutes of trying to connect the mental dots,&amp;nbsp;I realized that I&amp;nbsp;intentionally deleted one of the Rating attribute because it was no longer needed. Ah ha!&lt;/p&gt;
&lt;p&gt;Turns out that, although CRM will not allow you to delete attributes that are on a published form, you are able to delete an attribute that is used on a report pre-filter. However, the fact that the attribute has been deleted keeps the pre-filter from being rendered.&lt;/p&gt;
&lt;p&gt;To fix this, there are a couple of options. &lt;/p&gt;
&lt;p&gt;If you know the name of the attribute the filter can&amp;#39;t find, you can simply create a dummy attribute with that name, publish the entity with your attribute, edit the report&amp;#39;s default filter and remove the dummy attribute from the report pre-filtered. Delete the dummy attribute from the entity and all it well again.&lt;/p&gt;
&lt;p&gt;If you don&amp;#39;t know the name of the attribute or would just like an excuse to dig around in the database, you can also edit the report filter&amp;#39;s XML.&lt;/p&gt;
&lt;p&gt;In your organization&amp;#39;s CRM database, there is a table called ReportBase. Opening that table, you&amp;#39;ll find all of the versions of the reports that are available or were available. To figure out which report you&amp;#39;re working with, grab the GUID from the URL of the report pre-filter and query the ReportBase table for the record with that ReportId. That record will have a DefaultFilter field, which contains the pre-filter&amp;#39;s XML. Once formatted correctly, it should look something like this:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.crowehorwath.com/cs/blogs/crm/slane/bsod/xml.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.crowehorwath.com/cs/blogs/crm/slane/bsod/xml.png"&gt;&lt;img src="http://www.crowehorwath.com/cs/blogs/crm/slane/bsod/xml.png" border="0" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To get the my report pre-filter to render, I can remove the element specifying the deleted attribute as a condition, in this case the line containing &amp;quot;new_rating.&amp;quot; Once I&amp;#39;ve done that I can simply copy the XML back into the DefaultFilter field for that report and the pre-filter will render.&lt;/p&gt;
&lt;p&gt;Although this fix is a little in-depth and should only be attempted by those very comfortable with the CRM database, it is a workaround if you&amp;#39;re in a bind and do not want to have to re-create a report.&lt;/p&gt;&lt;img src="http://www.crowehorwath.com/cs/aggbug.aspx?PostID=18172" width="1" height="1"&gt;</description><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx">Technical Tips</category></item><item><title>Example Of Deactivating An Entity</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/03/06/example-of-deactivating-an-entity.aspx</link><pubDate>Fri, 06 Mar 2009 23:12:00 GMT</pubDate><guid isPermaLink="false">733c1265-83be-4492-a5ff-7e2be949a514:14081</guid><dc:creator>Danny Varghese</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.crowehorwath.com/cs/blogs/crm/rsscomments.aspx?PostID=14081</wfw:commentRss><comments>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/03/06/example-of-deactivating-an-entity.aspx#comments</comments><description>&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;One of the least published example of CRM code is deactivating an entity, probably because it&amp;#39;s not used as often as creating, updating or retrieving entities.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Below is an example I&amp;#39;ve used on several occasions to deactivate an entity:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;public void DeactivateEntity(Guid entityId)&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;{&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;COLOR:green;FONT-FAMILY:Calibri;"&gt;//variable initialization&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SetStateDynamicEntityRequest deactivateReq = new SetStateDynamicEntityRequest();&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:green;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;//deactivate the cloned assignment&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;deactivateReq = new SetStateDynamicEntityRequest();&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;deactivateReq.State = &amp;quot;Inactive&amp;quot;;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;deactivateReq.Status = 2;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;deactivateReq.Entity = new Moniker();&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;deactivateReq.Entity.Name = &amp;lt;entity name&amp;gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;deactivateReq.Entity.Id = entityId;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;COLOR:green;FONT-FAMILY:Calibri;"&gt;//execute the deactivation request&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;service.Execute(deactivateReq);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;}&lt;/p&gt;&lt;img src="http://www.crowehorwath.com/cs/aggbug.aspx?PostID=14081" width="1" height="1"&gt;</description><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx">Technical Tips</category></item><item><title>Example of Dynamic Entity Update</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/03/05/example-of-dynamic-entity-update.aspx</link><pubDate>Thu, 05 Mar 2009 23:11:00 GMT</pubDate><guid isPermaLink="false">733c1265-83be-4492-a5ff-7e2be949a514:14080</guid><dc:creator>Danny Varghese</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.crowehorwath.com/cs/blogs/crm/rsscomments.aspx?PostID=14080</wfw:commentRss><comments>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/03/05/example-of-dynamic-entity-update.aspx#comments</comments><description>&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;I have seen numerous requests on other blogs about sample code to on how to update entities in CRM.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;One way is to use the CRM web service to update business entities, however by doing so, you&amp;#39;re only limited to out-of-the-box entities with system attributes.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;To retrieve anything more &amp;quot;dynamic,&amp;quot; you&amp;#39;ll have to employ other methods.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Please remember that in order to update any record, you must have the proper permissions on that entity.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Below is a code example of how to update a record:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;public void UpdateEntity(ICrmService service)&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;{&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;COLOR:green;FONT-FAMILY:Calibri;"&gt;//variable initialization&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;DynamicEntity entity = new DynamicEntity();&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:green;"&gt;//target entity to update&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;TargetUpdateDynamic targetUpdate = new TargetUpdateDynamic();&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:green;"&gt;//used to update entity&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;UpdateRequest updateRequest = new UpdateRequest();&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:green;"&gt;//request to update entity&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;entity.Name = &amp;lt;entity name&amp;gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;COLOR:green;FONT-FAMILY:Calibri;"&gt;//add the properties you want to update on the entity&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;entity.Properties.Add(&amp;lt;property1&amp;gt;);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;entity.Properties.Add(&amp;lt;property2&amp;gt;);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;entity.Properties.Add(&amp;lt;property3&amp;gt;);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;COLOR:green;FONT-FAMILY:Calibri;"&gt;//set the target to update, and the request to update for&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;targetUpdate.Entity = entity;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;updateRequest.Target = targetUpdate;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;COLOR:green;FONT-FAMILY:Calibri;"&gt;//execute the update request&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;service.Execute(updateRequest);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;}&lt;/p&gt;&lt;img src="http://www.crowehorwath.com/cs/aggbug.aspx?PostID=14080" width="1" height="1"&gt;</description><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx">Technical Tips</category></item><item><title>E-mail Field - Open In Outlook or E-mail Activity</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/03/04/e-mail-field-open-in-outlook-or-e-mail-activity.aspx</link><pubDate>Wed, 04 Mar 2009 23:09:00 GMT</pubDate><guid isPermaLink="false">733c1265-83be-4492-a5ff-7e2be949a514:14078</guid><dc:creator>Danny Varghese</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.crowehorwath.com/cs/blogs/crm/rsscomments.aspx?PostID=14078</wfw:commentRss><comments>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/03/04/e-mail-field-open-in-outlook-or-e-mail-activity.aspx#comments</comments><description>&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Here&amp;#39;s a simple JavaScript customization to enable an e-mail field, once filled in, have a user double-click it and open your default e-mail client with the address in the &amp;quot;To&amp;quot; field.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;if(crmForm.FormType == 1 || crmForm.FormType == 2)&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;{&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; crmForm.all.emailaddress1.ondblclick = function() &lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var email = crmForm.all.emailaddress1.DataValue;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((email != null) &amp;amp;&amp;amp; (email.length &amp;gt; 0)) &lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;window.navigate(&amp;quot;mailto:&amp;quot; + email);&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;}&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Now if you want to make CRM open an e-mail activity instead of the default e-mail client, you can use the following code (when sending the email, CRM will use email address 1 regardless of what field was dobule clicked):&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;if(crmForm.FormType == 1 || crmForm.FormType == 2)&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;{&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; crmForm.all.emailaddress1.ondblclick = function() &lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var email = crmForm.all.emailaddress1.DataValue;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((email != null) &amp;amp;&amp;amp; (email.length &amp;gt; 0)) &lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;window.execScript(locAddActTo(4202))&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;}&lt;/p&gt;&lt;img src="http://www.crowehorwath.com/cs/aggbug.aspx?PostID=14078" width="1" height="1"&gt;</description><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx">Technical Tips</category></item><item><title>Example of Dynamic Entity Create</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/03/04/example-of-dynamic-entity-create.aspx</link><pubDate>Wed, 04 Mar 2009 23:08:00 GMT</pubDate><guid isPermaLink="false">733c1265-83be-4492-a5ff-7e2be949a514:14077</guid><dc:creator>Danny Varghese</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.crowehorwath.com/cs/blogs/crm/rsscomments.aspx?PostID=14077</wfw:commentRss><comments>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/03/04/example-of-dynamic-entity-create.aspx#comments</comments><description>&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;There have been numerous requests on other blogs about sample code to on how to create entities in CRM.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;One way is to use the CRM web service to create business entities, however by doing so, you&amp;#39;re only limited to out-of-the-box entities with system attributes.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;To retrieve anything more &amp;quot;dynamic,&amp;quot; you&amp;#39;ll have to employ other methods.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Please remember that in order to create any record, you must have the proper permissions on that entity.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Below is a code example of how to create a record using dynamic entities:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;public void CreateEntity(ICrmService service)&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;{&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;COLOR:green;FONT-FAMILY:Calibri;"&gt;//variable initialization&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;DynamicEntity entity = new DynamicEntity();&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:green;"&gt;//target entity to update&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;TargetCreateDynamic targetCreate = new TargetCreateDynamic();&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:green;"&gt;//used to update entity&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;CreateRequest createRequest = new CreateRequest();&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:green;"&gt;//request to create entity&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;entity.Name = &amp;lt;entity name&amp;gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;&lt;span style="COLOR:green;"&gt;//add the properties&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;entity.Properties.Add(&amp;lt;property&amp;gt;);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;Entity.Properties.Add(&amp;lt;property&amp;gt;);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;COLOR:green;FONT-FAMILY:Calibri;"&gt;//set the target to update, and the request to update for&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;targetCreate.Entity = entity;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;createRequest.Target = targetCreate;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;COLOR:green;FONT-FAMILY:Calibri;"&gt;//execute the update request&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;service.Execute(createRequest);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;}&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Hope this helps, happy coding!&lt;/p&gt;&lt;img src="http://www.crowehorwath.com/cs/aggbug.aspx?PostID=14077" width="1" height="1"&gt;</description><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx">Technical Tips</category></item><item><title>Debugging CRM Plug-ins, Stored Procedures &amp; Custom Workflow Activities</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/02/24/debugging-crm-plug-ins-stored-procedures-amp-custom-workflow-activities.aspx</link><pubDate>Wed, 25 Feb 2009 02:30:00 GMT</pubDate><guid isPermaLink="false">733c1265-83be-4492-a5ff-7e2be949a514:11128</guid><dc:creator>Danny Varghese</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.crowehorwath.com/cs/blogs/crm/rsscomments.aspx?PostID=11128</wfw:commentRss><comments>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/02/24/debugging-crm-plug-ins-stored-procedures-amp-custom-workflow-activities.aspx#comments</comments><description>&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Whether it&amp;#39;s developing CRM plug-ins, custom workflow activities, or writing stored procedures against the CRM database, the most useful tool I&amp;#39;ve used is the Microsoft Visual Studio Debugger.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The debugger allows developers to step through the code for the above mentioned scenarios and has saved me hours!&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Microsoft has phenomenal documentation on how to setup remote debugging:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bt727f1t.aspx"&gt;http://msdn.microsoft.com/en-us/library/bt727f1t.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;The biggest issues I&amp;#39;ve had trying to setup the debugger has always been with permissions.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;I would recommend paying especially close attention to this section.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The next biggest issue I had was trying to attach the debugger to a running process: &lt;a href="http://msdn.microsoft.com/en-us/library/c6wf8e4z.aspx"&gt;http://msdn.microsoft.com/en-us/library/c6wf8e4z.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Once you&amp;#39;ve setup Visual Studio debugger, you can attach the following processes for the following CRM components:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.75in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;For plug-ins, attach the debugger to the w3wp.exe process.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;For custom workflow activities, attach the debugger to MSCRMAsyncService.exe&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;For stored procedures, attach the debugger to sqlserver.exe&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.75in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Once the debugger has been attached, you must set a breakpoint in the code (either the .NET or T-SQL code).&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;After the breakpoint is set, to test, do the following:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.75in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;For plug-ins, login to CRM and execute actions that will trigger the plug-in, such as create/update/assign a record.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;For custom workflow activities, login to CRM and perform actions that will trigger the workflow.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;With this, being that it&amp;#39;s an asynchronous service, you&amp;#39;ll have to wait until that service runs, and then Visual Studio will let you step through the code.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;For the stored procedure, just execute the stored procedure in Visual Studio and it will go right to the breakpoint.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.75in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;I hope this post will help CRM developers save time and effort.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;I use the debugger every time I develop now to test and it&amp;#39;s saved me tremendous amount of maintenance time and effort after the code has been deployed.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Happy debugging!&lt;/p&gt;&lt;img src="http://www.crowehorwath.com/cs/aggbug.aspx?PostID=11128" width="1" height="1"&gt;</description><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx">Technical Tips</category></item><item><title>CRM 4.0 Plug-in Registration Tool Walkthrough</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/02/21/crm-4-0-plug-in-registration-tool-walkthrough.aspx</link><pubDate>Sat, 21 Feb 2009 23:14:00 GMT</pubDate><guid isPermaLink="false">733c1265-83be-4492-a5ff-7e2be949a514:11033</guid><dc:creator>Danny Varghese</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.crowehorwath.com/cs/blogs/crm/rsscomments.aspx?PostID=11033</wfw:commentRss><comments>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/02/21/crm-4-0-plug-in-registration-tool-walkthrough.aspx#comments</comments><description>&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;The CRM 4.0 Plug-in registration tool is Microsoft&amp;#39;s tool to register any plug-in developed for CRM 4.0 and callouts that were developed for CRM 3.0, but need to be upgraded to 4.0.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;In this article, I&amp;#39;d like to take a step by step walkthrough of the tool including any interesting facts or issues I&amp;#39;ve run into during this process.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Those will highlighted in the &amp;quot;&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;NOTE&amp;quot;&lt;/span&gt; section.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;To download the tool, please visit: &lt;a href="http://code.msdn.microsoft.com/crmplugin"&gt;http://code.msdn.microsoft.com/crmplugin&lt;/a&gt; for the latest version.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The tool also comes packaged when you download the CRM 4.0 SDK, which you can do from: &lt;a href="http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=82E632A7-FAF9-41E0-8EC1-A2662AAE9DFB&amp;amp;displaylang=en"&gt;http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=82E632A7-FAF9-41E0-8EC1-A2662AAE9DFB&amp;amp;displaylang=en&lt;/a&gt;.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-WEIGHT:bold;FONT-SIZE:16pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Building The Plug-in Registration Tool&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Either way, the download will contain Visual Studio project files that will need to be built.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Mitch Kett in his blog has outlined how to do this: &lt;a href="http://www.crowehorwath.com/cs/blogs/crm/archive/2008/03/19/incorporating-custom-entities-into-a-plugin-revised.aspx"&gt;http://www.crowehorwath.com/cs/blogs/crm/archive/2008/03/19/incorporating-custom-entities-into-a-plugin-revised.aspx&lt;/a&gt;.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;**NOTE:&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;The CRM SDK provides great information on what each service provides for the user:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;The &lt;span style="FONT-STYLE:italic;"&gt;CRM Web service&lt;/span&gt; provides strongly typed access to all entities in Microsoft Dynamics CRM, including custom entities and attributes. This Web service also allows execution of all supported operations, including those with built-in business logic as well as specialized operations. It provides a valid Web Services Description Language (WSDL) that is dynamically generated on the server to include the latest customizations and provides a single endpoint for your code.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;The &lt;span style="FONT-STYLE:italic;"&gt;Discovery Web service&lt;/span&gt; is a mechanism to find the correct CrmService endpoint for your organization or to obtain a CRM ticket for Internet-facing deployment (IFD) or for Microsoft Dynamics CRM Online.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;The &lt;span style="FONT-STYLE:italic;"&gt;Metadata Web service&lt;/span&gt; provides methods to read and write the metadata for an organization. This includes the definitions for entities, attributes, and relationships.&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;**&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;**NOTE:&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;If you don&amp;#39;t place the assembly files mentioned in step (8) of Mitch&amp;#39;s instructions, when you go to run the plug-in registration tool, you might get an error: &amp;quot;...Could Not Find Dependency…&amp;quot;&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;**&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-WEIGHT:bold;FONT-SIZE:16pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Using The Plug-in Registration Tool&lt;/p&gt;
&lt;p style="FONT-WEIGHT:bold;FONT-SIZE:16pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.75in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;You can launch the tool by either running the executable built from the project mentioned in the steps above, or if you&amp;#39;ve configured Visual Studio with a shortcut, you can launch it from that menu.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;img style="WIDTH:262px;HEIGHT:381px;" height="381" src="http://crowechizek.com/cs/blogs/crm/dvarghese/pluginRegister/Screenshot1.jpg" width="262" align="middle" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.75in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Once the screen is loaded, click on &lt;/span&gt;&lt;span style="FONT-WEIGHT:bold;FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Create New Connection&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Enter a simple label for the connection, the server in which CRM is installed on, port, domain and user name.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;img style="WIDTH:894px;HEIGHT:694px;" height="694" src="http://crowechizek.com/cs/blogs/crm/dvarghese/pluginRegister/Screenshot2.jpg" width="894" align="middle" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;**NOTE:&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;There are security restrictions on the user that can register plug-ins.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;According to the SDK, the user account registering the plug-ins must exist in the Deployment Administrators group or must be a System Administrator.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;If the user is not part of at least one of those groups, you will get an error along the lines of &amp;quot;…Not have enough privilege to complete Create operation for an SDK entity…&amp;quot;&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;**&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-WEIGHT:bold;FONT-SIZE:11pt;MARGIN:0in;COLOR:red;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;**NOTE:&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;If you don&amp;#39;t enter a username and password, it will use the windows default credentials you used to login.&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;**&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-WEIGHT:bold;FONT-SIZE:11pt;MARGIN:0in;COLOR:red;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.75in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Click on &lt;/span&gt;&lt;span style="FONT-WEIGHT:bold;FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Connect&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Once connected, you will see a new screen with various menu options.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Let&amp;#39;s dive deeper into each of these options.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;img style="WIDTH:494px;HEIGHT:26px;" height="26" src="http://crowechizek.com/cs/blogs/crm/dvarghese/pluginRegister/Screenshot3.jpg" width="494" align="middle" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:1.125in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-WEIGHT:bold;FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Register&lt;/span&gt;&lt;/li&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.375in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Register New Assembly&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - you can register a new assembly that contains the plug-in execution code.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Register New Step&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - allows you to configure the event that triggers the execution of the code.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;For example, this is where you can configure to fire a specific code after/before a record is created, updated, etc.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This is equivalent&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;to specifying a &amp;quot;PostUpdate,&amp;quot; &amp;quot;PostCreate,&amp;quot; in an xml configuration file for CRM 3.0 callouts.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Register New Image&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - you can register an xml image of an entity.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This can be used to find out what the values of a record is before and/or after the record is created, updated, etc.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;You can also specify which attributes of that record you want to pass into the execution context.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:1.125in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-WEIGHT:bold;FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Import/Export&lt;/span&gt;&lt;/li&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.375in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Export Solution Xml&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - allows a user to export an xml file that contains the assembly names, steps and/or images registered previously.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This allows for configuration of the plug-ins to be setup once and then migrated to other environments.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Import Solution Xml&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - allows user to import the xml file mentioned above in (3bi).&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 1.125in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 1.125in;FONT-FAMILY:Calibri;"&gt;&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;NOTE:&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;According to a document walking through the registration tool published by Ajith Gande the &amp;quot;Import Export has some limitations and design assumptions&lt;/p&gt;
&lt;ul style="MARGIN-TOP:0in;MARGIN-BOTTOM:0in;MARGIN-LEFT:1.875in;DIRECTION:ltr;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;If a plug-in is impersonated on user MyDomain\crmUser and imported in an organization with different domain, it tries to map the user bases on the domain user name (crmuser)&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Plug-in assembly DLL’s are not exported in the Xml. When Import is in progress, you need to copy the assemblies to the same location as the .xml file&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Import overwrites the assemblies, plug-in, steps, images in the target organization if any other entity exists with same Guid, else it creates them&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;It is recommended to import assemblies, plug-in, and a step all at once to avoid a lot of overwrites. So delete any existing assemblies with same name on target org. But the tool supports updating or adding a step to the existing plug-in using the import.&amp;quot;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 1.125in;FONT-FAMILY:Calibri;"&gt;This was referenced from: &lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 1.125in;FONT-FAMILY:Calibri;"&gt;&lt;a href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=crmplugin&amp;amp;DownloadId=320"&gt;http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=crmplugin&amp;amp;DownloadId=320&lt;/a&gt;&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;**&lt;/span&gt;&lt;/p&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:1.125in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-WEIGHT:bold;FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;View&lt;/span&gt;&lt;/li&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.375in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Display By Assembly&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - this is the default view, showing all registered plug-ins by assembly name.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Display By Entity&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - shows all registered plug-ins filtered by the entities they&amp;#39;re registered for.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Display By Message&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - organizes the plug-ins registered by messages or events such as Create, Update, etc.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:1.125in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-WEIGHT:bold;FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Unregister, Refresh &amp;amp; Search&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; (all self-explanatory)&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.75in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Click on &lt;/span&gt;&lt;span style="FONT-WEIGHT:bold;FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Register&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; --&amp;gt; &lt;/span&gt;&lt;span style="FONT-WEIGHT:bold;FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Register New Assembly&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;--&amp;gt; Complete the steps below and press &lt;/span&gt;&lt;span style="FONT-WEIGHT:bold;FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Register Selected Plugins&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; --&amp;gt; Click on &lt;strong&gt;Close&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;img style="WIDTH:434px;HEIGHT:481px;" height="481" src="http://crowechizek.com/cs/blogs/crm/dvarghese/pluginRegister/Screenshot4.jpg" width="434" align="middle" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:1.125in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Step 1&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;- Allows you to browse to a location and select the assembly you want to upload.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Step 2&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - This is not shown on the screenshot, but you now have to click &lt;/span&gt;&lt;span style="FONT-WEIGHT:bold;FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Load Assembly&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Step 3&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - Select where the assembly should be stored for execution&lt;/span&gt;&lt;/li&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.375in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Database - Storing the files on the database allows users to update the assembly file through this wizard as many times as they want without having to perform an &amp;quot;iisreset,&amp;quot; as you had to in CRM 3.0.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Advantage #2 is now the server\bin\assembly folder will not become cluttered if you have numerous&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;plug-ins.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Finally, this makes migration from different environments much easier because there are less files to move. &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 1.5in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;**NOTE: &lt;/span&gt;If you want to debug the assembly files, you will need to place the symbols file (.pdb) in &amp;lt;crm installation directory&amp;gt;\Server\bin\assembly folder. &lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;**&lt;/span&gt;&lt;/p&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:1.5in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Disk - This option allows you to store the assembly file as you did in CRM 3.0 under the &amp;lt;crm installation directory&amp;gt;\Server\bin\assembly directory.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;For debugging purposes, the symbols file (.pdb) must also be in this directory.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;If you store files here, an &amp;quot;iisreset&amp;quot; will be needed anytime any changes are made to the assembly.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;GAC - (Global Assembly Cache), for more information on this, please see my other post: &lt;/span&gt;&lt;a href="http://www.crowehorwath.com/cs/blogs/crm/archive/2008/03/05/gac-it-developing-portable-code-for-microsoft-crm.aspx"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;http://www.crowehorwath.com/cs/blogs/crm/archive/2008/03/05/gac-it-developing-portable-code-for-microsoft-crm.aspx&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.75in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Once you&amp;#39;ve registered your plug-in, click on &lt;/span&gt;&lt;span style="FONT-WEIGHT:bold;FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Register&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; --&amp;gt;&lt;/span&gt;&lt;span style="FONT-WEIGHT:bold;FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;fill in the steps outline below --&amp;gt; &lt;strong&gt;Register New Step&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;img style="WIDTH:717px;HEIGHT:388px;" height="388" src="http://crowechizek.com/cs/blogs/crm/dvarghese/pluginRegister/Screenshot5.jpg" width="717" align="middle" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:1.125in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Message&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - In CRM 3.0, you had to configure the callout.xml file to specify if the plug-in was to be triggered via and update, create, assign, etc.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Now you can configure this at this step.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Primary Entity&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - The entity that will trigger the plug-in&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Secondary Entity&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - You should enter this only when the plug-in should be triggered for an event requiring two entities like the &amp;quot;SetRelated&amp;quot; message.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Filtering Attributes&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - This allows you to filter which attributes of the entity will allow the triggering of the plug-in.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;For example if on the account you want the plug-in to fire only when the name gets updated, but not the account type, then you in your filter you can remove the account type.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;By default, all attributes are selected.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Plugin&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - Select the assembly, and class you wish to associate to this step.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Run In Users Context&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - By default it&amp;#39;s set to calling user, which means the plug-in will be fired with the current users credentials.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This is to control security so a user w/o the proper permissions won&amp;#39;t have a plug-in fire to create/update/etc.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;any records.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;You can specify other users to run the context in.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The list will pre-populate with all account names from the CRM installation.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Execution order&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - Sometimes asynchronous operations on dependant on others asynchronous operations to complete.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The execution order allows you to specify when this plug-in is supposed to fire.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Event Sate&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - Specifies if the plug-in should be fired before or after an event.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;In&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;CRM 3.0, this is similar to configuring a &amp;quot;PostUpdate,&amp;quot; &amp;quot;PostCreate,&amp;quot; &amp;quot;PreUpdate,&amp;quot; etc.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Execution Mode&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - A new feature which allows the plug-in to execute asynchronously or synchronously.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Step Deployment&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - If you want the plug-in to be deployed (not registered) on the server and/or offline (Outlook client).&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Triggering Pipeline&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - For example, if you have an account with activities and you re-assign that account.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;If the plug-in was registered an activity, then it does not get fired because the activity is getting updated as part of another operation.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;To trigger the plug-in in that case you have to set the pipeline to &amp;quot;Child Pipeline&amp;quot;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.75in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.75in;FONT-FAMILY:Calibri;"&gt;&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;**NOTE:&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;According to the SDK, If you want your plug-in to run regardless of whether a Web service call or an (internal) platform call initiated the pipeline, register your plug-in in a child pipeline. However, do not use the IPluginExecutionContext.CreateCrmService or IPluginExecutionContext.CreateMetatdataService methods if you are writing code for a plug-in in that is used in a child pipeline. In a child pipeline, you must instantiate the CrmService or MetadataService manually.&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;**&lt;/span&gt;&lt;/p&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:1.125in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Unsecure Configuration&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - if you don&amp;#39;t want to hardcode any values and the plug-in needs certain configuration values (that may change based on deployment environments) you can specify the values here.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;For example, the CRM server url.&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-STYLE:italic;FONT-FAMILY:Calibri;"&gt;Secure Configuration&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt; - same concept as above, but you could place more secure configurations like user credentials.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 1.125in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.75in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;(Optional) Click on &lt;/span&gt;&lt;span style="FONT-WEIGHT:bold;FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Register New Image&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;I say this step is optional because you may not need this step at all times.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This is equivalent to the pre and post image entity xml&amp;#39;s in CRM 3.0.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;You can register an xml image of what the entity attributes were before and after an event.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;For example, if you&amp;#39;ve registered a post-update event on an account and you want to check what the value of a field was before the update, you could register a pre-update image.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Furthermore, on this image, you can select which attributes you want the xml to contain.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This allows users to help performance (all be it, just a tiny bit) but cutting down unnecessary fields.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.75in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.75in;FONT-FAMILY:Calibri;"&gt;&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;**NOTE: &lt;/span&gt;You can not register a pre-create image since there were no attributes for a specific record because it hasn&amp;#39;t been created yet.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;You will get an error if you try this.&lt;span style="FONT-WEIGHT:bold;COLOR:red;"&gt;**&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-WEIGHT:bold;FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.75in;COLOR:red;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;This concludes my in-depth look at the plug-in registration tool.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;All the notes I&amp;#39;ve added have been experiences I&amp;#39;ve had registering plug-ins.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;I hope this was informative and helps save you some time developing!&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Happy coding!&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://www.crowehorwath.com/cs/aggbug.aspx?PostID=11033" width="1" height="1"&gt;</description><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx">Technical Tips</category></item><item><title>Publishing Microsoft CRM 4.0 through ISA Server 2006</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/02/21/publishing-microsoft-crm-4-0-through-isa-server-2006.aspx</link><pubDate>Sat, 21 Feb 2009 23:08:00 GMT</pubDate><guid isPermaLink="false">733c1265-83be-4492-a5ff-7e2be949a514:11032</guid><dc:creator>Danny Varghese</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.crowehorwath.com/cs/blogs/crm/rsscomments.aspx?PostID=11032</wfw:commentRss><comments>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/02/21/publishing-microsoft-crm-4-0-through-isa-server-2006.aspx#comments</comments><description>&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Here is a great article that illustrates how to publish Microsoft CRM 4.0 through ISA Server 2006: &lt;a href="http://blogs.technet.com/isablog/archive/2008/07/23/publishing-microsoft-crm-4-0-through-isa-server-2006.aspx"&gt;http://blogs.technet.com/isablog/archive/2008/07/23/publishing-microsoft-crm-4-0-through-isa-server-2006.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;The article is broken up into the following sections:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.75in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Adjusting CRM Server For External Publishing&lt;/span&gt;&lt;/li&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.375in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;General Considerations&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;IFD Configuraiton&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;
&lt;ol style="MARGIN-TOP:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0in;MARGIN-LEFT:0.75in;DIRECTION:ltr;FONT-FAMILY:Calibri;unicode-bidi:embed;"&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Configuring ISA Server 2006 Web publishing rule&lt;/span&gt;&lt;/li&gt;
&lt;li style="MARGIN-TOP:0px;MARGIN-BOTTOM:0px;VERTICAL-ALIGN:middle;"&gt;&lt;span style="FONT-SIZE:11pt;FONT-FAMILY:Calibri;"&gt;Troubleshooting Tips&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.75in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;For those who need some information on Microsoft ISA Server: &lt;a href="http://en.wikipedia.org/wiki/ISA_Server"&gt;http://en.wikipedia.org/wiki/ISA_Server&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.crowehorwath.com/cs/aggbug.aspx?PostID=11032" width="1" height="1"&gt;</description><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx">Technical Tips</category></item><item><title>Rules To Better Microsoft CRM &amp; SSRS</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/02/21/rules-to-better-microsoft-crm-amp-ssrs.aspx</link><pubDate>Sat, 21 Feb 2009 23:07:00 GMT</pubDate><guid isPermaLink="false">733c1265-83be-4492-a5ff-7e2be949a514:11031</guid><dc:creator>Danny Varghese</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.crowehorwath.com/cs/blogs/crm/rsscomments.aspx?PostID=11031</wfw:commentRss><comments>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/02/21/rules-to-better-microsoft-crm-amp-ssrs.aspx#comments</comments><description>&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Below are some very useful links on standards for Microsoft CRM and SQL Server Reporting Services:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0in;"&gt;&lt;a href="http://www.ssw.com.au/ssw/Standards/Rules/RulestoBetterMicrosoftCRM.aspx"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;http://www.ssw.com.au/ssw/Standards/Rules/RulestoBetterMicrosoftCRM.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:10pt;MARGIN:0in;FONT-FAMILY:Verdana;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0in;"&gt;&lt;a href="http://www.ssw.com.au/ssw/Standards/Rules/RulesToBetterSQLReportingServices.aspx"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;http://www.ssw.com.au/ssw/Standards/Rules/RulesToBetterSQLReportingServices.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Enjoy! &lt;/p&gt;&lt;img src="http://www.crowehorwath.com/cs/aggbug.aspx?PostID=11031" width="1" height="1"&gt;</description><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Business+Solutions/default.aspx">Business Solutions</category><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx">Technical Tips</category></item><item><title>Adding A Filtered Lookup In CRM</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/02/03/adding-a-filtered-lookup-in-crm.aspx</link><pubDate>Wed, 04 Feb 2009 01:16:00 GMT</pubDate><guid isPermaLink="false">733c1265-83be-4492-a5ff-7e2be949a514:8373</guid><dc:creator>Danny Varghese</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.crowehorwath.com/cs/blogs/crm/rsscomments.aspx?PostID=8373</wfw:commentRss><comments>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/02/03/adding-a-filtered-lookup-in-crm.aspx#comments</comments><description>&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Another common question I see in blogs from users are is there a way to add filtered lookups?&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;That is only allow users to &amp;quot;lookup&amp;quot; certain records that related to that particular one.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Here&amp;#39;s a real life example:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Say you have an account that has a 1:N parental relationship with entity A.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Now let&amp;#39;s say there&amp;#39;s another entity B that has N:1 referential relationships with both account, and entity A.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;There is a way on entity B so that after you select, on the lookup, a record of the account you want to relate to it, to filter the second lookup of entity A to only those related to the account you just selected.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;i.e.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Parental Relationship&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Account --&amp;gt; Entity A&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Referential Relationship&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Entity B -- Account&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Entity B -- Entity A&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;With simple JavaScript, when a user selects the lookup value for the account, the lookup for Entity A can be filtered to point to only those entity A&amp;#39;s that are related to the account you just chose.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Here&amp;#39;s the code to place on the form of Entity B:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;crmForm.all.&amp;lt;lookup field for entity A&amp;gt;.additionalparams = &amp;#39;search=&amp;#39; + encodeURIComponent(crmForm.all.&amp;lt;lookup field for account&amp;gt;.DataValue[0].name);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;That&amp;#39;s it!&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Simple, yet effective.&lt;/p&gt;&lt;img src="http://www.crowehorwath.com/cs/aggbug.aspx?PostID=8373" width="1" height="1"&gt;</description><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx">Technical Tips</category></item><item><title>Example of Dynamic Entity Retrieval</title><link>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/01/31/example-of-dynamic-entity-retrieval.aspx</link><pubDate>Sun, 01 Feb 2009 01:10:00 GMT</pubDate><guid isPermaLink="false">733c1265-83be-4492-a5ff-7e2be949a514:8372</guid><dc:creator>Danny Varghese</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.crowehorwath.com/cs/blogs/crm/rsscomments.aspx?PostID=8372</wfw:commentRss><comments>http://www.crowehorwath.com/cs/blogs/crm/archive/2009/01/31/example-of-dynamic-entity-retrieval.aspx#comments</comments><description>&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;There have been numerous requests on other blogs about sample code to on how to retrieve entities in CRM.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;One way is to use the CRM web service to retrieve business entities, however by doing so, you&amp;#39;re only limited to out-of-the-box entities with system attributes.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;To retrieve anything more &amp;quot;dynamic,&amp;quot; you&amp;#39;ll have to employ other methods.&amp;nbsp; Please remember that in order to retrieve any record, you must have the proper permissions on that entity.&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;Below is a code example of how to retrieve a record with an id using dynamic entity retrieve:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;public DynamicEntity RetrieveEntity()&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;{&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#009900"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#009900"&gt;//variable initialization&lt;/font&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;TargetRetrieveDynamic target = new TargetRetrieveDynamic();&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;RetrieveRequest retrieveRequest = new RetrieveRequest();&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;RetrieveResponse retrieveResponse = null;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;DynamicEntity entity = null;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;target.EntityName = &amp;lt;name of entity here&amp;gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;target.EntityId = &amp;lt;id of entity here&amp;gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;font color="#009900"&gt;//initialize request parameters&lt;/font&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;retrieveRequest.ColumnSet = new AllColumns();&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;retrieveRequest.ReturnDynamicEntities = true;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;retrieveRequest.Target = target;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;font color="#009900"&gt;//build the response object&lt;/font&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;retrieveResponse = (RetrieveResponse)GetCrmService().Execute(retrieveRequest);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;font color="#009900"&gt;//retrieve the service order item from the response&lt;/font&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;entity = (DynamicEntity)retrieveResponse.BusinessEntity;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return entity;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;}&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;The above example is a simple one, but the example below retrieves all contacts that have an account id = some id, and also retrieve the records with only a certain attributes.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This is probably a more robust example encompassing many retrieval options:&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;private ArrayList RetrieveMultipleContacts(ICrmService crmService, Guid parentAccountId)&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;{&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;&lt;font color="#009900"&gt;//variable initialization&lt;/font&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;ConditionExpression condition = new ConditionBLOCKED EXPRESSION;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;FilterExpression filter = new FilterBLOCKED EXPRESSION;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;QueryExpression query = new QueryBLOCKED EXPRESSION;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;RetrieveMultipleRequest request = new RetrieveMultipleRequest();&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;ColumnSet cols = new ColumnSet();&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;RetrieveMultipleResponse response = null;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;ArrayList contacts = new ArrayList();&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;&lt;font color="#009900"&gt;//Set the condition for retrieval&lt;/font&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;condition.AttributeName = &amp;quot;parentcustomerid&amp;quot;;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;condition.Operator = ConditionOperator.Equal;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;condition.Values = new string[] { parentAccountId.ToString() };&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;&lt;font color="#009900"&gt;//Set the properties of the filter.&lt;/font&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;filter.FilterOperator = LogicalOperator.And;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;filter.AddCondition(condition);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;&lt;font color="#009900"&gt;//Set the attributes needed to be returned.&lt;/font&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;strong&gt;&lt;font color="#cc0000"&gt;NOTE:&lt;/font&gt;&lt;/strong&gt; &lt;font color="#009900"&gt;The CRM Sdk has an erroneous example&lt;/font&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;&lt;font color="#009900"&gt;//of how to set the attributes for retrieval. &lt;/font&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;cols.Attributes.Add(&amp;quot;address1_line1&amp;quot;);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;cols.Attributes.Add(&amp;quot;address1_line2&amp;quot;);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;cols.Attributes.Add(&amp;quot;address1_line3&amp;quot;);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;cols.Attributes.Add(&amp;quot;address1_city&amp;quot;);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;cols.Attributes.Add(&amp;quot;address1_stateorprovince&amp;quot;);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;cols.Attributes.Add(&amp;quot;address1_postalcode&amp;quot;);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;cols.Attributes.Add(&amp;quot;address1_country&amp;quot;);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;cols.Attributes.Add(&amp;quot;telephone1&amp;quot;);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;cols.Attributes.Add(&amp;quot;fax&amp;quot;);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;&lt;font color="#009900"&gt;//Set the properties of the QueryExpression object.&lt;/font&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;query.EntityName = EntityName.contact.ToString();&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;query.ColumnSet = cols;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;query.Criteria = filter;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;&lt;font color="#009900"&gt;//Set the query for the request and set the flag to return&lt;/font&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;&lt;font color="#009900"&gt;//dynamic entities&lt;/font&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;request.Query = query;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;&lt;font color="#009900"&gt;//retrieve the contacts&lt;/font&gt;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;response = (RetrieveMultipleResponse)crmService.Execute(request);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;foreach (BusinessEntity cont in response.BusinessEntityCollection.BusinessEntities)&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;{&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.75in;FONT-FAMILY:Calibri;"&gt;contacts.Add(cont);&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;}&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in 0in 0in 0.375in;FONT-FAMILY:Calibri;"&gt;return contacts;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;}&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="FONT-SIZE:11pt;MARGIN:0in;FONT-FAMILY:Calibri;"&gt;I hope these examples help someone, happy coding!&lt;/p&gt;&lt;img src="http://www.crowehorwath.com/cs/aggbug.aspx?PostID=8372" width="1" height="1"&gt;</description><category domain="http://www.crowehorwath.com/cs/blogs/crm/archive/tags/Technical+Tips/default.aspx">Technical Tips</category></item></channel></rss>