Remove attributes from form which cannot be removed

There are some attributes on CRM default forms which you cannot remove. This post will show you how you can do this anyway. While doing so, please keep in mind that Microsoft must have good reasons to fix attributes on the form. Removing this might have implications, as always have a good backup ready.

The steps you need to follow to remove are:
- Export customizations for the specific entity
- Modify the form in the customizations xml
- Import the modified customizations

Since most of you are well known with CRM I will skip the Export and Import of customizations. If you need assistance with this, then don't try this change anyway :) To modify the customizations, open the file in notepad or another XML editor. In this file look for this path:

ImportExportXml - Entities - Entity - FormXml - forms - entity - form - tabs

Within tabs look for the tab with the correct name and similar for the sections. Get a bit familiar with the section xml once you have found the correct section. You'll find that there are a couple of lines that you need to remove. This is the example for the subjectid on the case entity:

<cell id="{a9859c32-0cdc-41b5-8e7e-3eb173cab4a8}">
<label description="Onderwerp" languagecode="1043" />
<label description="Subject" languagecode="1033" />
<control id="subjectid" classid="{270BD3DB-D9AF-4782-9025-509E298DEC0A}" datafieldname="subjectid" />

Attributes which are locked on the form includes the following:
case - subjectid
case - contractid
case - contractdetailid

Note: Some of the attributes are used in hidden javascript codes. For instance the case contract contractid is used in the script for the customer onchange. You can also look at removing those scripts from the customizations file.


jean-paul geelhoed said...

Hi Ronald,

Great post...
Are there any solutions, workarounds to remove the non-used fields from CRM.

When using the Advanced find feature all the fields are selectable, that's great, but for some organizations that is very confusing...

Greg said...

@jean-paul geelhoed
Advanced Find shows all attributes where their Searchable field is set to "Yes". Setting this to "No" stops them being used when defining criteria in an Advanced Find.

I'm not aware of any way to prevent those attribute from being selecting when defining the columns in an advanced find, though.