9.21

Last modified: February 22, 2024

9.21.0

Release date: December 20, 2022

Go to Marketplace

New Features

With this release, we have made reusing your app’s UI simpler and more powerful. Following up on support for multiple page parameters, we have added support for multiple snippet parameters! You can now pass multiple parameters to a snippet call, just as you can with pages, microflows, and nanoflows. Inside a snippet, you can select attributes from a parameter directly or create data views that use a parameter or its associations. In addition, the parameters can also be used in expressions without the need for a data view.

Just like page parameters, snippet parameters are created automatically when you select an entity for the Context data source of a data view inside a snippet. You can also click Parameters in the top bar of the page editor to change the parameters of a snippet manually.

Improvements

Performance Improvements

  • We decreased the time it takes to rename an entity and corresponding associations. For more complex entities with a lot of associations, the speed has been increased significantly, but it is also noticeable with smaller configurations.

Git Version Control Improvements

  • New apps created in Studio Pro or in the Developer Portal will by default be created with Git as the version control system. However, you can still choose to create an app in SVN.
  • For apps using Git as the version control system, the Update command has been renamed to Pull, which is more common Git terminology.
  • If pushing your changes to the server fails because you first have to pull and merge changes from the server, you no longer get an error, but an information message describing the steps to take.

Other Improvements

  • Signing in using your default browser is now the only way to sign in to Studio Pro.
  • We improved the modeling experience when moving or copy-pasting a widget that uses an attribute. In many situations, there is only one available entity for which the selected attribute (path) is valid; therefore, the widget can be reconfigured automatically. This prevents unnecessary consistency errors that would need to be fixed manually.
  • You can now use rules to make validation microflows using Validation Assist.
  • In workflow settings, we changed the text of the Parallel Workflow executions setting to Workflow instance threads and the Parallel task executions setting to Microflow threads.
  • In workflow settings, we removed the cap on the amount of workflow instance threads and microflow threads.
  • We added the option to copy the styling of a widget. This enables copying the inline styles, (dynamic) classes, and (applicable) design properties to other widgets. For details on copy-pasting widget styling with shortcuts, see Studio Pro Overview.
  • We added a new method to the Mendix Runtime API to set the workflow parameter context object.

Fixes

  • We fixed a known issue that occurred when navigating between dockable panes Ctrl + Tab while in the microflow editor, page editor, or Properties pane where releasing Ctrl did not close the pane-selection dialog box if the editor or pane was focused. (Ticket 163193)
  • We fixed an issue where searching for date and time values with the Range Search Field filtered the dates in the wrong way. (Ticket 147935)
  • We fixed an issue where a pop-up window was closed even though a blocking progress bar was displayed. (Ticket 168238)
  • We fixed an issue where certain data or actions could not be retrieved or run because of conditional visibility. (Ticket 168875)
  • We fixed an issue where creating a deployment package on Mendix Cloud failed for an app with over-the-air (OTA) updates enabled. (Ticket 169390)
  • We fixed an issue that prevented client log nodes from being initialized and appearing in Mendix Cloud facilities, which was affecting native logs from being sent to the Mendix Runtime. (Ticket 170826)
  • We fixed an issue where a thumbnail was not deleted when the image associated with the thumbnail was deleted. (Ticket 171367)
  • We fixed an issue in published OData services where resources with keys other than id threw an error when the client left out the key from the $select clause. (Ticket 171726)
  • We fixed an issue that occurred when editing a SCSS file and closing the editor with unsaved changes. (Ticket 171763)
  • We fixed an issue where the editors for pages, snippets, layouts, building blocks, and page templates became very slow after copying a widget.
  • We fixed an issue in workflows where an enumeration-based decision with an empty option failed if the empty path was not the last position.
  • We fixed an issue in published OData services where using single quotes (') to address an object caused an error to occur.
  • We made several improvements in log subscribers:
    • The log message format has been unified for FileSubscriber, ConsoleSubscriber, LoggerSubscriber, and SyslogSubscriber.
    • When logging an error, the log message and exception stack trace are now printed as a single log entry.
    • We improved internal error handling in the following ways:
      • If FileSubscriber detects an infinite logging loop while logging an internal error, it stops using the Logging API and writes the error into a .err file. This file is saved to the same directory as the regular log file.
      • All other subscribers do the same, but they write the error to stderr.
  • Validation Assist now works correctly with external entities. Instead of committing them, the Send external object activity is used for such entities in a generated microflow.
  • We improved how MxAssist Performance Bot Best Practice MXP012 finds the committed variables and also handles logically empty loops.
  • We made the Console grid sortable.
  • We added support for the REPLACE, LOWER, and UPPER functions for OQL.
  • When using a String (in ISO 8601 format) or Integer/Long (milliseconds since Jan 1, 1970) in the OQL functions DATEDIFF and DATEPART, they are now converted to a Date and Time not only when the function is used in the WHERE clause, but also in the SELECT clause.
  • In the microflow editor, you can now filter microflow actions to process lists (for example, using Union, Sum, or Sort), which makes it easier to select the right list activity type.
  • We fixed an issue that occurred where publishing an entity in an OData service caused consistency error CE6624 (“a validation rule is required”) for entities that do not allow validation rules, such as system entities and external entities.
  • We fixed an issue in consumed OData services that caused an error when filtering on Boolean attributes in a data container widget.
  • We fixed an issue that prevented published OData services from properly handling update and delete requests if the exposed entity was not persistable.
  • We fixed an issue where a snippet call without a snippet selected threw an error.
  • We fixed a UI issue where the workflow editor in dark mode showed incorrect icons and used incorrect colors.
  • We fixed an issue that caused a consistency error when generating user task pages with only one outcome.
  • When duplicating or copying workflows, pages set on user tasks were cleared, which resulted in consistency errors. Now, the user task pages set are no longer cleared.
  • We improved user task properties by swapping the location of the default option of who can access the configuration.
  • We now support deleting an external object and then creating a new object with the same key.
  • We fixed an issue with proxy authentication that occurred when a locale or language pack other than English was used on the user’s machine.

Deprecations

  • We have deprecated the Core.retrieveXPathQuery methods in the Java API. Please use Core.createXPathQuery instead.

Breaking Changes

  • Collaborating with Mendix Studio is no longer possible for Studio Pro 9.21 and above. To upgrade an older app where collaboration is still enabled, you have to first disable collaboration. For more information, see the blog post Coming in 2023: The Merging of Studio and Studio Pro.

Known Issues

  • There is a known issue for the scenario where there are multiple instances of the same identical object (meaning, with the same ID) assigned to different microflow variables, this object has a one-to-one association to another entity, and no changes have been made to the associated object. When you then set the association to the same value, only a single microflow variable points correctly to the new association, and the other variables have an empty association. (Ticket 168024)