7.2

Last modified: June 30, 2023

7.2.0

Release date: April 24, 2017

Go to Marketplace

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.

Removed 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 12.1.0.2 to 12.2.0.1
  • PostgreSQL JDBC driver from version 9.4.1211 to 42.0.0

Advanced Conditional Visibility/Editability

At Mendix, if we promise, we deliver. And with this release, we are giving even more power to expression-based conditional visibility and editability.

Now you can use the isNew and isSynced function associations of a context object to identify uncommitted objects as well as commited-but-not-synced objects (in offline apps). Have fun!

Fix:

  • 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.

Fix:

  • We fixed an issue where the data.subscribe (and _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 Export mapping.

Accessibility Improvements

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.

Other Fixes

  • 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)
  • The sessionVariables JDBC 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 addRefreshObjectFeedback or addRefreshObjectListFeedback Java APIs, we do not redundantly refresh list views and data grids. Such refreshes should be performed only by addRefreshClass.
  • 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.

Deprecation

  • 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.

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.
  • 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 IllegalArgumentException with this message: “Global identifier should be a number.” (Ticket 52317)
  • In certain situations, OnChange microflows may not reflect changes done in the UI. Instead, an older version of the object will be used.