Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

10.19.0 Studio Pro Release Notes #8943

Merged
merged 21 commits into from
Jan 28, 2025
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
144 changes: 144 additions & 0 deletions content/en/docs/releasenotes/studio-pro/10/10.19.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
---
title: "10.19"
url: /releasenotes/studio-pro/10.19/
description: "The release notes for Mendix Studio Pro 10.19 (including all patches) with details on new features, bug fixes, and known issues."
mts: true
weight: 81
---

## 10.19.0 {#10190}

**Release date: January ___, 2024**
MariaShaposhnikova marked this conversation as resolved.
Show resolved Hide resolved
{{% button color="info" href="https://marketplace.mendix.com/link/studiopro/10.19.0" text="Go to Marketplace" title="Download version 10.19.0 from the Marketplace" %}}

### New Features

- We introduced OQL version 2, which contains changes in the OQL engine. The list of changes is available here: [OQL version 2 features](/refguide/oql-v2). By default, OQL v2 is disabled. It can be enabled by setting the [OQL version 2](/refguide/app-settings/#oql-version-2) app setting to *Yes*. You will have to switch to OQL v2 in order to use [view entities](/refguide/view-entities/). {TW}
### Online Synchronization Mode (Beta)
We introduced a new feature for offline apps, that allows app developers to define specific entities as "online available". This means that the offline app will execute queries on these entities on the Mendix Runtime Server instead of the offline database. Of course, this is only possible when you have a connection. This reduces the need to have to synchronize more data then strictly necessary for offline apps as certain parts can become only available when having a connection.

These entities can be configured as online available by configuring the synchronization mode in the offline navigation profiles. A new option has been introduced ("Online") to be selected per entity that you want to have this functionality for.

There are a couple of limitations on mixing online and offline entities in an offline app:
* Offline entities can associate online entities, but online entities cannot associate offline entities
* XPath constraints on offline entities cannot include associations to online entities (and note that XPath constraints on online entities that include associations from offline entities in the constraint, will be fully executed on the Mendix Runtime Server and not take the offline database into account!).
* Online and offline entities can be defined in the same inheritance hierarchy, however list queries on generalizations are not allowed (as that may result in mixed online and offline entity instances).

This feature is currently in Beta. It has to be explicitly enabled via the `Edit` menu >> `Preferences` >> `New features` tab >> `Offline` section.
- We have added a new feedback message for copy-pasting interrupting boundary events. This message appears when an activity already has the maximum allowed (1) and the user attempts to add another. {TW}

* We introduced a new feature for the External Database Connector that uses an updated approach for connecting to databases during design time. This functionality enhances consistency between design time and runtime environments. Make sure to run the app locally with the latest External Database Connector before connecting to the database and running a query.

### Improvements

- We added logging for an object or an attribute found in XML or JSON payload but not mapped in import mapping document. (Ticket 213729)
- We added more support for SOAP arrays in **Import mapping** documents. Previously, only array objects with `item` as a name were supported. Now, any name is allowed for array objects. (Ticket 213729)
- [Current object tokens](/refguide/xpath-keywords-and-system-variables/#object-related) in XPath constraints are now checked if the type of the current object token matches the expected type in the XPath constraint expression. (Ticket 223428)
- We no longer prefix the resulting variable name of list operation actions with "new".
{{% alert color="info" %}}This is based on an [upvoted idea from Maarten Bongers](https://community.mendix.com/link/space/microflows/ideas/3725) submitted to the Mendix Community. Thanks, Maarten!{{% /alert %}}
- It is now possible to select and wrap multiple widgets in a [container](/refguide/container/) by right-clicking the context menu.
{{% alert color="info" %}}This is based on submitted ideas from various users: [Ceydanur Bakanoğlu](https://community.mendix.com/link/space/studio-pro/ideas/4179), [Bart Heijs](https://community.mendix.com/link/space/studio-pro/ideas/3626) and several others. Thank you all!{{% /alert %}}
- When double-clicking a consistency error of an access rule in the **Errors** pane of Studio Pro, we now open the access rule editor with the edit view for this access rule. This improvement is for the Beta release of the new access rule editor only.
- In the new entity access rules editor, we now disable the toggles for entity rights and the member access when the entity lacks the corresponding capability.
- We added support to the new Access editor to set the default access level for new members.
- We improved the XPath constraint syntax. A path ending with an entity can now be compared to an object variable without the need to specify `/id` on the variable. For example, `[Module.OrderLine_Order/Module.Order=$currentObject]` is now a valid constraint.
- We added a progress pop-up window when renaming, including or excluding a document/module in the App Explorer.
- We improved the **Move document** dialog box:
* We removed the context menu from the dialog box.
* We added an option to create a new module or folder in dialog box.
* We removed the **Show** option.
- We made Studio Pro to use the legacy Expression editor by default on Windows. The modernized version can be activated via the preferences.
- We reduced the time it takes to cancel the process of building an app in Studio Pro.
- Cancelling while running locally now happens faster during the *Build deployment structure* phase.
- We improved the way Studio Pro opens dialog boxes, which should reduce the number of issues with Studio Pro freezing because blocking dialog boxes are not visible. Also, this fixes some issues with pop-ups and menus appearing in the wrong location.
- When installing Studio Pro, the ARM version of the Java Development Kit is installed on computers with an ARM CPU. {TW}
- We made the **Commit** dialog box faster and more responsive, which makes it smoother to use.
- When using PostgreSQL or MariaDB/MySQL and a `DatabaseJdbcUrl` that starts with `jdbc:aws-wrapper:` we now use the [AWS Wrapper JDBC Driver](https://github.com/aws/aws-advanced-jdbc-wrapper) to connect to the database.
- We have enhanced the Consumed REST Service editor on macOS by enabling copy and paste functionality via the context menu for the URL field.
- The **Integration** pane improved macOS support and features an improved design. It was also updated to use v5 of the Catalog Search API and now lists search results in order of relevancy instead of alphabetically. {TW}
- [Published OData services](/refguide/published-odata-services/) can now use an authentication microflow that takes a List of System.HttpHeader as a parameter. For newly created authentication microflows, this parameter will be added by default.
- We changed the colors of the CRUD capability indicator when editing an external entity. This makes it more easy to read in dark mode.
- We improved the behavior of Studio Pro when you delete a private constant value from a configuration. Studio Pro now no longer keeps the private value stored in the settings.
- For mobile database library, we switched from `@mendix/react-native-sqlite-storage` to `@op-engineering/op-sqlite`. This improves the following:
- Database execution are faster on Android devices
- Removes the reliance of native encryption support for databases
- We introduced a new method - IMendixObjectMember.isChanged. Returns true if the state of the member has changed.
- We introduced a new method - IMendixObjectMember.isValueChanged. Returns true if the value of the member is different from the original value.
- We introduced a new method - IMendixObject.hasChangedMemberValue. Returns true if the value of any member has changed from its original value.
- We implemented the method `com.mendix.systemwideinterfaces.core.IMendixObjectMember.getOriginalValue` for database binary members (`com.mendix.core.objectmanagement.member.MendixBinary`). Because of this, the rollback functionality will work for this member type from now on.
- We added tracing information in `LogMessage` in the logging API. This can be used by log subscribers.
- For the `console_json` log subscriber we now include tracing information, if `includeTracingInformation` is set to `true` when creating the log subscriber. Additionally `traceIdAttribute` and `spanIdAttribute` can be passed to configure what the attributes of the trace and span IDs should be in the output JSON log.
- We changed the way that OpenTelemetry is [configured](/refguide/tracing-in-runtime/#min-configuration) for the tracing beta. The project should now be run with the OpenTelemetry Java agent in order to configure and enable tracing. The runtime settings related to tracing were removed.
- We made the usage of the [variable name](/refguide/java-actions/#variable-name) more consistent when adding Java or JavaScript action calls from the Toolbox, top toolbar, App Explorer, or Logic Recommender.
- We expanded the message that is logged when a runtime operation fails to be executed for security reasons with a short description of that runtime operation.
- We updated the [widget conversions](/refguide/mendix-client/react/#widgets) to a combo box to include the read-only style of a drop-down, a reference selector and an input reference set selector.
- We updated the The External Database Connector, which now supports connecting to any database by using the Java dependency specified by the user for the respective database in the module settings.

### Fixes

- We fixed the validation of pending tasks from a previous deployment, which could fail in case of optional microflow parameters.
- We fixed an issue in the task validation at startup, which could mark pending tasks with microflow arguments as Incompatible. (ticket 237616, 238191)
- We fixed an issue where deployment could fail when an entity had one system association (owner or changedBy) already in the database and a second one was added later.
- We fixed a bug in the error checking process that could prevent errors for unknown model elements from being removed from the 'Errors' pane in Studio Pro.

- We have fixed an issue that was causing the pluggable widget previews to display incorrectly on structure mode.
- We fixed an issue where list view item actions were not working correctly in the native client in some cases. (Tickets 232033, 237875, 238176)
- We fixed a bug where disposed tool windows were still considered active in the UI, causing Studio Pro to crash when the active editor changed.
- We changed the Expression Editor on macOS to not use smart-quotes anymore.
- We fixed an error that could appear when selecting a Team Server App in the Branch Line Manager.

- System images are no longer visible in the image select dialog for image widgets in the page editor.
- An XPath collection parameter with a single element now has proper type conversion done like other parameters. This issue affected the workflow engine startup in the case where there is only a single workflow defined in the App.
- Fix an error resulting in an app getting stuck when the internet connection is unstable.
- We now inform the user when sending a request in a Consumed REST Service timed out instead of showing an error.
- We fixed an issue when renaming a constant that has a private constant value. The constant value now also gets renamed, so you do not have to enter the value again.
- We have fixed an issue when the user used nanaflow based homepages, the back behaviour wasn't working correctly.
- We fixed an issue in the serialization of the request body of Call REST actions that use a custom request template and Consumed REST operations that use a fixed string body. It now uses UTF-8 encoding instead of ISO-8859-1. (Ticket 235194)
- We fixed an issue in Studio Pro when setting a private value for constant. When it had no value and you wanted to set the empty value, Studio Pro would not save the empty value.
- We fixed an issue when rerunning an app locally from Studio Pro. Studio Pro did not recognize a change in a private constant value as significant enough to restart the app, leading to an instant update and the constant having the old value in the app.
- We fixed an issue in the error details reported by published OData services. For errors containing more than one error detail, such as when a client inserts an object with multiple required attributes missing from the request body, the order in which these details were produced was inconsistent. This inconsistency meant that changing the runtime version could alter the order.
- In the logic editors, we fixed an Oops dialog that sometimes occurred when deleting a microflow or nanoflow.
- In the logic editors, we fixed extracting microflows to correctly create parameters when variables were used in loops.
- In the logic editors, we fixed the displayed output variable name for the Import with mapping action
- We fixed an issue in published OData services using custom authentication. The authentication microflow would read the body of the request, making it unavailable to the microflow implementing the request (Ticket 230628).
- We have improved the memory usage of the Dojo client when running an app for an extended period of time by fixing several memory leaks that would occur when opening thousands of pages. (Ticket 232228)
- We fixed an issue where filtering over system associations 'owner' and 'changedBy' in a Data grid 2 column failed to render. (Tickets 231167, 233168)
- We fixed a Windows specific issue where temporary files created for images upload were not cleaned up (Ticket 181323).
- We fixed an issue where Java actions where instantiated in the wrong classloader, causing a problem where user Java dependencies could not be accessed in static blocks in Java actions.
- We fixed an issue where using the S3 storage service could result in a warning like "If you are using Java 9+, you will need to include javax.xml.bind:jaxb-api as a dependency.". (Ticket 235163, 235904)
- We fixed an issue where if the application failed to reload, it would not restart.
- We fixed an issue with the Edit/Delete buttons in the Jar Dependency Exclusion dialog, these buttons could cause an error if the list was empty.
- We fixed an issue where using the offline web profile could cause errors when sessions were being cleaned up.

- We received reports of multiple tasks being scheduled for the same scheduled event. To handle this situation gracefully, we now clean up the superfluous tasks on startup. Additionally we introduced extra logging to help diagnosing these issues.
- We fixed an issue where migrating a Java 21 application would reset the Java version to 11.
- Fix an error in XPath constraint processing for the web client, that caused a "System.ArgumentException: QueryConstraint not found" exception in Studio Pro (Ticket #236719)
- Fixed the case where the Offline Database is not properly cleaned after sign out operation (Ticket 237830)
- Fixed error handling on Offline PWA Sign Out Action while deleting the local directories while it's empty
- We've updated the button labels in the Changes pane and certain dialogs to use "local" and "server" instead of "mine" and "theirs" for selecting the source when resolving file conflicts. {TW}
- We fixed an issue where the date format changed from 'dd-mm-yyyy' to 'dd-mm-y' when upgrading to Java 21. (Ticket 234598)
- We fixed the typing suggestions for JavaScript actions when autocompleting in the MacOS version of Studio Pro.
- We fixed an issue where applications using the Dojo client would sometimes break caused by browser extensions injecting scripts into the page. (Ticket 236663)
- We fixed an Oops dialog that occurred when opening the 'View on Your device' dialog when running an app with navigation profiles of the same kind. (Ticket 233598)

- We fixed an accessibility issue in tab container where if a tab was hidden, it still had an invisible tab stop.
- We introduced a consistency error when the data source is an entity path with steps traversing from a local to a remote entity. (Ticket 203958) {TW}
- We fixed a bug in the text box and text area widgets where the caret would sometimes jump to the end of the text during typing when the "While user is entering data" [on change behavior](/refguide/text-area/#while-user-is-entering-data) option was used. This occurred when a neighboring widget used the same attribute in an expression, for example for Conditional Visibility. (Ticket 234672)
- We fixed a conversion to account for a difference in order by which variables on a page are presented to widgets. This caused certain [widget event actions](https://docs.mendix.com/refguide/on-click-event/#actions) to change when converting to Mendix 10.4 or higher. Specifically the arguments of [Call Microflow](https://docs.mendix.com/refguide/on-click-event/#microflow-arguments) and [Call Nanoflow](https://docs.mendix.com/refguide/on-click-event/#nanoflow) referring to a selection might have changed if the widget was contained by another widget exposing the same Entity. (Ticket 233988)
_Important to note is that this change does not correct previously converted apps which may now have an unintended argument configuration for Event Actions._

### Deprecations

- We deprecated CustomJavaAction. Please use UserAction instead. Studio Pro will now use UserAction as the base class of Java actions.
- We deprecated the `Core.resolveTokens(..)` method. Please use `Core.evaluateExpression(..)` instead.
- We deprecated `Core.executeVoid` method. Please use `Core.execute` instead.
- We deprecated `IMendixObjectMember.getState()`. You can use `IMendixObjectMember.isChanged` instead.
- We deprecated `ICore.isInDevelopment`. There is no replacement for this method. We recommend you to use constants instead.
- We deprecated `ICore.buildException`. There is no replacement for this method.
- We deprecated the `ActionHandler.setHandlerFactory(..)` method. It was meant for internal use only. There is no replacement.
- We deprecated `UserBlockedException`. There is no replacement.
- We deprecated the enum `com.mendix.m2ee.api.IMxRuntime.RuntimeState` in our internal M2EE API library.

### Breaking Changes

- We reverted the fix for listening between widgets to continue after hiding the selecting widget, such as data grid 2, with conditional visibility. The issue will be addressed in a future release. (Ticket 206642)
4 changes: 2 additions & 2 deletions layouts/partials/landingpage/latest-releases.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ <h4 class="lp-panel-title">Latest Releases</h4>
<a href="/releasenotes/feature-release-calendar/">Mx10 Feature Release Calendar</a>
</li>
<li class="lp-panel-list">
<a href="/releasenotes/studio-pro/10.18/">Studio Pro 10.18.1</a>
<p class="rn-date">Jan 10, 2024</p>
<a href="/releasenotes/studio-pro/10.18/">Studio Pro 10.19.0</a>
<p class="rn-date">Jan 28, 2024</p>
</li>
<li class="lp-panel-list">
<a href="/releasenotes/developer-portal/">Apps</a>
Expand Down