Recently I upgraded one of my virtual machine with Dynamics CRM 2011 to Dynamics CRM 2013. That instance contains my old solutions from previous learning and testing. One of the solution contains several plugins to be triggered on Update request.
With the new auto-save feature in Dynamics CRM 2013, any modification to the form will be automatically saved every 30 seconds or when the user navigated away from the from (click other records or navigate to different page).
There was an unexpected performance issue every a couple seconds (30 seconds to be exact) when I was working with the new CRM 2013 form. After I traced the source of the problem, it was coming from the plugin that triggered every 30 seconds by the auto-save. The new auto-save functionality will trigger the plugin because I was not filtered the plugin on the required fields (attributes). This problem never happened on CRM 2011 as the update request will only be triggered through “Save” button with manual user interaction.
I think it is a best practice to filter the update plugin to only be triggered on the related attributes, to achieve that:
Method 1: through Plugin Registration Tool, on the step registered:
Method 2: through Developer Toolkit in Visual Studio, on the step registered:
This would be a lesson learn in future to do the due-diligence in selecting the correct filter attributes for the plugin.