10.3

Last modified: January 19, 2024

10.3.1

Release date: October 12, 2023

Go to Marketplace

Fixes

  • We updated a third-party library to stay within actively supported versions for which patches are made available on a regular basis, preventing challenging update paths in case of issues.

Known Issues

  • When selecting a container widget in Structure mode, it can appear that it does not have any properties. This happens because clicking the border of the container selects the drop-zone instead of the widget.
  • A finished parallel split branch that is removed from a running workflow instance wrongly leads to a versioning conflict.
  • When merging a branch into a second branch which already contained all the commits from the first branch, additional commits are automatically created unnecessarily.
  • Line endings in CSS files are not being handled properly, so when using Revert All Changes or performing other version-control operations, CSS files appear in the Changes on Disk dialog box.
    • Workaround: For details, see this section in Troubleshooting Version Control.

10.3.0

Release date: September 26, 2023

Go to Marketplace

New Features

  • We added a new feature that allows you to reverse an association direction by right-clicking the association and selecting Reverse direction.

Java Dependency Management

We released managed Java dependencies. This feature enables specifying .jar dependencies per module in your app, so that Mendix can automatically handle conflicts between modules for you.

Specified dependencies are resolved through Gradle and downloaded from the Maven central repository or a custom repository. In the case of conflicting dependencies between modules, Gradle automatically selects the newest one, solving most compilation issues.

The .jar dependencies are downloaded into the new Mendix-controlled vendorlib folder and are committed into version control. The userlib folder stays available for unmanaged dependencies.

Improvements

Performance Improvements

  • We improved the startup performance of Studio Pro.

Microflow URL Improvement

We added the option to define a URL for a microflow. When you navigate to this URL, the microflow is executed during the client startup. The URL can contain both object parameters (just like page URLs) and primitive parameters.

If the microflow contains a Show a page action, this page is opened instead of the home page. Otherwise, the client opens the home page as usual after executing the microflow.

Other Improvements

  • You can now use a Share URL from the Catalog to update a consumed OData service.
  • We made it easier to realign the Call external action activity with the changed contract of a consumed OData service.
  • Microflows published in an OData service can now take a parameter of type System.HttpResponse, allowing them to return errors.
  • We improved the resizing behavior of the End Event and Decision dialog boxes in the microflow editor.
  • We added the possibility to define a microflow decision method for workflow multi-user tasks.
  • A “current activity removed” conflict is no longer reported when a parallel split branch with currently executing activities is removed from a workflow. Instead, only a “parallel split branch removed” conflict is reported.
  • An external enumeration now shows the source of the enumeration and allows you to Detach it from the source.
  • A warning is now shown when a new document is created with a name that captures existing usages.
  • Mendix now updates the objects sent with the Send external object activity based on the reponse from the publishing side.
  • We now show an information bar in the Edit External Action Parameter Mapping dialog box when the parameter is not allowed to be empty.
  • We corrected the validation of a new branch name and made it case insensitive, so now it is impossible to create a branch with a reserved name (for example, MAIN, maiN, or MaIn).
  • We improved the UX of the Commit dialog box for pushing when remote changes exist on the remote server. This improves insights into remote commits.
  • We added a module-import command to the mx command-line tool.
  • Mendix no longer supports the old {Id} format in page URLs. All existing page URLs with {Id} will be converted to the new format of {PageParameter/Id}.
  • We added a log message to indicate that Mendix Runtime shutdown was requested through ShutdownAction.
  • We added the ability to change the return value of the end event for microflows, nanoflows, and rules through the Properties pane.
  • We added the ability to preview images in the Properties pane for button widgets and the Image widget in the page editor.
  • We made all association settings available in the Properties pane.
  • We added support for opening a properties dialog box in read-only mode in the Properties pane. Before this update, some read-only properties could not be opened from the Properties pane for more details. After this update, you can open the read-only properties and see their contents.
  • We moved the deployment settings to the new Deployment tab in the Studio Pro Preferences.
  • We improved the UI for the page URL editing form.
  • We updated the Batch replace dialog box to support dark mode.
  • We added support for dark mode to the pop-up window that warns about existing usages when something is renamed.
  • Mendix now allows for the use of aggregate functions in XPath constraints, so you can use sum, avg, count, min, or max in a predicate. You should use these over a value over association (for example, [sum(MyModule.OrderLine_Order/MyModule.OrderLine/Price) > 100]). The aggregate functions support an optional second argument of the Boolean type to identify whether the values should be distinct by the database before applying the aggregate function.
  • Mendix now also allows for the use of calculations in the paths of XPath constraints, so you can use operators like +, -, *, div, and mod in paths. This allows for constraints such as, [sum(MyModule.OrderLine_Order/MyModule.OrderLine/(Amount * Price)) > 100].

