9.22

Last modified: January 11, 2024

9.22.0

Release date: January 31, 2023

Go to Marketplace

New Features

  • Native mobile apps now support encrypting files and images stored in the app. You can enable this feature on the native navigation profile settings page. Check out the Encrypting User Files and Images section of Offline Data Security to learn more and start using it!
  • When adding a new attribute to an entity, Studio Pro now tries to guess the attribute type.
  • It is now possible to open an app by dragging its .mpr file or containing folder into the main window of Studio Pro or into the Open App dialog box.
  • It is now also possible to open a Mendix app package by dragging its .mpk file into the main window of Studio Pro or into the Open App dialog box.
  • You can now import Mendix module packages into an app by dragging the .mpk or .mxmodule file into the main window of Studio Pro.
  • We added support for screen readers to native core widgets, making them more accessible for users with visual impairments.

Improvements

Performance Improvements

  • We expanded on the improvement made in version 9.21 and substantially reduced 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.
  • We reverted some changes we made in 9.18 and 9.20 in the SQL that is generated for XPath queries. While these changes were intended to improve performance, they caused performance regressions in some cases.
  • We optimized the network requests made while creating a new app and improved the responsiveness when browsing starter app templates.

Extract Snippet

The context menu option to extract a widget to a snippet has been vastly improved. Leveraging the full power of multiple snippet parameters, Studio Pro now performs an analysis of the extracted content and determines exactly which objects from the surrounding form are used.

The new Extract snippet dialog box shows which snippet parameters are introduced and the objects for which they are a substitute. You can also change the suggested names and the order of parameters here. After clicking OK, the extracted widget is replaced by a snippet call widget where its Snippet settings have been configured to pass the correct object to each snippet parameter. Inside the new snippet, all references to outside objects are replaced with a reference to the corresponding snippet parameter wherever possible. This makes extracting a snippet from complex pages significantly easier.

Git Version Control

  • We made it possible to disable collaboration with Studio for an app’s branch during its conversion to version 9.21 and above.
  • To prevent a situation where you cannot disable collaboration after it was mistakenly enabled again, the Disable for Mendix Studio button is accessible in the Branch Line Manager for the collaboration-enabled branches.

Other Improvements

  • We now accept an optional time zone argument (literal string) to all xxx-from-dateTime() functions in XPath conditions and to the DATEPART and DATEDIFF OQL functions. (Ticket 122891)
  • We improved the invalid decimal value error message by including the attribute name. (Ticket 171827)
  • Consumed OData services now use fewer parentheses for filter expressions. (Ticket 173408)
  • We added a new setting to Preferences called Send Studio Pro usage data to Mendix. This allows Studio Pro to send usage data to Mendix and helps Mendix to identify issues and improve the user experience. For more information, see the Usage Data section in Preferences.
  • When dragging an entity from the Data Hub pane onto a domain model, the generated consumed OData service and constant are now placed inside a folder.
  • For published OData services, when you publish an entity that does not have an attribute that is both unique and non-empty, Studio Pro no longer chooses the first attribute as a key, but rather does not choose a key and lets you decide.
  • We improved the editor for published OData services. You no longer need to click Edit before you can type in the text boxes.
  • The Send External Object and Delete External Object activity activities now report OData error responses into validation feedback.
  • The index selector and the published OData key selector in Studio Pro now both respond to double-clicking.
  • We now warn the user if we detect they are running Studio Pro in Parallels and using the host computer as the browser during sign-in, which is not supported by Studio Pro.
  • JSON structure now takes into account all array objects in a JSON snippet. When there are more properties in the next object (or objects), those properties are included as well. When a null property is encountered, it will keep searching until it finds a better data type for that property.
  • For offline PWA or native mobile profiles, when a new version of your app is redeployed with domain model changes, an automatic startup synchronization is required. With this release, we improved the Mendix Client where for certain domain model changes it will skip this startup synchronization, leading to a faster startup time.
  • We added a full message and stack trace to the CSV export of the console.
  • We improved the formatting of SQL statements in log records.
  • For external entities that do not support skip or top, the Retrieve microflow activity no longer shows First, Amount, and Offset.
  • We made multi-line text fields in dialog boxes resize when the dialog box is resized.
  • We improved the way Studio Pro shows which UI element has the keyboard focus. The focused element has a dotted border around it, and the style of this border is now consistent throughout.
  • We improved the resizing behavior of dialog boxes and tabbed editors that contain sections with vertical scroll bars. These sections now correctly adapt to changes in the dialog box or editor size.
  • We improved consistency in the visual presentation of focus on Studio Pro UI elements.

