We are experiencing an error when writing in decimal values that are highly precise (greater than 6 decimal places), but are between 0 and 1. Here's a truncated version of what we see in Event Viewer:
Event code: 3005
Event message: An unhandled exception has occurred.
Exception information:
Exception type: FormatException
Exception message: Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseDecimal(String value, NumberStyles options, NumberFormatInfo numfmt)
at Microsoft.Crm.Application.Platform.AttributeCollection.CreateValueFromDecimalPropertyValue(String name, Object value)
at Microsoft.Crm.Application.Platform.AttributeCollection.SetEntityProperty(Entity entity, String name, String childAttributeName, Object parentProperty, AttributeMetadata attributeMetadata, Object value, IOrganizationContext context)
at Microsoft.Crm.Application.Platform.AttributeCollection.Insert(String name, Object value, Boolean throwIfKeyExists)
at Microsoft.Crm.Application.Platform.EntityProxy.SetData(XmlNode entityElement)
at Microsoft.Crm.Application.Forms.EndUserForm.RetrieveParametersForEventDefault()
at Microsoft.Crm.Application.Forms.EndUserForm.Initialize(Entity entity)
at Microsoft.Crm.Application.Forms.CustomizableForm.Execute(Entity entity, FormDescriptor fd)
at Microsoft.Crm.Application.Components.PageHandlers.RecordPageHandler.ConfigureFormWrapper()
at Microsoft.Crm.Application.Components.Utility.GenericEventProcessor.RaiseEvent(String eventName)
at Microsoft.Crm.Application.Controls.PageManager.OnPreRender(EventArgs e)
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
In our tests, we are able to enter a value like 0.0000010000, and it will save without issue, but entering 0.0000001000 gives us the error. If the value is GREATER than 1 but highly precise (like 1.0000001000), it WILL save without error.
Can anyone else replicate this error? We receive the error both when entering the data on a CRM form, and via the SDK. The Decimal field is added to a custom entity, and is set as follows:
Precision: 10
Minimum value: -1,000,000,000.0000000000
Maximum value: 1,000,000,000.0000000000
IME mode: auto
We have CRM2011 installed on premise with Rollup 13. Let me know if I can provide any further detail.