Summary:
An error occurred in the Shewhart Chart when the result values were presented in scientific notation (i.e., values smaller than "0.000X"). This issue arises because SQL Server automatically converts very small values into engineering/scientific notation (e.g., "4.56E-4").
While SQL Server manages these values correctly, the Shewhart Chart was not designed to process them, leading to errors.
Affected Versions:
This issue was observed in Geobank 2024 (version 24.0.1564.1) and likely exists in earlier versions.
Error Message
When retrieving data with small float values in scientific notation, users encountered the following error:
Input string was not in a correct format.
System.FormatException: 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 System.Convert.ToDecimal(String value)
at Geobank.Shared.Controls.ShewhartChart.PopulateDataSeries(IServer server, IDataSource dataSource, String sqlQuery)
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Geobank.Shared.Controls.ShewhartChart.<UpdateSeriesWithUiAsync>d__172.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Geobank.Shared.Controls.ShewhartChart.<SeriesPropertyUpdated>d__175.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
Root Cause:
The error was traced to the Shewhart Chart attempting to read values from the ST_RESULT table in scientific notation. Specifically, when the result values were converted from the float data type, the system mistakenly interpreted them as strings, leading to a failure to convert these values back into decimal numbers.
Resolution:
Developers resolved the issue by modifying the Shewhart Chart's code to handle values properly in scientific notation.
The R Charts also exhibited the same issue and were fixed in the same patch.
The resolved version: Geobank 2024.5 (Build: 24.5.1685.0)
Workaround
There is no direct workaround for versions prior to the fix one.
Users are advised to update to the Geobank 2024.5 version or later to resolve this issue.
Additional Notes
- The fix has been applied to both Shewhart and R Charts.
- While the fix for the Shewhart Chart in Geobank version 2024.5 has been confirmed, thorough testing of other Sample Tracker (ST) components may be recommended.
- When high-precision data (accuracy greater than five decimal places) is required in the Sample Tracker, the fixed Geobank version 2024.5+ should be used to avoid data loading issues.
- It's important to note that extremely small float values (such as those causing this error) may indicate an incorrect setup of UOM conversion coefficients in the metadata. Specifically, issues can arise with conversions between PPM (parts per million), PPB (parts per billion), and percentages. Users encountering such small values should verify their Unit of Measure conversion settings to ensure they are correctly configured.
Want to learn more?
Online Help Manuals - Click here for the latest version
Learning Management System - Click here to login or here to request access
Comments
0 comments
Please sign in to leave a comment.