Release date: July 3rd, 2017Download
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.
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 versions 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 version 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.
- 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 backend. (Ticket 50712)
- We fixed the 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 the issue that occurred when the user was not able to log out of an offline app while being offline.
- We fixed the issue where user data was not fully cleaned on the device after logout from an offline app.
- We fixed the 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 the issue where the user agent was not set in the
ISessionobject 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 the issue that caused an undesired autocommit of an NPE’s reference. (Ticket 51186)
- We fixed the issue that left old thumbnails on the file storage when replacing an existing image.
- We fixed the regression in Mendix 7.3 where the
minaggregate actions on an empty list resulted in
NullPointerException. (Ticket 52967)
- We fixed the error that occurred while executing the
get_logged_in_user_namesadmin action. (Ticket 52147)
- We extended support for JPEG images with CMYK color space. (Ticket 40140)
$currentDeviceTypeis no longer set to
Desktopwhen 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 the issue of the Modeler taking a very long time on startup for
Check Prerequisiteswhen moving to Mendix version 7. (Ticket 51600)
- We added the
FileDocumentso 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.
- Downloading FileDocuments (as in, images) on Mendix Cloud 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)
- Fixed in 7.5.0.
- 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(parent) is associated with
Ahas a before- or after-commit event. In this event,
Bwill be changed and committed. If you then commit
Bwill be marked as ‘autocommitting’. Because of this, committing
Bin the before- or after-commit event of
Awill fail, as it expects
Ato already exist in the database, which is not yet the case. (Tickets 59099, 59288)
- Workaround 1 – don’t commit (a child) in a before-commit event, as the child will already be autocommitted by Mendix.
- Workaround 2 – commit the child object before committing the parent object.