April 2024

Features

Implemented in Genio the Enumeration with search (Combobox in UI) that allows to search the enumeration values in the input.

Changes

Numeric fields implemented with decimal type

This is a breaking change. It will require reviewing your manual code for c#

C# Server will now generate all numeric fields as decimal internal type. This helps resolve a class of approximation issues that happen due to the double floating point representation.

Additionally, intermediary results were keeping fractional values, beyond the decimal places defined in Genio, during formula calculations. This also caused aproximation errors and divergences between formulas calculated in SQL and formulas calculated in C#. Any attribution to business class fields of Numeric type will now truncate the value to theirs respective decimal place precision before any calculations are applied.

The largest impact in the code will be literals and type conversion/normalization functions. Everything else should match up decimal to decimal with no errors. In manual code:

  • double declarations of business values must be changed to decimal
  • zero double literals (0.0) should be converted to integer (0) or decimal (0m)
  • other decimal part literals (2.5) should be converted to decimal literal (2.5m)
  • conversion and parsing routines should be converted to their decimal equivalent

To aid the conversion of manual routines a powershell script was made available at <Genio>/Resources/Scripts/DecimalsMigration.ps1. Please review the changes before committing to the project. There is a commented line in the script to prevent the update and perform a dry run of the script. Uncomment to allow the update.