<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mitch Milam&#039;s Dynamics CRM and xRM Discussions &#187; Customization</title>
	<atom:link href="http://blogs.infinite-x.net/category/dynamics-crm/customization/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.infinite-x.net</link>
	<description>Sharing information with Dynamics CRM users and xRM developers</description>
	<lastBuildDate>Wed, 08 Feb 2012 16:27:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>CRM Export JavaScript Updated</title>
		<link>http://blogs.infinite-x.net/2012/02/07/crm-export-javascript-updated/</link>
		<comments>http://blogs.infinite-x.net/2012/02/07/crm-export-javascript-updated/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 08:01:00 +0000</pubDate>
		<dc:creator>Mitch Milam</dc:creator>
				<category><![CDATA[CRM 2011]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[Dynamics CRM]]></category>
		<category><![CDATA[MSDYNCRM]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/?p=1214</guid>
		<description><![CDATA[I updated the utility exports to disk the JavaScript found in a solution in Dynamics CRM 2011. To read more about it, see the original announcement, found here. This updated fixes some issues where the JavaScript would not be exported depending upon the solution you selected and the solution you chose to export. ( it [...]]]></description>
			<content:encoded><![CDATA[<p>I updated the utility exports to disk the JavaScript found in a solution in Dynamics CRM 2011. To read more about it, see the original announcement, found <a href="http://blogs.infinite-x.net/2011/07/04/export-javascript-utility-updated/" target="_blank">here</a>.</p>
<p>This updated fixes some issues where the JavaScript would not be exported depending upon the solution you selected and the solution you chose to export. ( it was basically a design-flaw on my part. )</p>
<p>If you are running IFD using ADFS to access your CRM system, then you may be unable to connect to CRM. If you receive a 401 error, then please let me know.&#160; I am currently working with Microsoft to determine a course of action around this issue.</p>
<p>Otherwise, if you find any issues, then please let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2012/02/07/crm-export-javascript-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CRM Migration Assistant 1.3.3 Released</title>
		<link>http://blogs.infinite-x.net/2012/02/01/crm-migration-assistant-1-3-3-released/</link>
		<comments>http://blogs.infinite-x.net/2012/02/01/crm-migration-assistant-1-3-3-released/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 17:47:02 +0000</pubDate>
		<dc:creator>Mitch Milam</dc:creator>
				<category><![CDATA[CRM 2011]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Dynamics CRM]]></category>
		<category><![CDATA[CRM2011]]></category>
		<category><![CDATA[MSCRM]]></category>
		<category><![CDATA[MSCRM2011]]></category>
		<category><![CDATA[MSDYNCRM]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/?p=1205</guid>
		<description><![CDATA[We have released a small update to the CRM Migration Assistant which includes the following updates: Added 0 and 1 as supported Submit Options Fixed issues with converting .AddOption to .addOption method. Conversion alerts were added for the following JavaScript properties: .title .vAlign .contentEditable .innerText Any .style property that is not either display or visible [...]]]></description>
			<content:encoded><![CDATA[<p>We have released a small update to the CRM Migration Assistant which includes the following updates:</p>
<ol>
<li>Added 0 and 1 as supported Submit Options</li>
<li>Fixed issues with converting .AddOption to .addOption method.</li>
<li>Conversion alerts were added for the following JavaScript properties:</li>
</ol>
<ul>
<li>.title</li>
<li>.vAlign</li>
<li>.contentEditable</li>
<li>.innerText</li>
</ul>
<ol>
<li>Any .style property that is not either <strong>display</strong> or <strong>visible</strong> is now marked as a conversion issue. This is to help identify instances where people have created unsupported code which will probably not work within the CRM 2011 environment.</li>
<li>The use of document.all.mnuBar1 now produces a conversion alert.</li>
<li>Instances of the DOM element <strong>&#039;Notifications&#039;</strong> will cause a conversion alert will be generated. This is a special CRM form element at the top of each data entry form that shows alerts to the user. For more information on using this technique, see this <a href="http://community.dynamics.com/product/crm/crmtechnical/b/crmmarcoamoedoeng/archive/2009/06/09/show-custom-warning-messages-on-microsoft-dynamics-crm.aspx" target="_blank">article</a>.</li>
</ol>
<p>&nbsp;</p>
<p>You may download the new package <a href="http://www.crmaccelerators.net/products/crm-migration-assistant-2/crm-migration-assistant-demo-request/" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2012/02/01/crm-migration-assistant-1-3-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting to CRM 2011 JavaScript: Form Elements</title>
		<link>http://blogs.infinite-x.net/2012/01/27/converting-to-crm-2011-javascript-form-elements/</link>
		<comments>http://blogs.infinite-x.net/2012/01/27/converting-to-crm-2011-javascript-form-elements/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 08:06:00 +0000</pubDate>
		<dc:creator>Mitch Milam</dc:creator>
				<category><![CDATA[CRM 2011]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Dynamics CRM]]></category>
		<category><![CDATA[CRM2011]]></category>
		<category><![CDATA[MSCRM]]></category>
		<category><![CDATA[MSCRM2011]]></category>
		<category><![CDATA[MSDYNCRM]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/?p=1195</guid>
		<description><![CDATA[One of the most fascinating things I found during the creation of the CRM Migration Assistant is the different methods developers use to access CRM form fields, and other form elements. Normally, people access a form field using the following style of JavaScript: crmForm.all.name This is the normal and perfectly acceptable (and supported) method for [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most fascinating things I found during the creation of the CRM Migration Assistant is the different methods developers use to access CRM form fields, and other form elements.</p>
<p>Normally, people access a form field using the following style of JavaScript:</p>
<blockquote><p>crmForm.all.name</p>
</blockquote>
<p>This is the normal and perfectly acceptable (and supported) method for referencing CRM form fields.</p>
<p>But, for various reasons, I&#039;ve also seen fields reference using these crmForm methods:</p>
<blockquote><p>crmForm.name     <br />crmForm.elements[&quot;name&quot;]      <br />crmForm.all[&quot;name&quot;]      <br />crmForm[&quot;name&quot;]</p>
</blockquote>
<p>This is perfectly acceptable JavaScript and the CRM 4.0 object model had no objection to this practice, so all of these methods seemed to work.</p>
<p>In fact, accessing CRM form fields using the JavaScript <strong>document</strong> object using these methods worked as well:</p>
<blockquote><p>document.all(&quot;name_c&quot;)     <br />document.all[&quot;name&quot;]      <br />document.getElementById(&quot;name_c&quot;)</p>
</blockquote>
<p>The real question is: Will these methods continue to work when the organization is upgraded to CRM 2011?</p>
<p>The answer is: If you have used standard and supported methods within your JavaScript, then yes, the code will be supported. </p>
<p>This means referencing all of your form fields using the standard access model:</p>
<blockquote><p>crmForm.all.name</p>
</blockquote>
<p>Other options may or may not work correctly. Your experience my vary depending on which of the above methods were used.</p>
<p>Fortunately, the CRM Migration Assistant converts all of these &quot;unsupported&quot; form field access types into fully-supported CRM 2011 code using Xrm.Page.getAttribute and Xrm.Page.getControl, depending on how the field was being used.</p>
<p>If you haven&#039;t already, download the trial version of the <a href="http://www.crmaccelerators.net/products/crm-migration-assistant-2/" target="_blank">CRM Migration Assistant</a> and convert some of your questionable JavaScript through the conversion process.</p>
<p>If you run into any conversion issues, send me a code sample so that I can update the conversion process.   </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2012/01/27/converting-to-crm-2011-javascript-form-elements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CRM 4.0: Moving customizations between organizations</title>
		<link>http://blogs.infinite-x.net/2012/01/20/crm-4-0-moving-customizations-between-organizations/</link>
		<comments>http://blogs.infinite-x.net/2012/01/20/crm-4-0-moving-customizations-between-organizations/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 17:59:26 +0000</pubDate>
		<dc:creator>Mitch Milam</dc:creator>
				<category><![CDATA[Customization]]></category>
		<category><![CDATA[Dynamics CRM]]></category>
		<category><![CDATA[MSCRM]]></category>
		<category><![CDATA[MSDYNCRM]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/?p=1191</guid>
		<description><![CDATA[One of the things that gets CRM 4.0 developers into trouble is moving customizations between organizations. Here is a tip that will prevent a lot of grief trying to troubleshoot some of the more confusing errors: Always, Always, Always export all of your customizations from the source environment. You can always import only the items [...]]]></description>
			<content:encoded><![CDATA[<p>One of the things that gets CRM 4.0 developers into trouble is moving customizations between organizations. Here is a tip that will prevent a lot of grief trying to troubleshoot some of the more confusing errors:</p>
<p><strong>Always</strong>, <strong><font size="4">Always</font></strong>, <font size="5"><strong>Always</strong> export <strong><u>all</u></strong> of your customizations from the source environment.</font></p>
<p>You can always import <strong><u>only</u></strong> the items that you are working on. The Import Customizations page allows you to select the items being imported.</p>
<p>Using this technique gives CRM all of the information about your customizations and schema so it it needs some secret little part of something, it is available.</p>
<p>Sometimes it will miss data or other relevant information and while not producing an error, may not fully recreate the customizations as you defined them within the source environment.</p>
<p>I have seen this appear as lost icons, invalid relationship connections, and just plain strange stuff that takes hours to find and fix.</p>
<h4>An Example:</h4>
<p>Last year, I ran into such a situation where we could not Publish All Customizations.</p>
<p>It took me about 6 hours to find and fix but the problem was related to a custom entity that was, well, broken.&#160; I had to manually insert a record into the database to fix it. ( and yes, that scared the crap out of me. )</p>
<p>It is my firm belief that this occurred because the person who installed the customizations only moved the four entities required from one organization to the other.</p>
<p>My initial solution was to export all customizations from the original source organization, import only those four entities into the development environment, then finish the remainder of the database cleanup manually.</p>
<p>This process had to be duplicated to the test and production organizations as well.</p>
<p>All in all, not a fun time and one that stretched my personal and professional expertise to the limit.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2012/01/20/crm-4-0-moving-customizations-between-organizations/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CRM SDK Deep Dive: Error Codes</title>
		<link>http://blogs.infinite-x.net/2012/01/18/crm-sdk-deep-dive-error-codes/</link>
		<comments>http://blogs.infinite-x.net/2012/01/18/crm-sdk-deep-dive-error-codes/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 10:36:48 +0000</pubDate>
		<dc:creator>Mitch Milam</dc:creator>
				<category><![CDATA[CRM 2011]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Dynamics CRM]]></category>
		<category><![CDATA[CRM2011]]></category>
		<category><![CDATA[MSCRM]]></category>
		<category><![CDATA[MSCRM2011]]></category>
		<category><![CDATA[MSDYNCRM]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/?p=1189</guid>
		<description><![CDATA[As I was reviewing notes from the recently released CRM SDK 5.0.9, I noticed a section on Error Codes.&#160; &#34;This looks interesting,&#34; I thought. After you have installed the CRM SDK, navigate to the following folder: sdk\samplecode\cs\helpercode In that folder you will find, among other things, three files related to error codes, each in a [...]]]></description>
			<content:encoded><![CDATA[<p>As I was reviewing notes from the recently released CRM SDK 5.0.9, I noticed a section on Error Codes.&#160; &quot;This looks interesting,&quot; I thought.</p>
<p>After you have installed the CRM SDK, navigate to the following folder:</p>
<blockquote><p>sdk\samplecode\cs\helpercode</p>
</blockquote>
<p>In that folder you will find, among other things, three files related to error codes, each in a different format. It appears that there are around 2,015 error codes.&#160; Wow, that&#039;s a lot of documentation!</p>
<h2>crmerrors.xlsx</h2>
<p>Is a Microsoft Excel worksheet formatted like this:</p>
<p><a href="http://blogs.infinite-x.net/wp-content/uploads/2012/01/image12.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.infinite-x.net/wp-content/uploads/2012/01/image_thumb12.png" width="504" height="123" /></a></p>
<h2>errorcodes.cs</h2>
<p>Is a C# class that has the error codes inside of a class that you can incorporate into your applications. The code starts off like this:</p>
<p><span style="color: blue">private static </span><span style="color: #2b91af">Hashtable </span>ErrorMessages = <span style="color: blue">new </span><span style="color: #2b91af">Hashtable</span>();    </p>
<p><span style="color: blue">static </span>ErrorCodes()    <br />{    <br />&#160;&#160;&#160; ErrorMessages.Add(InvalidAuth,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: #a31515">&quot;Organization Authentication does not match the current discovery service Role.&quot;</span>);    <br />&#160;&#160;&#160; ErrorMessages.Add(CannotUpdateOrgDBOrgSettingWhenOffline,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: #a31515">&quot;Organization Settings stored in Organization Database cannot be set when offline.&quot;</span>);    <br />&#160;&#160;&#160; ErrorMessages.Add(InvalidOrgDBOrgSetting,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: #a31515">&quot;Invalid Organization Setting passed in. Please check the datatype and pass in an appropriate value.&quot;</span>);    <br />&#160;&#160;&#160; ErrorMessages.Add(UnknownInvalidTransformationParameterGeneric,    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: #a31515">&quot;One or more input transformation parameter values are invalid: {0}.&quot;</span>);    <br />&#160;&#160;&#160; ErrorMessages.Add(InvalidTransformationParameterOutsideRangeGeneric,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: #a31515">&quot;One or more input transformation parameter values are outside the permissible range: {0}.&quot;</span>);    </p>
<h2>crmerrors.xml</h2>
<p>The final version of the file is an XML which is formatted like this:</p>
<pre class="code"><span style="color: blue">
<pre class="code"><span style="color: blue">&lt;?</span><span style="color: #a31515">xml </span><span style="color: red">version</span><span style="color: blue">=</span>&quot;<span style="color: blue">1.0</span>&quot; <span style="color: red">encoding</span><span style="color: blue">=</span>&quot;<span style="color: blue">UTF-8</span>&quot; <span style="color: red">standalone</span><span style="color: blue">=</span>&quot;<span style="color: blue">yes</span>&quot;<span style="color: blue">?&gt;
&lt;</span><span style="color: #a31515">crmerrors </span><span style="color: red">xmlns:xsi</span><span style="color: blue">=</span>&quot;<span style="color: blue">http://www.w3.org/2001/XMLSchema-instance</span>&quot;<span style="color: blue">&gt;
  &lt;</span><span style="color: #a31515">crmerror</span><span style="color: blue">&gt;
    &lt;</span><span style="color: #a31515">ErrorId</span><span style="color: blue">&gt;
      </span>80048516
    <span style="color: blue">&lt;/</span><span style="color: #a31515">ErrorId</span><span style="color: blue">&gt;
    &lt;</span><span style="color: #a31515">ManagedErrorName</span><span style="color: blue">&gt;
      </span>InvalidAuth
    <span style="color: blue">&lt;/</span><span style="color: #a31515">ManagedErrorName</span><span style="color: blue">&gt;
    &lt;</span><span style="color: #a31515">ErrorMessage</span><span style="color: blue">&gt;
      </span>Organization Authentication does not match the current discovery service Role.
    <span style="color: blue">&lt;/</span><span style="color: #a31515">ErrorMessage</span><span style="color: blue">&gt;
  &lt;/</span><span style="color: #a31515">crmerror</span><span style="color: blue">&gt;
  &lt;</span><span style="color: #a31515">crmerror</span><span style="color: blue">&gt;
    &lt;</span><span style="color: #a31515">ErrorId</span><span style="color: blue">&gt;
      </span>80048515
    <span style="color: blue">&lt;/</span><span style="color: #a31515">ErrorId</span><span style="color: blue">&gt;
    &lt;</span><span style="color: #a31515">ManagedErrorName</span><span style="color: blue">&gt;
      </span>CannotUpdateOrgDBOrgSettingWhenOffline
    <span style="color: blue">&lt;/</span><span style="color: #a31515">ManagedErrorName</span><span style="color: blue">&gt;
    &lt;</span><span style="color: #a31515">ErrorMessage</span><span style="color: blue">&gt;
      </span>Organization Settings stored in Organization Database cannot be set when offline.
    <span style="color: blue">&lt;/</span><span style="color: #a31515">ErrorMessage</span><span style="color: blue">&gt;
  &lt;/</span><span style="color: #a31515">crmerror</span><span style="color: blue">&gt;

</span></pre>
<p></span></pre>
<pre class="code"><span style="color: blue"></span></pre>
<p>Regardless of how you use it, these files are a great resource for any CRM developer.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2012/01/18/crm-sdk-deep-dive-error-codes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CRM SDK 5.0.9 Released</title>
		<link>http://blogs.infinite-x.net/2012/01/17/crm-sdk-5-0-9-released/</link>
		<comments>http://blogs.infinite-x.net/2012/01/17/crm-sdk-5-0-9-released/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 12:27:46 +0000</pubDate>
		<dc:creator>Mitch Milam</dc:creator>
				<category><![CDATA[CRM 2011]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[Dynamics CRM]]></category>
		<category><![CDATA[CRM2011]]></category>
		<category><![CDATA[monotouch]]></category>
		<category><![CDATA[MSCRM]]></category>
		<category><![CDATA[MSCRM2011]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/?p=1185</guid>
		<description><![CDATA[You may download it here. This update includes: New and updated topics Description of changes Microsoft_Dynamics_CRM_2011_SDK_Readme.htm Updated the readme for this version of the SDK package. SDK\Bin Updated the assemblies for Microsoft Dynamics CRM 2011 Update Rollup 6 and the Microsoft Dynamics CRM Online January 2012 Service Update. For on-premises customers, updates and hotfixes can [...]]]></description>
			<content:encoded><![CDATA[<p>You may download it <a href="http://www.microsoft.com/download/en/details.aspx?id=24004" target="_blank">here</a>.</p>
<p>This update includes:</p>
<table border="0" cellpadding="0">
<tbody>
<tr>
<td>
<p><b>New and updated topics</b></p>
</td>
<td>
<p><b>Description of changes</b></p>
</td>
</tr>
<tr>
<td>
<p>Microsoft_Dynamics_CRM_2011_SDK_Readme.htm</p>
</td>
<td>
<p>Updated the readme for this version of the SDK package.</p>
</td>
</tr>
<tr>
<td>
<p>SDK\Bin</p>
</td>
<td>
<p>Updated the assemblies for Microsoft Dynamics CRM 2011 Update Rollup 6 and the Microsoft Dynamics CRM Online January 2012 Service Update. For on-premises customers, updates and hotfixes can be installed automatically from <a href="http://www.microsoft.com/download/en/dynamics.aspx?q=dynamics">Microsoft Update</a>. You can also search for updates on the <a href="http://www.microsoft.com/downloads/">Microsoft Download Center</a>. For online customers, update rollups will be deployed automatically to your organization.</p>
</td>
</tr>
<tr>
<td>
<p>SampleCode\CS\HelperCode\CrmErrors.xlsx</p>
<p>SampleCode\CS\HelperCode\CrmErrors.xml</p>
<p>SampleCode\CS\HelperCode\ErrorCodes.cs</p>
</td>
<td>
<p>Updated error code files for this release.</p>
</td>
</tr>
<tr>
<td>
<p>Tools\PluginRegistration</p>
</td>
<td>
<p>Added federation and online federation provider types for Microsoft Office 365 support. In addition, fixed an issue that had occurred when configuring ACS.</p>
</td>
</tr>
<tr>
<td>
<p>SampleCode\CS\*</p>
<p>SampleCode\VB\*</p>
</td>
<td>
<p>Updated all samples to use the <b>GetOrganizationProxy</b> helper method instead of instantiating <a href="ms-its:C:\work\SDK-5-0-9\crmsdk2011.chm::/html/4c4b49ef-5d75-50d2-e752-33d562041a03.htm">OrganizationServiceProxy</a>. This was done to add support for federated and managed Microsoft Office 365 organizations. For more information, see <a href="ms-its:C:\work\SDK-5-0-9\crmsdk2011.chm::/html/dc81b2ec-c4db-44b9-8fe6-db108b196a96.htm">Active Directory and Claims-Based Authentication</a>.</p>
</td>
</tr>
<tr>
<td>
<p><a href="ms-its:C:\work\SDK-5-0-9\crmsdk2011.chm::/html/d7d0b052-abca-4f81-9b86-0b9dc5e62a66.htm">Client-Side Context Reference</a></p>
</td>
<td>
<p>Updated this topic and related topics to state that the Xrm.Page.context.<a href="ms-its:C:\work\SDK-5-0-9\crmsdk2011.chm::/html/d7d0b052-abca-4f81-9b86-0b9dc5e62a66.htm#BKMK_getAuthenticationHeader">getAuthenticationHeader</a> function is deprecated and should not be used. Scripts upgraded from Microsoft Dynamics CRM 4.0 may continue to use the global <b>getAuthenticationHeader</b> function and should not be modified to use <b>Xrm.Page.context.getAuthenticationHeader</b>. New scripts using the REST endpoint for web resources or the SOAP endpoint for web resources do not require this function for authentication.</p>
</td>
</tr>
<tr>
<td>
<p><a href="ms-its:C:\work\SDK-5-0-9\crmsdk2011.chm::/html/c281853e-c033-4ed7-aeda-6615dbea4c5b.htm">Create New Entity Forms</a></p>
</td>
<td>
<p>Updated this topic to provide information that the <a href="ms-its:C:\work\SDK-5-0-9\crmsdk2011.chm::/html/465c221a-861f-fd7e-734d-9d5fb58cff90.htm">EntityMetadata</a>.<a href="ms-its:C:\work\SDK-5-0-9\crmsdk2011.chm::/html/ccb90937-8a26-4766-89e1-fd5e10b7170b.htm">CanCreateForms</a> property controls whether new forms can be created for an entity.</p>
</td>
</tr>
<tr>
<td>
<p><a href="ms-its:C:\work\SDK-5-0-9\crmsdk2011.chm::/html/2f601c9e-b1d1-47be-a8ea-afca16780751.htm">Create Solutions That Support Multiple Languages</a></p>
</td>
<td>
<p>Included information about creating localized dialogs processes.</p>
</td>
</tr>
<tr>
<td>
<p><a href="ms-its:C:\work\SDK-5-0-9\crmsdk2011.chm::/html/a4b17ddb-c0a8-433d-a428-858b495e6734.htm">Disaster Recovery in Microsoft Dynamics CRM Online</a></p>
</td>
<td>
<p>Added a topic about Microsoft Dynamics CRM Online disaster recovery.</p>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>
<p><a href="ms-its:C:\work\SDK-5-0-9\crmsdk2011.chm::/html/3bde1482-60d4-489b-8379-49d3bc2f4abc.htm">Sample: Authenticate Users with Microsoft Dynamics CRM Web Services</a></p>
<p>SampleCode\CS\GeneralProgramming\           <br />Authentication\AuthenticateWithNoHelp</p>
<p>SampleCode\VB\GeneralProgramming\           <br />Authentication\AuthenticateWithNoHelp</p>
</td>
<td>
<p>Added new samples that authenticate the user with the web services without using the helper code.</p>
</td>
</tr>
<tr>
<td>
<p><a href="ms-its:C:\work\SDK-5-0-9\crmsdk2011.chm::/html/9386a572-0f6c-4edb-91f1-021ee63e6a58.htm#Unsupported">Unsupported Customizations</a></p>
</td>
<td>
<p>Clarified that adding indexes is not supported for Microsoft Dynamics CRM Online.</p>
</td>
</tr>
<tr>
<td>
<p><a href="ms-its:C:\work\SDK-5-0-9\crmsdk2011.chm::/html/b7840a25-f25e-409b-8b6a-0ef04c7ed9c4.htm">Use JavaScript with Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online</a></p>
</td>
<td>
<p>Added a topic to help developers find information about using JavaScript with various features that support it.</p>
</td>
</tr>
<tr>
<td>
<p><a href="ms-its:C:\work\SDK-5-0-9\crmsdk2011.chm::/html/0375b206-d2bf-4034-a41d-fb476ecb4438.htm">Xrm.Page.ui</a>.<a href="ms-its:C:\work\SDK-5-0-9\crmsdk2011.chm::/html/0375b206-d2bf-4034-a41d-fb476ecb4438.htm#BKMK_refreshRibbon">refreshRibbon</a></p>
</td>
<td>
<p>Removed reference in remarks to the <b>refreshRibbon</b> method that causes ribbon display rules to be re-evaluated. Only enable rules can be re-evaluated after the page loads.</p>
</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2012/01/17/crm-sdk-5-0-9-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CRM SDK Deep Dive: Plugin Messages Support</title>
		<link>http://blogs.infinite-x.net/2012/01/17/crm-sdk-deep-dive-plugin-messages-support/</link>
		<comments>http://blogs.infinite-x.net/2012/01/17/crm-sdk-deep-dive-plugin-messages-support/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 08:44:00 +0000</pubDate>
		<dc:creator>Mitch Milam</dc:creator>
				<category><![CDATA[Customization]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Dynamics CRM]]></category>
		<category><![CDATA[CRM2011]]></category>
		<category><![CDATA[MSCRM]]></category>
		<category><![CDATA[MSCRM2011]]></category>
		<category><![CDATA[MSDYNCRM]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/?p=1182</guid>
		<description><![CDATA[If you are developing a plugin, sooner or later you will need to do something in a plugin that requires &#34;listening&#34; to more than just Create, Read, Update, and Delete messages. What is a Message? If you are new to Dynamics CRM development, a Message word that is used to instruct CRM to do something. [...]]]></description>
			<content:encoded><![CDATA[<p>If you are developing a plugin, sooner or later you will need to do something in a plugin that requires &quot;listening&quot; to more than just Create, Read, Update, and Delete messages.</p>
<h3>What is a Message?</h3>
<p>If you are new to Dynamics CRM development, a Message word that is used to instruct CRM to do something. As far as I can tell, since the early versions of the CRM SDK used the SOAP protocol exclusively, and SOAP passes messages, the term message became the standard name for CRM internal processing options</p>
<blockquote><p><font style="background-color: #ffffff">If anyone has any other explanation, please let me know and I&#039;ll update the post.</font></p>
</blockquote>
<h3>What do you do with Messages?</h3>
<p>Messages are what a plugin &quot;listens for&quot; to know when to activate and perform whatever job it was programmed to do.</p>
<p>A Message is associated with a Plugin Step ( internally called a SdkMessageProcessingStep ), which is a pointer that associates your plugin code to a Dynamics CRM internal action.</p>
<p>Inside the Plugin Registration Tool, you may see something like this:</p>
<p><a href="http://blogs.infinite-x.net/wp-content/uploads/2012/01/image8.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.infinite-x.net/wp-content/uploads/2012/01/image_thumb8.png" width="504" height="162" /></a></p>
<p>As you can see, I have an assembly called <strong>ClassLibrary1</strong>, within that assembly I have a single plugin, <strong>SamplePlugin</strong>, and that plugin has two steps:</p>
<ol>
<li>Create of a queueitem</li>
<li>Create of an email</li>
</ol>
<p><strong>Create</strong> is the Message.</p>
<p>&#160;</p>
<h3>How do I make it GO?</h3>
<p>So, how do you, as a plugin developer, figure out what message you need to use to properly configure your plugin?</p>
<p>Well, for the most part, it&#039;s pretty simple: You select the CRM operation you are interested in intercepting then select Entity that will be associated with that Message.</p>
<p>Here is how the configuration looks within the Plugin Registration Tool:</p>
<p><a href="http://blogs.infinite-x.net/wp-content/uploads/2012/01/image9.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.infinite-x.net/wp-content/uploads/2012/01/image_thumb9.png" width="504" height="285" /></a></p>
<p>&#160;</p>
<h3>But what if I don&#039;t know what message to use?</h3>
<p>Excellent question, and the reason for my article.</p>
<p>The very fine folks in the Dynamics CRM documentation team have created for us, an Excel worksheet that lists all of the messages associated with a CRM Entity.</p>
<p>After you install the CRM SDK, you&#039;ll find the worksheet here:</p>
<blockquote><p>sdk\tools\message-entity support for plug-ins.xlsx</p>
</blockquote>
<p>And here is how it looks:</p>
<p><a href="http://blogs.infinite-x.net/wp-content/uploads/2012/01/image10.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.infinite-x.net/wp-content/uploads/2012/01/image_thumb10.png" width="504" height="148" /></a></p>
<p>It lists the following information:</p>
<ul>
<li>Message Name</li>
<li>Primary Entity</li>
<li>Secondary Entity</li>
<li>Message Availability</li>
<ul>
<li>Server or </li>
<li>Both – for Client and Server</li>
</ul>
<li>Entity Supported Deployment</li>
<ul>
<li>Server or </li>
<li>Both – for Client and Server</li>
</ul>
</ul>
<h3>How do I use it?</h3>
<p>Usually, I know what Entity I am going to work with so I start there and filter the <u>Primary Entity</u> based on that information.</p>
<p>Next, I try and locate the <u>Message Name</u> that I might need. Now this sounds simple, but in certain cases, it&#039;s really hard to determine what exact message you should connect with.</p>
<p>In that case, I will sometimes create steps that monitor each possible message, connect my debugger to IIS, then execute the CRM operation of interest so that I see what message is actually being passed through to my plugin.</p>
<p>You can find the message in the Execution Context&#039;s <a href="http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.ipluginexecutioncontext_properties.aspx" target="_blank">MessageName</a> property.</p>
<p>&#160;</p>
<h3>Option 2</h3>
<p>A second option is to look in the SDK help file itself for topics like: </p>
<blockquote><p>Email (E-mail) Entity Messages and Methods</p>
</blockquote>
<p>Where you will find information like this:</p>
<p><a href="http://blogs.infinite-x.net/wp-content/uploads/2012/01/image11.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.infinite-x.net/wp-content/uploads/2012/01/image_thumb11.png" width="404" height="316" /></a></p>
<p>This should be the same (mostly) list of Messages found in the Excel file. Just remove the word &quot;Request&quot; from the end of the Message Name found in the SDK help file and you should have a match.</p>
<p>&#160;</p>
<h3>Conclusion</h3>
<p>Well, that&#039;s about it for today. Hopefully this will help you in your plugin development efforts.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2012/01/17/crm-sdk-deep-dive-plugin-messages-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ribbons and Entities</title>
		<link>http://blogs.infinite-x.net/2011/12/26/ribbons-and-entities/</link>
		<comments>http://blogs.infinite-x.net/2011/12/26/ribbons-and-entities/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 08:57:00 +0000</pubDate>
		<dc:creator>Mitch Milam</dc:creator>
				<category><![CDATA[CRM 2011]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[Dynamics CRM]]></category>
		<category><![CDATA[CRM2011]]></category>
		<category><![CDATA[MSCRM]]></category>
		<category><![CDATA[MSCRM2011]]></category>
		<category><![CDATA[MSDYNCRM]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/?p=1139</guid>
		<description><![CDATA[When customizing the ribbon of an Entity, it is important to note that the ribbon is part of the Entity itself, not the Application Ribbon. This means that if you are creating a solution, you only have to include the Entity component, not the Application Ribbon component.]]></description>
			<content:encoded><![CDATA[<p>When customizing the ribbon of an Entity, it is important to note that the ribbon is part of the Entity itself, not the Application Ribbon.</p>
<p>This means that if you are creating a solution, you only have to include the Entity component, not the Application Ribbon component.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2011/12/26/ribbons-and-entities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Export JavaScript Utility Updated</title>
		<link>http://blogs.infinite-x.net/2011/12/22/export-javascript-utility-updated-2/</link>
		<comments>http://blogs.infinite-x.net/2011/12/22/export-javascript-utility-updated-2/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 20:45:54 +0000</pubDate>
		<dc:creator>Mitch Milam</dc:creator>
				<category><![CDATA[CRM 2011]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[Dynamics CRM]]></category>
		<category><![CDATA[CRM2011]]></category>
		<category><![CDATA[MSCRM]]></category>
		<category><![CDATA[MSCRM2011]]></category>
		<category><![CDATA[MSDYNCRM]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/?p=1133</guid>
		<description><![CDATA[I&#039;ve updated my Export JavaScript for CRM 2011 to fixe a small bug related to the naming conventions of web resources. This cause the JavaScript not to be exported. You can download the update from the Free Utilities page: http://blogs.infinite-x.net/free-utilities See this post for more detail about the process.]]></description>
			<content:encoded><![CDATA[<p>I&#039;ve updated my Export JavaScript for CRM 2011 to fixe a small bug related to the naming conventions of web resources. This cause the JavaScript not to be exported.</p>
<p>You can download the update from the Free Utilities page:</p>
<p><a href="http://blogs.infinite-x.net/free-utilities" target="_blank">http://blogs.infinite-x.net/free-utilities</a></p>
<p>See this <a href="http://blogs.infinite-x.net/2011/07/04/export-javascript-utility-updated/">post</a> for more detail about the process.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2011/12/22/export-javascript-utility-updated-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Developer Tip &#039;o the Day: Solutions and the SiteMap</title>
		<link>http://blogs.infinite-x.net/2011/12/19/developer-tip-o-the-day-solutions-and-the-sitemap/</link>
		<comments>http://blogs.infinite-x.net/2011/12/19/developer-tip-o-the-day-solutions-and-the-sitemap/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 08:29:00 +0000</pubDate>
		<dc:creator>Mitch Milam</dc:creator>
				<category><![CDATA[CRM 2011]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[Dynamics CRM]]></category>
		<category><![CDATA[CRM2011]]></category>
		<category><![CDATA[MSCRM]]></category>
		<category><![CDATA[MSCRM2011]]></category>
		<category><![CDATA[MSDYNCRM]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/2011/12/19/developer-tip-o-the-day-solutions-and-the-sitemap/</guid>
		<description><![CDATA[This week I learned, again, the importance of including the SiteMap in a custom solution. If you do not add the SiteMap to your solution, and you&#039;ve specified that custom entities be displayed within it, then CRM will not be instructed to modify the SiteMap to when the Solution is imported and your custom entity [...]]]></description>
			<content:encoded><![CDATA[<p>This week I learned, again, the importance of including the SiteMap in a custom solution.</p>
<p>If you <strong>do not</strong> add the SiteMap to your solution, and you&#039;ve specified that custom entities be displayed within it, then CRM will not be instructed to modify the SiteMap to when the Solution is imported and your custom entity will not be displayed as you expect.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2011/12/19/developer-tip-o-the-day-solutions-and-the-sitemap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