Fixes

  • We fixed a known issue where the input field did not receive initial focus when a shortcut was used to access the Go to dialog box.
  • We fixed an issue where the drop-down filter in the data grid widget was not closed when the page was scrolled. Starting with this version, multiselect filters in the data grid are closed as soon as the page is scrolled. (Ticket 163319)
  • We fixed an issue where importing large XML schema documents was too slow. (Ticket 170962, 185085)
  • We fixed an issue where a text area ignored a value autofilled in Google Chrome. (Ticket 176195)
  • We fixed an issue with calling a microflow action where retrieving a specialization over an association did not work if the other side was the generalization. (Ticket 187667)
  • We fixed an issue that caused the Batch Update Button Icons dialog box to throw an exception. This includes addressing the scenario of adding an extra native icon selector when there are native documents and the selected icon is not supported on native. (Ticket 191511)
  • We fixed an issue in the $metadata of published OData services using OData v3 where a self-referencing association resulted in two roles with the same name. (Ticket 193467).
  • We fixed an issue where an XPath data source with a constraint that used the id attribute of a variable (for example, [Module.Person_House/Module.House/id=$currentObject/id]) resulted in an error during deployment. (Ticket 194055)
  • We fixed an issue where setting a new AuthToken was not applied until the native app was restarted. (Ticket 195005)
  • We fixed a crash that occurred when selecting Edit > Find Usages.
  • We fixed an issue where an “Oops” pop-up window was displayed when you selected an entity through the context menu or dragged it from the Connector pane where a page or snippet parameter already existed.
  • We adjusted MxAssist Best Practice Bot recommendations MXP003, MXP007, and MXP016 to not recommend adding an index to an attribute that is uniquely constrained.
  • We fixed an issue where it was not possible to use the constrained by functionality with the reference selector and input reference set selector widgets when the configured attribute path did not start from the direct enclosing data container.
  • We fixed an issue where dropping a Call external action activity in a microflow caused the activity to be placed at an incorrect location in the canvas.
  • We fixed an issue that occurred with operators like +, -, *, div, and mod in client-side XPaths where Studio Pro allowed them to be used, but the Mendix Runtime Server rejected those XPaths.
  • We fixed an issue that occurred when using the '+, -, *, div, and mod operators in XPaths with at least one decimal operand where the result was an integer in HSQLDB and SAP HANA.
  • We fixed an issue that occurred when using the + operator in XPaths with at least one string operand and at least one non-string operand where the query failed in Microsoft SQL Server.
  • We fixed an issue that occurred when using the + operator in XPaths with at least one string operand and at least one operand that resulted in NULL where the result was NULL too. Mendix now uses the CONCAT function for string concatenation, and now the NULL value is ignored.
  • We fixed an issue that occurred when using the div operator in XPaths with integer/long operands where the result was a decimal in MySQL, MariaDB, Oracle, and SAP HANA.
  • We fixed an issue that occurred when using the div operator in XPaths with at least one decimal operand where the result was an integer in HSQLDB.
  • When consuming an external action, Studio Pro may add entities to the domain model. It now adds these entities to the domain model of the module that the consumed OData service is in, rather than the domain model of the module that the microflow is in.
  • We fixed an issue in published REST services where messages about import mapping errors were duplicated in the response body.
  • We now add a prefix to a business event entity name when it is created. If you decide to implement both the publishing of and subscription to an event, there are two entities created automatically. One of the entities is automatically renamed to eventName_2 (by adding a prefix, you can make the name more meaningful).
  • We updated the HTTP response status codes for POST/PATCH on the publishing side depending upon the provision of the Prefer header in the request.
  • We fixed a NullPointerException that occurred when passing null to the getValueFromString method of MendixBinary members. This method now returns null when passed null.
  • We fixed an issue where some properties in the Properties pane looked editable, but the value of the property was not changed..
  • We fixed an issue where styling properties were not initially populated in the Properties pane.
  • We fixed an issue where the grid control did not highlight the selected row.
  • We improved the layout of some dialog boxes.

Deprecations

  • Starting with version 10.5, we will drop support for PostgreSQL 11, as it is no longer supported by the vendor.

Breaking Changes

  • We removed the Build Using Gradle option from the Deployment settings. We now always use Gradle for app deployment.

Known Issues

  • When selecting a container widget in Structure mode, it can appear that it does not have any properties. This happens because clicking the border of the container selects the drop-zone instead of the widget.
  • A finished parallel split branch that is removed from a running workflow instance wrongly leads to a versioning conflict.
  • When merging a branch into a second branch which already contained all the commits from the first branch, additional commits are automatically created unnecessarily.
  • Line endings in CSS files are not being handled properly, so when using Revert All Changes or performing other version-control operations, CSS files appear in the Changes on Disk dialog box.
    • Workaround: For details, see this section in Troubleshooting Version Control.