Just start typing...
Technologies

Custom code validation tool for Microsoft Dynamics CRM 2011&2013

Published December 5, 2013
Let us tell you more about our projects
Start here

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.

Energy Management System for Mata Energy

The solution is aimed to facilitate sector-coupled energy supply, improving its efficiency. For the client we provided a consulting session, and developed an MVP.

Code refactoring and extensive testing of CBN TV’s CRM system

WaveAccess redesigned a single integrated CRM system based on Microsoft Dynamics 365 for CBN, an American TV network. Code refactoring and extensive testing ensured the correct operation of the system.

WaveAccess named among Clutch Global Leaders 2023

We're thrilled to announce that WaveAccess has been recognized as a winner of the Clutch Global Awards 2023 in the IoT, Cognitive Computing, and Microsoft Dynamics CRM categories. Clutch Global leaders are selected based on the platform’s strict methodology, emphasizing industry expertise and the ability to deliver results.
Go is a fairly common and popular language. It has easy syntax and good performance. Recently we have compared it with Kotlin and Java, and now we are sharing the results with you. 
Spring Framework has a lot of advantages when it is used for building Enterprise applications, but it may also have some disadvantages. For example, it can appear somewhat complicated, and it also consumes a lot of CPU resources. In this article we compare Spring with Micronaut and share the process and the results. 
In games in most cases you are faced with a lot of instantiations and disposes of objects but when you reach some amount of instantiations every second performance can degrade dramatically.

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.