<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace Site Server v5.11.81 (http://www.squarespace.com/) on Tue, 29 May 2012 04:34:32 GMT--><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>MrDave's (David Yack) CRM Blog!</title><link>http://crm.davidyack.com/journal/</link><description></description><lastBuildDate>Sun, 13 May 2012 06:20:51 +0000</lastBuildDate><copyright></copyright><language>en-US</language><generator>Squarespace Site Server v5.11.81 (http://www.squarespace.com/)</generator><item><title>Working with Field Level Security from a Plugin</title><dc:creator>David Yack</dc:creator><pubDate>Sun, 13 May 2012 06:20:50 +0000</pubDate><link>http://crm.davidyack.com/journal/2012/5/13/working-with-field-level-security-from-a-plugin.html</link><guid isPermaLink="false">82353:708256:16235015</guid><description><![CDATA[<p>Question: I was wondering if a plugin could update a field that is protected by Field Level Security (FLS), or if that is blocked in the platform</p>  <p>Answer: It Depends</p>  <p>If the plugin is running pre-operation stage and is modifying the entity image that is input parameters before the platform operation occurs then it doesn’t matter if the user that caused the operation to occur has permission to update the secured field the plugin will still be able to modify the value. It also doesn’t matter the context in which the plugin was registered to run in the plugin registration tool. The following is simple example of modifying new_secretcode that is enabled for field level security. This code was run from a plugin registered on create of account in the pre-operation stage.</p>  <p>var context = serviceProvider.GetService(typeof(IPluginExecutionContext)) as IPluginExecutionContext;</p>  <p>var target = context.InputParameters[&quot;Target&quot;] as Entity;</p>  <p>target[&quot;new_secretcode&quot;] = &quot;1234&quot;;</p>  <p>To dive a little bit deeper let’s explore what happens when a plugin runs in post operation stage and attempts to create a record and populate the value of a secured field. For this example, I’ve modified the plugin to create a new account anytime a contact is created. As part of that it gets an organization service that runs in the context of the user that caused the platform operation to run. When run by the administration user the plugin fires and creates the account without any problem. When the contact was created by a user that did not have access to update secret code you would see the following error:</p>  <p><a href="http://crm.davidyack.com/resource/Windows-Live-Writer-75d15b811356_A5B3-?fileId=18171761" rel="lightbox"><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="clip_image001" border="0" alt="clip_image001" src="http://crm.davidyack.com/resource/Windows-Live-Writer-75d15b811356_A5B3-?fileId=18171762" width="389" height="100" /></a></p>  <p>Here’s the revised code that is running when a contact is created and attempts to create the account and update the secured field:</p>  <p>var context = serviceProvider.GetService(typeof(IPluginExecutionContext)) as IPluginExecutionContext;</p>  <p>var target = new Entity(&quot;account&quot;);</p>  <p>target[&quot;name&quot;] = &quot;test 3&quot;;</p>  <p>target[&quot;new_secretcode&quot;] = &quot;1234&quot;;</p>  <p>var sf = serviceProvider.GetService(typeof(IOrganizationServiceFactory)) as IOrganizationServiceFactory;</p>  <p>var service = sf.CreateOrganizationService(Guid.Empty);</p>  <p>service.Create(target);</p>  <p>The key line to pay attention to above is the CreateOrganizationService call that we pass Guid.Empty. Passing Guid.Empty instructs the method to give back an organization service configured to run in the context of the user. If instead we passed null to that method the organization service would be configured to run in the system context and the plugin would be able to update the secured field.</p>]]></description><wfw:commentRss>http://crm.davidyack.com/journal/rss-comments-entry-16235015.xml</wfw:commentRss></item><item><title>Export&amp;ndash;Missing Required Components</title><dc:creator>David Yack</dc:creator><pubDate>Tue, 20 Mar 2012 06:53:44 +0000</pubDate><link>http://crm.davidyack.com/journal/2012/3/20/exportndashmissing-required-components.html</link><guid isPermaLink="false">82353:708256:15505721</guid><description><![CDATA[<p>This has been happening for a while now, but I seem to see it come up more often.&#160; The scenario is you just created a solution, added existing entity Contact to it.&#160; You’ve added a single custom attribute&#160; and added the attribute to the form.&#160; You then go to export the solution to move it to another organization and you see the following dialog…</p>  <p><a href="http://crm.davidyack.com/resource/Windows-Live-Writer-ExportMissing-Required-Components_B58-?fileId=17216470" rel="lightbox"><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://crm.davidyack.com/resource/Windows-Live-Writer-ExportMissing-Required-Components_B58-?fileId=17216471" width="463" height="165" /></a></p>    <p>This is a valid dialog to see at this point, but not for why it is showing itself now.&#160; The real purpose of this dialog is to inform you of a missing component, a dependency that is not included in your solution and if not already in the target organization will block the import of this solution.&#160; As best I can tell what you are seeing above for this specific scenario is a bug…it shouldn’t be showing.&#160; </p>  <p>The risk here is you get so accustomed to seeing it for system entities that aren’t an issue you might miss the real deal.&#160; So stay focused look past the system entities and make sure you agree with what is on the list.&#160; Which should be true components that you are dependent on.&#160; By the way, one easy way to keep this list short is to build your solution as you go.&#160; As you use existing components ,add existing of them to your solution.&#160; If you create new components, create them from within the custom solution.&#160; It makes for less work when you go to publish your solution in the future.</p>]]></description><wfw:commentRss>http://crm.davidyack.com/journal/rss-comments-entry-15505721.xml</wfw:commentRss></item><item><title>Security update for ASP.NET and CRM</title><dc:creator>David Yack</dc:creator><pubDate>Thu, 29 Dec 2011 21:21:41 +0000</pubDate><link>http://crm.davidyack.com/journal/2011/12/29/security-update-for-aspnet-and-crm.html</link><guid isPermaLink="false">82353:708256:14372590</guid><description><![CDATA[<p>Today Microsoft released a security update for a vulnerability with ASP.NET.&#160; If you are using CRM via CRM Online this has already been patched for you.&#160; If you are running CRM on-premise you need to take action. </p>  <p>The security advisory can be found <a href="http://technet.microsoft.com/en-us/security/advisory/2659883">here</a>.&#160; The urgency around this is related to details being released at a security conference yesterday.</p>]]></description><wfw:commentRss>http://crm.davidyack.com/journal/rss-comments-entry-14372590.xml</wfw:commentRss></item><item><title>Turn on Communication and Collaboration as needed in CRM 2011</title><dc:creator>David Yack</dc:creator><pubDate>Tue, 11 Oct 2011 02:50:29 +0000</pubDate><link>http://crm.davidyack.com/journal/2011/10/11/turn-on-communication-and-collaboration-as-needed-in-crm-201.html</link><guid isPermaLink="false">82353:708256:13152468</guid><description><![CDATA[<p>In prior versions of CRM you had to decide at the time you created an entity if you wanted things like Notes, Activities etc. enabled.&#160; Now in CRM 2011 you can defer that decision and make it anytime in the future.&#160; When you had to make a final decision at time of entity creation it used to be always a good idea to turn them on if you “Think” you might ever need them.&#160; Now, I would say the opposite, don’t turn them on till you need them.</p>  <p><a href="http://crm.davidyack.com/resource/Windows-Live-Writer-Turn-on-Communication-and-Collaboration-_123DB-?fileId=14571331" rel="lightbox"><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://crm.davidyack.com/resource/Windows-Live-Writer-Turn-on-Communication-and-Collaboration-_123DB-?fileId=14571333" width="537" height="184" /></a></p>  <p>Keep in mind that the + after the item indicates that once you turn it on it can’t be turned off. </p>  <p>Sometimes the toughest part of learning a new version is forgetting old version habits!</p>]]></description><wfw:commentRss>http://crm.davidyack.com/journal/rss-comments-entry-13152468.xml</wfw:commentRss></item><item><title>CRM + Silverlight Book Released</title><dc:creator>David Yack</dc:creator><pubDate>Fri, 09 Sep 2011 16:43:35 +0000</pubDate><link>http://crm.davidyack.com/journal/2011/9/9/crm-silverlight-book-released.html</link><guid isPermaLink="false">82353:708256:12789540</guid><description><![CDATA[<table border="0" cellspacing="0" cellpadding="2" width="536"><tbody>     <tr>       <td valign="top" width="200"><a href="http://crm.davidyack.com/resource/Windows-Live-Writer-CRM--Silverlight_8EBF-?fileId=14072572" rel="lightbox"><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="slpluscrm" border="0" alt="slpluscrm" src="http://crm.davidyack.com/resource/Windows-Live-Writer-CRM--Silverlight_8EBF-?fileId=14072573" width="162" height="193" /></a></td>        <td valign="top" width="334">         <p>Silverlight has always been a good fit for extending the Microsoft Dynamics CRM user experience.&#160; CRM 2011 takes that a step further by providing first class support including the ability to host Silverlight content as web resources on the server.&#160; Silverlight can be used for a little widget on a form to a full blown rich page of content.&#160; In fact, we start out the book by talking about where it is a good fit and where it isn’t.</p>       </td>     </tr>      <tr>       <td valign="top" width="200">&nbsp;</td>        <td valign="top" width="334">&nbsp;</td>     </tr>   </tbody></table>  <p>The Silverlight + CRM book takes the best parts of our Silverlight Jumpstart book and adds a ton of CRM specific content.&#160; In fact I think its safe to say right now it’s the most CRM + Silverlight content found anywhere.&#160; We cover everything from where Silverlight can be used with CRM to how to use OData and the WCF services to perform data and service actions.&#160; You can read the full table of contents <a href="http://www.silverlightpluscrm.com/Home/Chapters">here</a>.</p>      <p>If you’ve purchased one of our other books check your e-mail we sent you a really good discount.&#160; If you haven’t bought one of our books or are just too lazy to look in your email here’s some codes to help you along as well.</p>  <table border="0" cellspacing="0" cellpadding="2" width="400"><tbody>     <tr>       <td valign="top" width="133">Discount Code</td>        <td valign="top" width="133">Product</td>        <td valign="top" width="133">Price</td>     </tr>      <tr>       <td valign="top" width="133">DaveBlog</td>        <td valign="top" width="133">ebook</td>        <td valign="top" width="133">$19.99</td>     </tr>      <tr>       <td valign="top" width="133">DaveBlogPrint</td>        <td valign="top" width="133">print</td>        <td valign="top" width="133">$34.99</td>     </tr>      <tr>       <td valign="top" width="133">DaveBlogBoth</td>        <td valign="top" width="133">print + ebook</td>        <td valign="top" width="133">$54.98</td>     </tr>   </tbody></table>  <p>   <br />You can find the book site at <a href="http://www.silverlightpluscrm.com">http://www.silverlightpluscrm.com</a> </p>  <p>Finally, I know a number of you have been asking me about updates to our full CRM book CRM as a Rapid Application Development Platform. We have been crazy busy working on that as well. In fact, last night was another late night!&#160; Part of what takes so long is not just updating content but making sure we cover new CRM 2011 features.&#160; Got ideas for either of these books of stuff we should cover?&#160; Send it over but only if you don’t mind if we write about it!</p>]]></description><wfw:commentRss>http://crm.davidyack.com/journal/rss-comments-entry-12789540.xml</wfw:commentRss></item><item><title>CRM 2011 Dialog Response Data Type Matters</title><dc:creator>David Yack</dc:creator><pubDate>Sat, 03 Sep 2011 07:19:37 +0000</pubDate><link>http://crm.davidyack.com/journal/2011/9/3/crm-2011-dialog-response-data-type-matters.html</link><guid isPermaLink="false">82353:708256:12716480</guid><description><![CDATA[<p>I’ve seen a number of people using CRM 2011 Dialogs run into the issue of not setting your data type on a Prompt and Response.&#160; Before I get too far, if you haven’t looked at Dialogs in CRM 2011 jump over <a href="http://channel9.msdn.com/Series/DynamicsCRM2011/Processes-Dialogs">here</a> and watch this video first before you continue.&#160; The scenario we are talking about here is imagine if you have a OptionSet on an entity and you want to collect a value from a user running a Dialog and set the OptionSet value on the entity from the response of the user.&#160; For our discussion imagine if you created a FavoriteColor option set on Contact and you are updating it by running a dialog that person running the dialog can collect the contacts favorite color.&#160; So I probably have a Page in my dialog that has a Prompt and Response that looks something like the following :</p>  <p><a href="http://crm.davidyack.com/resource/Windows-Live-Writer-CRM-2011-Dialog-Response-Data-Type-Matte_D35-?fileId=13976494" rel="lightbox"><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://crm.davidyack.com/resource/Windows-Live-Writer-CRM-2011-Dialog-Response-Data-Type-Matte_D35-?fileId=13976495" width="421" height="193" /></a></p>  <p>Next, I setup the response detail and choose a response type of Option Set.&#160; First of all, don’t confuse choosing Option Set here with anything to do with the Contact entity that has a real OptionSet attribute on it for the contacts favorite color. There is not currently anyway that you can pull those values&#160; and reuse them here to avoid duplication.&#160; Trust me I’ve suggested that be changes so hopefully we will see it in the future where you can simply reuse the values!</p>  <p><a href="http://crm.davidyack.com/resource/Windows-Live-Writer-CRM-2011-Dialog-Response-Data-Type-Matte_D35-?fileId=13976496" rel="lightbox"><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://crm.davidyack.com/resource/Windows-Live-Writer-CRM-2011-Dialog-Response-Data-Type-Matte_D35-?fileId=13976497" width="457" height="89" /></a></p>  <p>Notice that the Data Type is set by default to Text.&#160; This is where a lot of people fail to make the important change.&#160; You must set this to integer if you want to have any luck ever assigning the value collected to an OptionSet field on an entity.&#160; Another great reason to make sure you change it right away is the fact that you can’t change it after the prompt and response is saved unless you delete it and start over.&#160; You have been warned!</p>  <p><a href="http://crm.davidyack.com/resource/Windows-Live-Writer-CRM-2011-Dialog-Response-Data-Type-Matte_D35-?fileId=13976498" rel="lightbox"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 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://crm.davidyack.com/resource/Windows-Live-Writer-CRM-2011-Dialog-Response-Data-Type-Matte_D35-?fileId=13976499" width="244" height="72" /></a></p>  <p>In the mean time you need to setup your favorite colors using the Response Values section of the form as you can see below.</p>  <p><a href="http://crm.davidyack.com/resource/Windows-Live-Writer-CRM-2011-Dialog-Response-Data-Type-Matte_D35-?fileId=13976500" rel="lightbox"><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://crm.davidyack.com/resource/Windows-Live-Writer-CRM-2011-Dialog-Response-Data-Type-Matte_D35-?fileId=13976501" width="460" height="120" /></a></p>  <p>So for our example we’ve added Red, Green and Blue or RGB!&#160; The Value field on the right is really important if you are trying to collect values that will be used to set OptionSet values on an entity if that is the case these values must match the values of the attribute OptionSet.&#160; So for example&#160; they may be like 100,0001 or some large number to keep them unique if that is the case you MUST use the same values here if you ever expect it to work.</p>  <p>Once you take care of those two things using Dialogs to collect OptionSet values is possible.&#160; Hopefully in the future Dialogs will be enhanced so we can reuse the OptionSet values from the global definition.&#160;&#160; </p>  <p>What other features would you like to see Dialogs have?</p>]]></description><wfw:commentRss>http://crm.davidyack.com/journal/rss-comments-entry-12716480.xml</wfw:commentRss></item><item><title>Fast Path to Views and Records</title><dc:creator>David Yack</dc:creator><pubDate>Sat, 03 Sep 2011 06:54:43 +0000</pubDate><link>http://crm.davidyack.com/journal/2011/9/3/fast-path-to-views-and-records.html</link><guid isPermaLink="false">82353:708256:12716306</guid><description><![CDATA[<p>You’ve probably figured out one of the things they’ve done in CRM 2011 is reduce the amount of clicks to get to things.&#160; Here’s one that you might not have seen yet.&#160; If you look at your sitemap you will see the usual suspects Account, Contacts and whatever else you have hanging around there. It probably looks something like the following if you haven’t changed it a bunch:</p>  <table border="0" cellspacing="0" cellpadding="2" width="400"><tbody>     <tr>       <td valign="top" width="133"><a href="http://crm.davidyack.com/resource/Windows-Live-Writer-e1f777cd4a1d_8AD-?fileId=13976390" rel="lightbox"><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://crm.davidyack.com/resource/Windows-Live-Writer-e1f777cd4a1d_8AD-?fileId=13976391" width="189" height="225" /></a></td>        <td valign="top" width="175"><strong><font color="#ff0000" size="2">After Mouse Over </font></strong></td>        <td valign="top" width="91"><a href="http://crm.davidyack.com/resource/Windows-Live-Writer-e1f777cd4a1d_8AD-?fileId=13976392" rel="lightbox"><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://crm.davidyack.com/resource/Windows-Live-Writer-e1f777cd4a1d_8AD-?fileId=13976393" width="187" height="229" /></a></td>     </tr>   </tbody></table>  <p><font color="#000000" size="2">     <br />See that little arrow to the right side of the Accounts item?&#160; Click right there and you now see the following </font></p>  <p><a href="http://crm.davidyack.com/resource/Windows-Live-Writer-e1f777cd4a1d_8AD-?fileId=13976394" rel="lightbox"><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://crm.davidyack.com/resource/Windows-Live-Writer-e1f777cd4a1d_8AD-?fileId=13976395" width="360" height="291" /></a></p>  <p>So quickly you can Create a New Record, Go to a Specific System or Personal View and navigate to recently viewed records.&#160; Those are all specific to the entity that you clicked on.&#160; You can get global recently viewed and even pin them by looking here:</p>  <p><a href="http://crm.davidyack.com/resource/Windows-Live-Writer-e1f777cd4a1d_8AD-?fileId=13976396" rel="lightbox"><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://crm.davidyack.com/resource/Windows-Live-Writer-e1f777cd4a1d_8AD-?fileId=13976397" width="444" height="158" /></a></p>  <p>Notice the little push pin to the right of each item.&#160; Using this you can pin them to the list.&#160; This has the obvious use for the sales people to pin their 5 accounts they are assigned but it also can be used for any other record type so I think it has value for most people using CRM.</p>  <p>What’s your favorite feature in CRM 2011 that others might not have discovered?</p>]]></description><wfw:commentRss>http://crm.davidyack.com/journal/rss-comments-entry-12716306.xml</wfw:commentRss></item><item><title>OData/Silverlight&amp;ndash;Issue with Relationships</title><dc:creator>David Yack</dc:creator><pubDate>Wed, 03 Aug 2011 01:08:43 +0000</pubDate><link>http://crm.davidyack.com/journal/2011/8/3/odatasilverlightndashissue-with-relationships.html</link><guid isPermaLink="false">82353:708256:12373722</guid><description><![CDATA[<p>A little while back I <a href="http://crm.davidyack.com/journal/2011/6/21/donrsquot-trip-on-your-own-feet-when-using-odata.html">blogged</a> about how when using the default behavior of OData from Silverlight all properties are sent with each server update by default.&#160; I also included in that blog post a link to the CRM Team blog post with a work around you can find that <a href="http://blogs.msdn.com/b/crm/archive/2011/06/20/updating-records-using-the-rest-endpoint-for-web-resources-and-silverlight.aspx">here</a>.</p>  <p>The workaround is designed to track properties that are changed on an entity and only ship those to the server during a create or update.&#160; Turns out, the work around doesn’t appear to send N:1 relationships to the server depending on how you set or modify the value of the property. </p>  <p>Imagine you have an entity Book and the Book Entity had a N:1 relationship to Contact and a attribute crmbook_contactid was created on the entity.&#160; If you set the value of this like the following:</p>  <p>bookInstance.crmbook_contactid = new EntityReference {id=idValue,Contact.LogicalName};</p>  <p>You will find this won’t send the value to the server. If you are curious, the id and logicalname properties are marked as changed in the tracking of what is dirty, but not the crmbook_contactid property.&#160; What I have found to work is the following:</p>  <p>First, Create the entity Reference</p>  <p>var myRef = new EntityReference {id=idValue,Contact.LogicalName};</p>  <p>Then set the value</p>  <p>bookInstance.crmbook_contactid = myRef;</p>  <p>Setting it this way I found properly triggered the change notification for crmbook_contactid causing it to be marked as dirty and sent as part of the create or update.</p>]]></description><wfw:commentRss>http://crm.davidyack.com/journal/rss-comments-entry-12373722.xml</wfw:commentRss></item><item><title>Tales from the Sandbox&amp;ndash;Constructor Exceptions</title><dc:creator>David Yack</dc:creator><pubDate>Fri, 29 Jul 2011 07:30:51 +0000</pubDate><link>http://crm.davidyack.com/journal/2011/7/29/tales-from-the-sandboxndashconstructor-exceptions.html</link><guid isPermaLink="false">82353:708256:12317291</guid><description><![CDATA[<p>Sometimes when you play in the sandbox you can get sand kicked in the face.&#160; That was the case with building this plug-in thought I would share the story with you in case it saves you a few minutes.&#160; </p>  <p>You probably know by now that if you build a plugin that runs in the sandbox it is running in partial trust.&#160; In fact you might have even had it kill your plug-in when you executed it due to a security violation.&#160; Many times its really obvious what is going on, and then other times like this one it might be elusive what the problem is.</p>  <p>This story started with building a new plug-in and trying to run it.&#160; All it would produce was a simple “Security Exception” message on invocation.&#160; No trace, nothing.&#160; This started in on-line so I took it on-premise, tried it there same thing.&#160; Checked tracing log, nothing useful.</p>  <p>I then tried to see if I could reproduce the exception outside of CRM.&#160; The quickest way I found to get a partial trust environment was a simple console application – go to security settings and turn on Click Once, and set it for partial trust.&#160; By default this is pretty locked down so you might find it too restricting but for some scenarios I think it might be helpful.&#160; In fact it did identify one small thing that was wrong, but in the end I still got the same Security Exception message.</p>  <p>After gutting the plugin to nothing much left and still getting the error it was obvious I was missing something obvious.&#160; What I failed to reproduce and/or check was the constructor getting called that took the config/secure config and in this case that was causing an exception, that exception ultimately hit some non sandbox friendly code in the constructor and killed the execution.&#160; The net result was the simple Security Exception message with no other details.&#160; So if you get that simple message – check your constructor.</p>]]></description><wfw:commentRss>http://crm.davidyack.com/journal/rss-comments-entry-12317291.xml</wfw:commentRss></item><item><title>Don&amp;rsquo;t trip on your own feet when using OData</title><dc:creator>David Yack</dc:creator><pubDate>Tue, 21 Jun 2011 05:35:40 +0000</pubDate><link>http://crm.davidyack.com/journal/2011/6/21/donrsquot-trip-on-your-own-feet-when-using-odata.html</link><guid isPermaLink="false">82353:708256:11858662</guid><description><![CDATA[<p>CRM 2011 exposes a REST endpoint using the OData prototcol for working with data from Web Resources.&#160; When using the endpoint from Silverlight the most common way is to use the generated proxy classes that are produced when you add a reference to the endpoint or by running DataSvcUtil.&#160; When working with these generated classes and the default behavior of the WCF Data Services client all fields are sent to the server when an update is done on an object instead of just the changed fields.&#160; This has some undesired effects like auditing being updated more often then it should not to mention if you have workflows triggering on any of the fields they will detect the change as well even though your app may have only modified a single unrelated field.&#160; A particularly nasty surprise can be found also when you later decide to turn on field level&#160; security and the user doing the update doesn’t have access to the field all of a sudden you will get errors due to the update.</p>  <p>Not all is doom and gloom, you can fix this by a few tweaks to the generated data context to ensure that when changes are posted to the CRM server that only the modified fields are sent.&#160; You can find details and the code to add on the CRM team blog <a href="http://blogs.msdn.com/b/crm/archive/2011/06/20/updating-records-using-the-rest-endpoint-for-web-resources-and-silverlight.aspx">here</a>.</p>]]></description><wfw:commentRss>http://crm.davidyack.com/journal/rss-comments-entry-11858662.xml</wfw:commentRss></item></channel></rss>
