Just start typing...
Technologies

Custom code validation tool for Microsoft Dynamics CRM 2011&2013

Published December 5, 2013

The code retrieves all web resources and then each line of the code is analyzed against a predefined set of patterns (regular expressions). Find the list of patterns specific for IE and old CRM API form, and examples of correct and incorrect code validation.

The code retrieves all web resources and then each line of the code is analyzed against a predefined set of patterns (regular expressions).

The list of patterns specific for IE

.htc .childNodes[ .Sort .setFirstElementFocus(
<msxsl:script .contains( .SelectedIndex .loadXml
jscript .openStdDlg( .InnerText .load(
<xml dblclick .OptionsXml .transformNode(
crmForm.all oncontextmenu .Precision .childNodes.length
document.selection .dir .DataXml .hasChildNodes
.createTextRange .innerText .Text .firstChild
onfocusout .outerHTML .Value .lastChild
onfocusin .currentStyle .DisplayValue .nextSibling
onmouseleave .styleFloat .WillSubmit .previousSibling
onmouseenter opacity= .DataChangeHandler .SetFocus(
style.textDecorationLineThrough .isContentEditable .BypassValidation .FireOnChange
document.appendChild window.navigate .AllowFormFocus .Min
.insertRow( .srcElement ._bSaving .Max
cursor:hand .returnValue ._htcInitCompleted .DataValue
.item[ document.all .SubmitFormId .isDirty
.rules .createNode .NO_DATA .Disabled
.parentElement .insertCell( .RefreshOnSave .SelectedOption
.tags( document.styleSheets( .Visible .SelectedText
<script for= rows( .ForceSubmit .SortingEnum
:: cells( .Form event.cancelBubble
.selectSingleNode document.forms( .TimeControl window.openPopup
.selectNodes options( .isInitialized .ObjectTypeName
.document.activeElement options.remove .allowblankdate .RequiredLevel
.xml .add( .IsMoney .MaxLength
ActiveXObject .insertAdjacentElement .IsBaseCurrency Enumerator
.attachevent .insertAdjacentHTML .CurrencySymbol .ObjectId
debugger .Save( .CurrencyPrecision .TrimValue
.additionalparams .SaveAndClose( .IgnoreCurrencySymbol .text
.getElementById .FormType .IgnoreRange  
window.location.href .ObjectTypeCode .PrecisionChangeHandler  

The list of patterns specific for old CRM API form

‘crmGrid’ .InitializeLookupPresence .Clear
.ShowAppNav .QueryLookupPresence .Lookup
.IsValid() .SetTime .AddItems
.SubmitCrmForm .AddOptionGroup .Items
.IsReadyToClose .InsertSlugControl ORG_UNIQUE_NAME
.detachCloseAlert .UpdateOperatorControl ORG_LANGUAGE_CODE
.BuildXmlToSubmitForm .UpdateInnerHtml SERVER_URL
.SetFieldReqLevel .DeleteDataSlug USER_LANGUAGE_CODE
.SetAllFieldsToNonReqLevel .CurrentOperatorIsClear .DefaultValue
.displayMissingValue .CalculateDataSlugTabIndex crmForm.all
.ModifyMinimumTabHeight .refreshTimeValue .DataValue
.GetXml .attachAsOnlyHandler .SetFocus()
.ParseXml .GetLookupControl .FireOnChange()
.RaiseOnChange .RequiredLevel .IsDirty()
.CreateInnerSlug crmForm.Save() .ForceSubmit
.ResetToDefault crmForm.SaveAndClose() .Disabled
.ResetDefault .FormType .GetLabelControl
.FormatDuration .ObjectId .FireSaveEvent
.AddDependentParameters .ObjectTypeName .HideField
.AddParam .ObjectTypeCode .VerifyFieldIsSet
.AddBindingColumn IsOnline() .SetDeferredCmdId
.getLookupField IsOutlookClient() .CheckFormDirty
.RemoveItem IsOutlookLaptopClient() .CloseAlertAttached
.UpdateItem IsOutlookWorkstationClient() .SetViewportTabSection
.IsPermissibleType GenerateAuthenticationHeader .RunReport
.RaiseOnAfterSelectEvent /mscrmservices/2007/crmservice.asmx .Print
.RaiseOnChangeEvent /mscrmservices/2007/metadatadataservice.asmx .BuildXml
.RaiseSetAdditionalParamsEvent .GetLookupTypeIcon .GetDataXml
.AreValuesDifferent .attachEventHandler .SetCurrency
.RefreshLookupItemImage    

The resources where matches are found are listed in the appropriate drop down lists
When a resource from the list is found, the web resource text is loaded and the issue is highlighted in Blue (for IE issue) and in Red (for all browsers / old api)

Below is the example of correct code validation:

Below is the example of correct code validation

However sometimes code validation tool can find errors where the code looks correct:

However sometimes code validation tool can find errors where the code looks correct

You can look at the post here on our website that provides a number of useful examples how to replace the code identified by the validation tool with the new one.

Related Services

MS CRM Custom Development & Customization
MS CRM Maintenance and Support of CRM users
Microsoft Dynamics 365 for Finance and Operations (Axapta)

How we process your personal data

When you submit the completed form, your personal data will be processed by WaveAccess USA. Due to our international presence, your data may be transferred and processed outside the country where you reside or are located. You have the right to withdraw your consent at any time.
Please read our Privacy Policy for more information.