7.4

Last modified: September 12, 2023

7.4.0

Release date: July 3, 2017

Offline Editability Improvements

Do you feel that modifying data after synchronization could be easier for offline mobile applications? We share that feeling, so we have made data manipulation for offline apps a lot easier! From Mendix 7.4.0 on, all objects can be edited, including ones that have been synchronized to and received from the runtime. In addition, editable list views and editable columns for grids are allowed, so objects can be edited inline for these widgets.

List View Performance Improvements

The list view is one of the widgets used most often in Mendix. With this release, we have optimized how a list view fetches its data. From now on, if a list view contains a widget that gets its data over an association (for example, in a data view or text box), that associated data will be fetched together with the main list view data within one network request.

To enlighten you with the significance of that improvement, imagine an example in which you have a list view with order lines, a page size of 20, and a single text box showing the name of the associated order. In the past, such a page would have to make 21 network requests (in the worse case scenario) before being shown. And now, this is done in one request.

In Mendix 7.2 and 7.3, there was no exact separation between tablet and phone hybrid profiles. The only separation was the logical meaning of a profile name like MyTabletProfile and MyPhoneProfile. In Mendix 7.4, the separation of hybrid profiles by device type has been introduced, which will make profiles easier to understand and work with. In addition, to prevent confusion while working with profiles, having more than one profile of a specific type is not permitted. This restriction allows us to omit the profile name.

For most users, this change will be unnoticeable. If you want to check the details or if you have issues with converting navigation profiles to 7.4, see Solving Issues with Navigation Profiles Conversion to 7.4 in the Mendix Reference Guide.

Other Fixes

  • When executing a database query results in a connection failure, the system will no longer leak a connection that causes (in the worst case scenario) all the connections to be in-use. (Ticket 48767)
  • Using the reverse() method in an XPath constraint now works properly, even for self-references. (Tickets 47140, 52175)
  • We enabled specifying a hard-coded locale for formatDecimal. (Ticket 50992)
  • When updating an XML schema changes the ordering of attributes, this will be reflected in import mappings and export mappings. (Ticket 51991)
  • We made an improvement to the Modeler user interface: custom import actions based on WSDL mappings don’t support Validate against schema, so that’s now grayed out.
  • We implemented the modulo operator in OData filters.
  • You can configure a microflow button to show a modal progress bar when the microflow is called. However, if you had the file manager on the page and selected a new file, the progress bar was only displayed after the upload of that file. We fixed that for you, and the progress bar is now displayed before the upload. (Ticket 44728)
  • We fixed the scenario in which a conditionally visible widget was placed inside a conditionally visible container and it was not properly initialized. (Tickets 48945, 52885, 52987, 52994, 52976, 53193, 53201)
  • We fixed the case of a conditionally visible container encapsulating both a conditionally visible widget and a widget that was not conditionally visible. (Ticket 53178)
  • When you had a data grid with multiple columns on the same attribute and you enabled the tooltip for one of them, you got the tooltip on the other columns for free. We fixed that and now properly respect the tooltip property for each column. (Ticket 39728)
  • A data grid with a hidden search bar now fetches search options only when the user opens the search bar. This lazy loading behavior speeds up page rendering and prevents unnecessary requests to the back end. (Ticket 50712)
  • We fixed an issue that occurred when a user tried to start an offline app while there was no connection and the login screen was shown, even if the user had previously logged in.
  • We fixed an issue that occurred when the user was not able to log out of an offline app while being offline.
  • We fixed an issue where user data was not fully cleaned on the device after logout from an offline app.
  • We fixed an issue where validation errors in a radio button group were shown twice in a pop-up window instead of once next to the widget. (Tickets 51743, 51960, 53677, 53837)
  • We fixed an issue where the user agent was not set in the ISession object for anonymous user sessions. (Ticket 48981)
  • Menu items and validation messages are now also shown in the new language after a language change and an app refresh. (Tickets 50689, 53051)
  • We fixed the native library support that caused Runtime to crash when trying to load user native libraries that were already loaded (for example, the SQL Server authentication library). (Tickets 46846, 48052, 50498)
  • We fixed an issue that caused an undesired autocommit of an NPE’s reference. (Ticket 51186)
  • We fixed an issue that left old thumbnails on the file storage when replacing an existing image.
  • We fixed the regression in Mendix 7.3 where the max and min aggregate actions on an empty list resulted in NullPointerException. (Ticket 52967)
  • We fixed the error that occurred while executing the get_logged_in_user_names admin action. (Ticket 52147)
  • We extended support for JPEG images with CMYK color space. (Ticket 40140)
  • The $currentDeviceType is no longer set to Desktop when using the phone or tablet preview mode. (Ticket 52906)
  • We fixed the error that occurred when running an app from Eclipse in which the app path contained spaces. (Tickets 52776, 52954)
  • We fixed an issue of the Modeler taking a very long time on startup for Check Prerequisites when moving to Mendix 7. (Ticket 51600)

Other Improvements

  • We added the Size attribute to FileDocument so that file sizes in bytes can be queried from the database. Please note that for applications with documents already uploaded, initially their size will be set to -1. A system background job will run automatically to gradually populate all the missing file sizes. Depending on the number of files, this can take some time. (Tickets 49992, 49225)
  • Starting the Mendix Runtime on a database upgraded to a newer version of the Mendix Runtime is prohibited to ensure correct Mendix Runtime behavior. If you downgrade the Mendix Runtime, make sure to restore a database backup as well.
  • We improved performance when updating or deleting objects.

Known Issues

  • In some situations, an object associated to another object cannot be committed during the execution of a before/after commit event, resulting in an error such as “Object of type ‘MyModule.MyEntity’ with guid ‘12345’ cannot be updated, as it does not exist anymore.” For example, consider two new objects A and B, wherein A (parent) is associated with B (child) and A has a before- or after-commit event. In this event, B will be changed and committed. If you then commit A, B will be marked as ‘autocommitting’. Because of this, committing B in the before- or after-commit event of A will fail, as it expects A to already exist in the database, which is not yet the case. (Tickets 59099, 59288)
  • Users with non-administrative user roles with the permission to manage users are able to escalate their privileges. For more information on this vulnerability, see SSA-875726 Privilege Escalation Vulnerability in Mendix.
  • Downloading FileDocuments (as in, images) on Mendix Cloudv v4 is broken. The FileDocument download functionality in combination with AWS S3 storage has an issue that prevents files from being found; therefore, images are not being shown. (Ticket 54304)