Release date: April 24th, 2017Download
In Mendix 7.0, we changed the Offline device profile to Hybrid tablet and added a Hybrid phone profile. The hybrid profiles were either online or offline, thus it became impossible to create an online and an offline hybrid app for a specific device. That’s why we’re now introducing flexible profiles.
It is now possible to add and remove profiles yourself and give them descriptive names. Hybrid apps specify which profile to display when running on a tablet and which profile to display when running on a phone.
There are five different types of profiles: three for the browser (Responsive, Tablet, and Phone) and two for a hybrid app (Online and Offline). You can create a maximum of four hybrid app profiles (all four may be online or offline or any mix that you wish).
All your existing profiles are automatically migrated to flexible profiles.
If a profile is not used, it is deleted. A profile is not used if all of these points are true:
- It has been disabled
- It has no home page
- It has no menu items
- No menu widgets point to it
An important note that requires your attention upon upgrading:
It is no longer possible to disable a profile, because you can now remove profiles entirely. Unused profiles are removed during the upgrade, but if a profile is considered to be in use, it is not deleted. Previously, disabled profiles were not checked for consistency, but now all the profiles are always checked, so this may result in consistency errors.
We strongly recommend that you check all the existing profiles and make sure that the home page as well as role-based home pages are set correctly. If you do not wish to use a profile, you should delete it, because if a profile exists, it is considered to be “enabled.”
For more details about the new flexible profiles, see Navigation in the Mendix Reference Guide.
Data Storage Features
The following upgrades have been made:
- HSQLDB (the internal database) from version 2.3.2 to 2.3.4
- IBM DB2 JDBC driver from version 4.20.4 to 4.22.29
- MariaDB (also for MySQL) JDBC driver from version 1.3.6 to 1.5.9
- Microsoft SQL Server JDBC driver from version 4.2.6420.100 (proprietary) to 6.1.0 (open-source)
- Oracle JDBC driver from version 126.96.36.199 to 188.8.131.52
- PostgreSQL JDBC driver from version 9.4.1211 to 42.0.0
At Mendix, if we promise, we deliver. And with this release, we are giving even more power to expression-based conditional visibility and editability.
- We fixed the known issue from Mendix 7.1.0 so that now expression-based conditional visibility/editability cannot be configured outside of a data container.
Client API Improvements
We extended the client API with the new method MxObject.getChildren. Together with the
filter.references parameter of mx.data.get, this allows custom widgets to retrieve multiple associated objects within one request to Runtime.
- We fixed an issue where the
_WidgetBase.subscribe) callback registered for a specific object (GUID) was not triggered on the commit of that object. (Ticket 50768)
Client Certificate Improvements
You can now use client certificates to call REST services with the
Call REST service microflow action. You can do this by configuring it in the project configuration similarly to the configuration for web services. For details on how to use client certificates, see How to Use a Client Certificate.
Note that we have also introduced the new setting
ClientCertificateUsages to replace
WebServiceClientCertificates and have deprecated the old name.
Java Action Parameters
We introduced two new parameter types for Java Actions:
Import mapping and
We have introduced a new feature for the drop-down input widget. Now it is possible to set the caption for the blank option in a drop-down list.
- We fixed an issue where virtual attributes of specializations were not shown in a list view.
- We fixed an issue with hash calculations for decimal values. If a decimal attribute did not have write access and was changed, this led to an error with the message, “Attempt to illegally change a value for object with id %id%!”.
- We fixed an issue where recommitting a previously failed commit (in a microflow) gave an error (such as, “Object of type ‘MyFirstModule.MyEntity’ with guid ‘1234’ cannot be updated, as it does not exist anymore”). (Ticket 47277)
- The XPath constraint window in the Retrieve Objects dialog box in the microflow editor is now displayed correctly on high-resolution displays. (Ticket 50171)
- The Expression editor of the Exclusive Split dialog box in the microflow editor is now displayed correctly on high-resolution displays.
- We changed the default transaction isolation level for microflows on MySQL and MariaDB to Read Committed. For this level, row-based logging is required in your database. For details on how to configure this, see MySQL. (Ticket 51330)
sessionVariablesJDBC property in the MySQL/MariaDB JDBC URLs is no longer ignored.
- When an Action button was configured to call a microflow and the button was to be disabled during the action while in the microflow settings the confirmation was also configured, the Action button stayed disabled when canceling the confirmation message. Some users still want to be able to click the button after canceling it once, so we fixed this. (Ticket 47262)
- When using the
addRefreshObjectListFeedbackJava APIs, we do not redundantly refresh list views and data grids. Such refreshes should be performed only by
- We fixed the fetching resource for offline mobile apps.
- When migrating from Mendix 6, web service calls that ignore their responses no longer give consistency errors. (Ticket 50205)
- We improved the Modeler so that you can no longer create a microflow with a binary parameter from a mapping, because that resulted in a consistency error.
- The Use schema property of a data view was probably the most confusing, overly technical, and controversial feature among all widgets. This feature could be useful in a narrow set of cases, but even then, it didn’t work as expected. With Mendix 7.2.0, we have finally fixed this. From now on, Use schema has no effect and is marked as deprecated.
- Changes for reference set members that are read-only for the user are not correctly serialized from the server to the client (browser). This can lead to an
IllegalArgumentExceptionwith this message: “Global identifier should be a number.” (Ticket 52317)
- Fixed in 7.3.0.
- In certain situations, OnChange microflows may not reflect changes done in the UI. Instead, an older version of the object will be used.
- Fixed in 7.3.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)
- Fixed in 7.16.0.