Release date: October 6, 2016Download
- We fixed an issue that caused deadlocks in the server’s internal threading system when dependent actions were sent to the server with very high frequency within the same user session. The cases from the referred tickets involved a call to
currentUserin a microflow, which resulted in the dependent action of retrieving that user from the database. Those calls were executed from the web client in very high volume within one user session. (Tickets 45387, 45317)
Release date: September 26, 2016Download
Remember the feature where you don’t have to retype your password each time you start your hybrid app? The downside there was that once the user had obtained a token, you had no way to revoke it except by waiting for the timeout to expire. Because this is probably not what you want to have to do, we improved on this. The token is now stored as a hashed string in the
TokenInformation entity in the database. This allows you to build pages to show records from the
TokenInformation entity. Even better, this allows you to remove tokens, which invalidates the tokens and forces users to log in again with their username and password. For an example of such a page, take a look at the
DeviceSession page in the
As a bonus, you no longer have to configure the setting
com.mendix.webui.HybridAppLoginSecret. The autologin feature is available out of the box without any additional configuration.
Java Action improvements
Using Java Actions in microflows will feel more native from now on. We achieved this by replacing the grid with a drop-down menu for each argument populated with the following items:
- Matching variables and parameters
- Matching literals for Boolean and enumeration types
- Custom user-defined expressions
We introduced the following new parameter types for Java Actions:
Entitytype allows the user to pass the name of an entity type into a Java Action when it is called in a microflow (for more details, see Java Actions in the Mendix Reference Guide).
Microflowtype allows the user to pass a microflow into a Java Action when it is called in a microflow (for more details, see Java Actions in the Mendix Reference Guide).
We made these improvements to the actions you can trigger from menu items:
- A pop-up page opened from a menu item will now be correctly opened in a pop-up window. Additionally, the page title can be overridden.
- Menu items that trigger a microflow can show a progress bar, ask for confirmation, and run asynchronously (just like action button microflows). (Idea forum Q3 2016 4th place, tickets 326374, 205261, 203537, 204776)
- Menu items now have the option to do nothing. You may think this feature is not very useful (and you may be right). However, it is paving the way to a much cooler feature in the near future!
High-resolution screen support
We have dramatically improved the experience of running the Modeler on high-resolution screens. The user interface of the Modeler now simply scales up to the desired resolution. (Tickets 38252, 39377)
However, there are still some areas of the Modeler that do not work well on high-resolution screens. Feel free to file a support ticket if you encounter an area like this while using the Modeler so that we can prioritize fixing those as well.
Rendering read-only widgets as controls
Input widgets that are not editable are rendered as text, which means that you get a label instead of the widget. Sometimes you want to see a disabled text box instead, and now you can configure this.
We’ve introduced a new property on data views named “Read-only style.” This determines how the widgets in the data view are rendered if they are disabled. To make the feature even more powerful, we also added the property to input widgets (for example, text box, reference selector). By default, widgets will use the value of the enclosing data view, but you can explicitly override this value in every widget. (Tickets 242009, 21610, 462894, 203267)
Microsoft SQL Server and Azure improvements
Microsoft SQL Server 2016 and Microsoft Azure SQL Database are now officially supported. Since we also added native support for time zone conversions for these two database types, .NET is not a requirement anymore. (Ticket 41892)
REST call action
Log HTTP headers
The HTTP headers are now logged when the
REST consume log node is set to
TRACE. This makes the debugging request and response messages easier.
For example, some servers require the user to add certain headers when sending a request message. By knowing which headers are being sent by Mendix, users can add the missing headers in the Modeler to create a valid request message.
Support binary content
In Mendix 6.8, there was no easy way for the user to upload an image to a server. In this release, binary attributes in Mendix can now be sent as binary content in a request. The most common scenario is to use the
Contents attribute from the
FileDocument entity as an input for the REST call action.
Conversely, a binary response (for example, representing a PDF file) can now be stored directly in a file document.
The variables used in the custom request template are now automatically refactored when you rename the variable in the microflow. (Ticket 44097)
We fixed the issue where objects were being collected as garbage in asynchronous microflows that contained a
ShowPageAction. (Tickets 466918, 466436, 466358, 466124)
We now accept a
nullvalue for attributes that have an
regexvalidation rule. When creating and committing a new object,
nullvalues are valid now. The same is true when an existing attribute value is set back to
null. This reverts the behavior to what it was before Mendix 6.6.0.
With the conversion of the data view control bar to the data view footer, we forgot to add some space between the buttons. We’ve made sure that every button has a bit more space now and isn’t hugging the other buttons.
In Mendix 6.8.0, we unintentionally introduced an issue where object changes accumulated on the client when using microflow buttons as custom save buttons. This resulted in superfluous data being sent to the runtime. We fixed this.
In 6.8.0, we broke the old way of passing the originating page to
store.callerproperty). We fixed the backwards compatibility in this release,. However, we advise you to use
mx.ui.actioninstead, which is simpler yet more advanced. For details on this new and easier way of passing an originating page, see the API documentation. (Tickets 44606, 44773)
We made minor improvements to the image collection editors. You can now press Ctrl+N to add new images, and you can press F2 or click the dedicated Rename button to rename your images.
Choosing an existing category name when exposing a Java Action as a microflow action duplicated the entire category in the Toolbox, including all the actions. Now there will be just one category.
When creating a new Team Server project from Themes or Sample Apps, it was necessary to make a first extra commit. This is no longer necessary.
When creating a branch that had characters such as the plus sign (
+)in its name, the branch failed to show the history and perform certain operations such as updating from the Team Server and creating a deployment package. Using characters in the branch names is no longer a problem. (Ticket 41575)
When adding a new microflow call action to a microflow by dragging another microflow from the Project Explorer and then opening the properties dialog box, a pop-up window was always shown stating that the parameters of the called microflow had changed. Now the system only does this if the parameters of the called microflow have actually changed since you created the microflow call action.
When selecting variables for an association of the Reference Set type using the Generate button in a Change Object activity, the list variables of the entity on the other side of an association are now visible. (Ticket 44039)
In Mendix 7, the server state will move to the client so that the server will be stateless and can be scaled horizontally. This has some impact on the Modeler, particularly in the area of non-persistable entities.
The following abbreviations are used throughout this section:
- PE – persistable entity
- NPE – non-persistable entity
PE → NPE traversal
We have deprecated the PE → NPE traversal, as this will be prohibited in Mendix 7. The reason for this is that by allowing these traversals, the tree of objects that can be reached by the objects referenced by the widgets in the client can potentially be very large, which makes garbage collection less impactful. In turn, this can lead to an exploding state in the client, which can eventually lead to very slow request/response times and poor user experience.
The following items are now deprecated:
- PE → NPE traversal in the retrieve-by-association microflow activity.
- The delete behavior options that need to do a PE → NPE traversal in order to be executed.
- PE → NPE traversal in nested (template) grids that use an association source (in pages).
- PE → NPE traversal in nested (template) grids (in document export).
- PE → NPE traversal in export mappings.
- PE → NPE traversal in published web service parameters and return types.
Most of these cases can be fixed by making the necessary inputs be the NPEs directly so that they do not have to traverse the association. Another option is to associate the NPE with the current session (variable ‘currentSession’ in microflows) to prevent garbage collection in Mendix 7. System.Session is an exception on the rule, traversal from System.Session → NPE is allowed. A more detailed guide will be available with the Mendix 7 release.
NPE attribute-level security
We have also deprecated the NPE attribute-level security for attributes that do not have at least read access. This will also be prohibited in Mendix 7. The reason for this is that non-readable attributes cannot be sent to the client. A separate object (which is not sent to the client at all) should be used for these attributes instead.
- If the checkboxes ‘Store owner’ or ‘Store changedBy’ are checked for non-persistable entities, unexpected behavior can occur when running the app. For example, runtime errors like “‘System.owner’ is not a persistable association” or “‘System.changedBy’ is not a persistable association” may appear. The work-around for this problem is to uncheck these checkboxes. This problem is solved in Mendix 6.10.
- Client-sided validation messages are not displayed for widgets with read-only style set to “Control”. A workaround is to temporarily set the read-only style to “Text”. This problem is solved in Mendix 6.10.