Fixes

  • We fixed CVE-2023-23835.
  • We fixed a known issue where one-to-one associations were cleared incorrectly when there were multiple copies of the same object in microflow variables. (Ticket 168024)
  • We fixed an issue where the open link action button did not work in a data grid. (Ticket 113752, 164174)
  • We fixed an issue where an associated object was not sent together with its parent in some cases. (Ticket 152735, 171646)
  • We fixed the Space bar functionality within a data grid for checkbox cells. You can now toggle multiple checkboxes (Ticket 165926).
  • We fixed an issue where the Properties dialog box of a widget was too large to fit on the screen when it contained many properties. Now, the size of the dialog box is limited and a vertical scroll bar is shown instead. (Ticket 169365)
  • We fixed an issue with file downloading that occurred when the file name attribute was empty. (Ticket 170237)
  • We fixed an issue where the Oops dialog box appeared when opening the domain model editor in certain cases. (Ticket 170735, 170571)
  • We fixed an issue that caused the native date input to not render properly on custom backgrounds. (Ticket 170882)
  • We fixed an issue where a native mobile app was stuck on the splash screen after an end-user logged out. (Ticket 171288)
  • We no longer send display inaccessible members as (empty) when debugging nanoflows. (Ticket 172185)
  • We fixed an issue where opening a document threw an exception and rendered a red cross if a pluggable widget tried to render an image in a space that was too small. (Ticket 172756)
  • We fixed a crash that happened when opening an app because Studio Pro stored an inconsistent window layout upon closing an app or exiting the application. (Ticket 173472)
  • We fixed an issue where an argument of an On change action that was mapped to a snippet parameter threw an error when trying to deploy the app. (Ticket 174249)
  • We fixed an issue in offline navigation profiles where retrieving an object that had a generalization to a base entity type returned the base type instead of the specialized type that had been retrieved. (Ticket 174251)
  • We fixed an issue where a crash occurred when dragging a microflow parameter on top of a flow. (Ticket 174341)
  • We fixed an issue where a microflow data source inside a snippet threw an error when trying to deploy the app. (Ticket 174462)
  • We fixed an issue where passing an object from a pluggable widget data source as an argument to a nanoflow data source caused an error if the nanoflow tried to change an attribute of the object. (Ticket 174605)
  • We fixed an issue where moving a widget out of a data container showed an error pop-up window if it was configured for conditional visibility based on an attribute from the data container. (Ticket 174758)
  • We fixed an issue where switching to None closed the pages of the Show page microflow activity. (Ticket 174834)
  • We fixed the incorrect column sizes in the MxAssist Performance Bot pane that occurred after an issue was fixed via recommendation.
  • We fixed an issue in MxAssist Performance Bot best practices MXP003 and MXP007 where they were recommending indexes on external entities.
  • We fixed an issue in the MxAssist Performance Bot Recommendation dialog box for MXP006 where the Delete the microflow after converting checkbox was enabled while the Fix button was disabled.
  • We fixed an issue in MxAssist Performance Bot best practice MXP014 for microflow CRUD placement where it failed for some apps.
  • We fixed an issue in published OData services where serialization stopped when an error occurred, with no way for the client to discover that. Now, there is an error appended to the resulting JSON.
  • We fixed an issue in published OData services where you could specify Write to database when publishing an external entity, which always resulted in a runtime error. Now, the Write to database option is no longer available for external entities.
  • We fixed an issue in published OData services where comparing a number with null resulted in “400 Bad Request.”
  • We fixed an issue in published OData resources that occurred when using a microflow for insert, update or delete operations. Clients that had access to the service and the entity were able to perform the operation, even when they did not have access to the microflow. Now, the Mendix Runtime returns 403 Forbidden in such cases.
  • We fixed an issue in consumed OData services where retrieving an external entity with XPath [NULL = NULL] (or an XPath using variables with the same effect) resulted in an error.
  • For published OData services, we fixed an issue that revealed the existence of attributes to which the user did not have access when they tried to update such attributes with incorrect values. Now, the message “Property _HiddenAttribute_ not found.” is returned, just as occurs when the attribute does not exist.
  • We fixed an issue that caused an exception in rare cases during the conversion of an app with a workflow.
  • We fixed the display of tooltips on disabled context menu items.
  • We fixed an issue where error checking did not finish correctly and outdated errors were still visible in the Errors pane after they were fixed. In addition, the progress bar and text message in the Studio Pro status bar was visible until a new change was made.
  • We fixed an error that appeared when switching documents in the App Explorer.
  • We fixed an issue that caused the user-agent string in runtime statistics to be malformed.
  • We fixed an issue where inserting a pluggable widget into a page or snippet could sometimes result in an error pop-up window.
  • We fixed an issue where setting a dynamic classes expression on an element that did not support it (such as a page) threw an error while checking the app for errors.
  • We fixed an issue that occurred when deploying your app where errors occurred in some scenarios, including when you started deploying while the initial error check was still running after opening the app.

Deprecations

  • We dropped support for MariaDB 10.2, as it is no longer supported by the vendor.
  • We added a deprecation warning to the old merge algorithm, which will be removed in Studio Pro 10. Unless you disabled the New merge algorithm with fine-grained conflict resolution, this new algorithm has been the default merge algorithm for you since Studio Pro 9.0.5. If you disabled the new algorithm because of an issue, please reach out to Mendix Support if the issue is still relevant for you.
  • Starting with Studio Pro 11, we will drop support for the mx.logger client API. From Studio Pro 9.22, this API will be warning users to switch to the window.console logging functions.

Known Issues

  • Attribute widgets (such as a text box) do not trigger a consistency error if the attribute has not been configured, which causes an error when deploying the app. (Tickets 177724, 178455, 178570)