Thursday, April 26, 2012

CRM 2011: Disable Duplicate Detection Save button on Popup

So in my efforts to reduce usage of plug-ins in CRM 2011, I decided to re-evaluate the duplicate detection I had designed.

Quick Overview:
CRM 2011 allows you to create duplicate detection rules that will attempt to find duplicates on criteria you select. However, the user has the ability to save the record regardless. My first inclination was to create a couple of reference entities and utilize the Create and Update message of the plug-ins. After talking with some other CRM guys, I've learned that handling writing of any entity is just too costly.
This technique I will describe below will change the behavior of the duplicate detection view duplicates page. If you don't want to do this proceed no further.

1. Navigate to your CRM instance on your app server.
2. Navigate to \CRMWeb\Tools\DuplicateDetection\ViewDuplicates\
3. Edit this file in Visual Studio or Notepad.
4. Add this line to the ShowPage() javascript member or any member that is called by onLoad():
5. Save your change.

This simply disables the button as you can tell. The fun part would be to allow not allow by the current user's role. I suggest using WhoAmI() or any AJAX call to accomplish what you want.

Happy Coding!