Home > CRM, Javista, Microsoft, Microsoft Dynamics, Tips and Tricks > Tracking Enhancements in CRM

Tracking Enhancements in CRM

While working on any CRM installation, you will inevitably find yourself needing to record possible enhancements to the system. What better place to store that information than within CRM itself?

The Enhancement Entity

We will first need to create a new entity called Enhancement, which will look like this:


As you can see, the Ownership type is set to User so that each Enhancement can be assigned to a specific CRM user.

Since this Entity will generally be used by System Administrators or System Customizers, we’re only going to expose it in the Settings Area.

I’ve decided to name the Enhancement’s Primary Attribute Topic, which will record the Entity, area of action, or section within CRM that needs to be modified:


Adding Attributes

The following attributes are added to the Entity:

Attribute Type Length / Characteristics Required
Description of Change Nvarchar 255 Yes
Detail Ntext 2000 No
Expected Delivery Date Datetime Date Only No
Date Completed Datetime Date Only No
Status Picklist Values:




In Progress


On Hold



Priority Picklist Values:








Percent Complete Int Range: 0 – 100 No

Feel free to make changes to this structure as your needs dictate.

Status Attribute OnChange Event

We have just a minor amount of JavaScript in this solution, and it is really just to help with the final disposition of the Enhancement request.

If the user selects a Status of Completed, it will set the Percent Complete value to 100 and the Date Completed to today’s date. Afterwards, both attributes will be disabled so they can’t be changed:

if (event.srcElement.DataValue == ‘7’) /* completed */


crmForm.all.m3_percentcomplete.DataValue = 100;

crmForm.all.m3_percentcomplete.Disabled = true;

crmForm.all.m3_percentcomplete.ForceSubmit = true;

crmForm.all.m3_datecompleted.DataValue = new Date();

crmForm.all.m3_datecompleted.ForceSubmit = true;


else /* in case someone changes their mind */


crmForm.all.m3_percentcomplete.Disabled = false;

crmForm.all.m3_datecompleted.DataValue = null


Form OnLoad Event

To ensure that our form displays properly, we need to check the Percent Complete Attribute and if it set at 100%, we’ll disable the field:

if (crmForm.all.m3_percentcomplete.DataValue == 100)


crmForm.all.m3_percentcomplete.Disabled = true;


Final Result

And here is what the user will see when creating a new Enhancement Request:



Today I’ve shown you how to create a simple Enhancements Request system within CRM. You can expand on this solution by adding workflow automation to send out notifications, make sure deadlines are met, etc. with just a little more effort.

The customizations for this solution have been uploaded to the Free Utilities section of my blog for your convenience.



Mitch Milam

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: