Release date: May 6, 2015
- Object instances for persistable entities which have not been stored in the database should immediately be removed from memory on cancel/rollback. (Tickets 206533, 206514, 217085, 234503)
Release date: March 13, 2015
- Configurable rounding mode. (See Project Settings)
- Fixed an issue where choice options with object converter microflows would not be converted correctly.
- Hide the sharing button for microflows in the System module.
- Make ‘Half away from zero’ the default rounding mode. (Ticket 205981)
- Ensure that computing the difference between dates in microflow expressions results in an absolute value.
- Prevention of StackOverflowError (Ticket 17222, 17518, 206126)
Release date: March 2, 2015
- Entity validation rules for attributes of type Decimal are broken
- If you cancel editing a newly created object, the changes on the object will be cancelled, but the object itself will not be removed.
Mendix 5.14 introduces a new data type: Decimal. Decimal supports higher precision than the current “Float” and “Currency” data types and can be used to represent non-repeating decimal fractions without rounding. Decimal values supports up to 20 digits before and 8 digits behind the decimal point.
You can safely change numeric types to decimals. Integers and longs will be preserved in the database when converted to decimals. Floats will be preserved if their values fit in a decimal column (up to 20 digits before the decimal point), otherwise it will get the default value. However, if you switch back from decimals to other numeric types, all values will be reset to the default value. To have more control over conversions, it’s always possible to write a microflow.
The Decimal type is available in attributes, microflows, constants, Java actions, XPath and OQL queries. The following new functions are added to microflow expressions to support this type: toFloat, parseDecimal and formatDecimal.
Please note that not all custom widgets, including those available in the Mendix AppStore, currently have support for the new decimal type. The following Mendix AppStore modules currently do not support Decimals: ExcelImporter, ExcelExporter, Database Replication and EmailModule with Templates. An update will be available soon for these modules.
In the webclient Decimal attributes are represented as Big.js objects.
Mendix 5.14 also introduces Mendix Model Share. With Mendix Model Share you can easily share live app models with others, embed them in websites, blog or forum posts and instantly re-use them in other models. This allows you to easily collaborate with other developers, share your work with a single click, ask questions about it or re-use complete model parts from others.
If you get an error in your web service mappings mentioning that decimals are not compatible with floats, you can right click the error and automatically generate converter microflows.
Rounding has been made more consistent. Before 5.14 the rounding mode was inconsistent: in some cases HALF_EVEN (also known as bankers rounding) was used, in some cases HALF_UP was used. We now use HALF_EVEN consistently through Mendix. This means that you may encounter different results when rounding. We suggest you test your application accordingly.
The following modules are currently not compatible with Mendix 5.14: ExcelImporter, ExcelExporter, Database Replication, EmailModule and SAML module. If you use any of these modules, you should wait with upgrading until these modules have been made compatible with Mendix 5.14.
- Added export of mx-name- classes to labels, so they can be used during automated Selenium testing.
- Ability to share and import Microflow models to and from Mendix Model Share.
- The “Go to” feature (Ctrl+G) has been improved in several ways. Firstly, it is much faster (more than ten times). Secondly, in addition to entities, associations and documents, you can also navigate to attributes, project documents like navigation, modules, and folders now. And finally, you can enter multiple search terms separated by spaces and only those items will be shown that contain all search terms. For example, searching for ‘ac ov’ will match “Account_Overview”. (Ticket 204923)
- The notification balloon that is shown after the Runtime starts successfully is now closed automatically after a few seconds. Previously it remained visible indefinitely. (Tickets 205270, 205294)
- The dialog for editing enumerations is now vertically resizable.
- Added a new button in mapping documents: ‘Clear mappings’. This only clears entity, association and attribute mappings. Nothing is removed from the domain model.
- XML choice elements are handled differently in XML-to-Domain mappings. Some limitations on importing XML with choice elements have been removed. For an elaboration on this, please read: https://tech.mendix.com/modeler/2015/03/02/xml-choice-elements-and-xml-to-domain-mappings/
- Improved ‘Map automatically’ function in XML-to-Domain mappings (old name was ‘Generate entities’). It reuses existing entities, attributes and associations as much as possible. (Ticket 205138)
- When a new Domain-to-XML or XML-to-Domain mapping is created, the ‘Select Elements’ dialog is opened automatically (Ticket 204238)
- Support decimal type in XML Schemas, Web Services and App Services. (Ticket 385884)
- System entities are now fully qualified named in App Service definition files (MSDs) to avoid name clashes and consistency errors when user uses an entity that has the same name as the system entity.
- Introduce Msd version 4 to support decimal type and fully qualified system entity name. Important note: newly published versions of App Services can only be consumed in Mendix 5.14. Old published versions keep on working with older Mendix versions.
- Improved names and captions Consumed App Service calling actions.
- Implemented calling webservice operations with binary elements encoded as MTOM attachments if the WSDL specifies a xmime:expectedContentype. Please note that validation against WSDL for web service operations that use this mechanism is automatically disabled. If you have existing mappings with binary attributes, the Modeler will ask you once to reselect elements in order to set MIME types correctly, when they are available. (Ticket 204246)
- Fixed race condition when calling a web service operation, potentially causing data corruption in high load situations.
- Fix custom widgets being cached in the browser cache.
- Fix loading of custom widgets in Phonegap apps (Ticket 205599).
- Reduced visual page flickering on page navigations. From now on users during page navigation will see current page until a point when a next one is fully loaded, then pages are switched instantly and with minimal visual noise. (Ticket 204757).
- Fix rendering issue in layout container sidebar (Ticket 204757).
- Focus is no longer set on elements on mobile devices to avoid irresponsive buttons and to avoid jumping (keyboard) behavior (Ticket 204595).
- Fix scrolling on iOS’s Safari where everything beyond the limits of the viewport was unreachable by lack of a scrollbar (Ticket 204480).
- Show lightweight UI for accepting file download triggered from microflow in mobile browsers, which block normal silent file download in such cases, like mobile Safari (Tickets 204771 and 205168).
- Handle corrupt project packages (both from the App Store and from disk) more gracefully in the business modeller.
- Ensured that rounding in microflow expressions always uses bankers’ rounding (round half even).
- Made the
formatFloatmicroflow expressions output user language specific results (e.g. when language is English the decimal separator is a ‘.’ and when the language is Dutch a ‘,’). (Ticket 10819)
- When a thumbnail image is retrieved, but does not exist, return the original image instead of throwing an exception. E.g. for the case when the original image is smaller than the thumbnail-width/height from the image-uploader, no thumbnail is created. (Ticket 205059)
- Regenerate UUID when file path collides with existing (legacy uploaded) file when writing an uploaded file. (Ticket 205547)
- In ‘Select Elements’ of XML-to-Domain mappings and Domain-to-XML mappings, ‘Check All’ does not check unsupported elements anymore.
- Fixed a bug where reselecting an entity in a mappings caused its child mapping elements to be cleared.
- Fixed a bug where in some cases mapping elements were seen as Inheritance elements by the Modeler (this did not affect deployment or the runtime).
- Fixed a bug where double-clicking on a consistency error for a mapping element did not jump to the right position in the document.
- Fixed a bug that caused an exception when re-importing a WSDL in a consumed web service document. (Ticket 204793)
- Fixed an issue where checked and collapsed element nodes were not mapped in Domain-to-XML and XML-to-Domain mappings (Ticket 203933).
- Fixed an issue where checked and collapsed data members in published web service operations were not stored (Ticket 203933, 205579).
- Fixed an issue where validation depends on external XSDs as this validation will fail in circumstances with limited internet access. (Ticket 204902), or may get unnecessary slow (Ticket 205247)
- Fixed an issue where nillable consistency was not checked in XML-to-Domain mappings. (Ticket 204907)
- Fixed an issue where importing an XML schema type with an ‘any’ attribute (in combination with no other elements) resulted in an exception (Ticket 205064)
- Fixed an issue where some WSDLs were seen as invalid when importing them in a consumed web service document (Ticket 205573).
- mendix.lib.MxMetaObject.isNumber, use mendix.lib.MxMetaObject.isNumeric instead
- mendix.lib.MxObject.isNumber, use mendix.lib.MxObject.isNumeric instead
Breaking API changes
Rounding now consistently uses HALF_EVEN. Before 5.14 the rounding mode was inconsistent: in some cases HALF_EVEN (also known as bankers rounding) was used, in some cases HALF_UP was used. We now use HALF_EVEN consistently through Mendix. This means that you may encounter different results when rounding. We suggest you test your application accordingly.
- The word ‘decimal’ is now a keyword in OQL. This means that queries where the word ‘decimal’ is used as a name will need to be changed, for example by putting the name between double quotes (
- The parseFloat function call will return a BigDecimal instead of a Double.
- The toFloat function call will return a BigDecimal instead of a Double.
- Xml choice mapping now requires you to use inheritance. This may break existing usage of xml choice, including the SAML module.