6.7.1

Release date: August 9, 2016

Download

Fixes

  • We fixed the NullPointerException that occurred when the '$currentUser' variable was evaluated in a microflow executed in a non-user session (system session). (Tickets 466900 & 466901)
  • You can now use 6.7.1 for opening 5.21.5 projects (it was not possible to open 5.21.5 projects with 6.7.0). (Ticket 467011)
  • We fixed the conversion issues in the Modeler due to excluded mapping documents.

6.7.0

Release date: July 27, 2016

Download

IBM Bluemix Object Storage supported

The Mendix platform now supports Object Storage for IBM Bluemix using OpenStack Swift. For details on how to configure the Object Storage for your application, see the following documentation page: Custom Settings.

Automatically log in to our hybrid apps

That amazingly secure password that seemed such a good idea while typing away at your keyboard can be a major hassle when you’re tapping at your smart phone. That is why we’re introducing an automatic login to all Mendix PhoneGap-based hybrid applications.  

The feature is simple: the first time you open your app, you will be asked to submit your credentials as usual. The server will return an authentication token, which is stored on your device and will be used to automatically log you in on subsequent visits. Optionally, the authentication token can be PIN-protected. If this option is enabled, you will be asked to submit a PIN on your first visit, which can thereafter be used as an alternative to your full credentials.

Automatic login will be a standard feature in a future release, but for now it’s opt-in and will have to be manually activated in your Mendix application settings. To that end, we’ve introduced two new custom settings: com.mendix.webui.HybridAppLoginSecret and com.mendix.webui.HybridAppLoginTimeOut.

To enable this feature in version 6.7, you have to configure a random string in com.mendix.webui.HybridAppLoginSecret. This is used to encrypt your credentials, so don’t share it with anyone!

The second setting, com.mendix.webui.HybridAppLoginTimeOut determines how many minutes your token will remain valid before re-authenticating using your full credentials. This setting defaults to 0, which is equal to no timeout.

As the name implies, automatic login will only work while using a Mendix-generated PhoneGap hybrid app. As the feature includes major changes to the hybrid app itself, you will also have to generate and configure a new app for it to take effect. Note that we currently do not support this feature on Windows Phone.

For more information on how to generate a new hybrid app and how to configure custom settings, see these documentation pages:

We converted the data view control bar to a normal drop zone and renamed it footer. This means that you can now use arbitrary widgets in the footer, where previously only a limited set of special buttons was allowed. The Modeler renders multiple buttons next to each other so that the control bar converted to a footer still looks like a row of buttons. While we were at it, we also revised two properties related to close behavior.

We removed the Is close button property that was only available on data view control bar buttons. Previously, you had to always mark one button on a page as the close button, even on content pages. The Is close button property was used to configure the behavior of the pop-up window close button (that is, the cross in the top-right corner). When the cross was clicked, it would then act as if the marked button was clicked.

You can now configure the behavior of the cross using the Close action property of the page. This property is only available on pages that use a (modal) pop-up layout. The default behavior of the cross is to roll back any changes and to close the pop-up window. We hope this behavior is suitable in most cases. If you want to customize the behavior of the cross, you can still point to a button on the page. If the selected button is not available at runtime, the cross will revert back to the default behavior.

Many of our users have commented that the Close on save/cancel property was confusing, especially in combination with the Is close button property of data view control bar buttons. This property was used to configure whether the page was closed after clicking the save or cancel button. You can now configure that behavior using the Close page property on the respective buttons.

URLs to static pages

We added support for bookmarkable URLs for pages that do not require an object. URLs can be defined on every page and are shown in the address bar of the browser. When navigating to a page without a URL, the last visited URL is shown. All URLs are automatically prefixed with this constant prefix: /p/. For more information, see the Page section of the reference guide.

Developer productivity

Export mappings now support flat JSON. You can select a JSON structure document in an export mapping and you can select JSON elements that are at most one level deep. That means that you can export simple JSON objects like {"Name":"John", "Age":46}. Export of nested JSON structures will be supported in a later version. In a call-REST-service microflow action, you can select an export mapping for the HTTP request and you can send flat JSON. You can also build simple JSON strings by using the export-with-mapping microflow action.

Export mappings sometimes contain mapping elements that can be both optional (minOccurs=0) and nillable (Nillable=true). When a mapped Mendix entity or attribute is empty, you can choose how to send them: either “Leave out element” or “Send as Nil.” The option is available in the property grid of an export mapping and it is only visible when there are elements in the mapping that are both optional and nillable. Both Web service call requests and export-to-XML actions will take this option into account. In Mendix 6.6 and earlier versions, this setting was available at the Web service call action dialog box. That setting has been moved to the export mappings.

Now, when the Modeler updates project that is already running (which is known as fast deployment) and pages of this project are shown in the browser, these pages will be automatically reloaded. And when we say “these pages,” we mean it: the browser will show the exact page that was opened previously, but with all of your changes applied. Just press F5 in the Modeler and you will see your changes immediately in the browser.

We renamed the Back button to the Close page button in order to make it clear that this button can be used for closing both content and pop-up pages.

We also added a client API to detect that a new form has been loaded. Check it out online.

Other fixes

  • We fixed the issue with the $currentUser variable not having an up-to-date value. This could happen when another instance of the same object was changed and these changes were not always reflected in the $currentUser variable. (Tickets 22429, 465323)
  • We fixed the issue with the 1-1 and - associations not getting emptied correctly when the other side was deleted or rolled back (in the case of a rollback, when the other side was still newly created and not yet committed). As a side effect of (un)assigning 1-1 associations or updating - associations, the associated objects now also get changed. (Tickets 466008, 466097, 466466, 466761)
  • Only the changed members for new objects are now validated in order to avoid premature validation errors. (Ticket 466658)
  • Runtime statistics administrative action: restored old memory fields with a value of 0 for backwards compatibility reasons.
  • The microflow debugger performance has been significantly improved and you will no longer experience annoying freezes during debugging. (Ticket 465965, 466382)
  • You can now connect to the Team Server behind your corporate proxy and the Modeler will allow you to accept/install the custom SSL certificate. (Ticket 466360)
  • The Language Operations dialog box is now compatible with low-resolution devices (for example, 1366x768). It can also be properly maximized. (Ticket 466150)
  • We will now respect the name you’ve specified when duplicating the security role of a module. (Ticket 466367, 466066)
  • The Modeler will not show an error anymore if you are looking for usages of an enumeration value without selecting one.
  • When the “Send binary data as attachments (MTOM)” option is disabled in the consumed Web service document, the “xml:” namespace is no longer added to the SOAP body message (because it is not allowed to be present by Microsoft Web services). (Ticket 466164)
  • We fixed the bug where a consistency error would appear about a missing import mapping in a call-Web-service action when you did not need one (for example, in a one-way Web service operation).
  • In export mappings, the consistency error about converting from decimal to float no longer appears. (Ticket 465618)
  • We fixed the error with bundling custom widgets when they depend on “mendix/validator” or “big/big.” (Ticket 462839)
  • We now always load custom widget styling (widgets.css) before the theme, without relying on the presence of a file named theme.css in the index file. (Ticket 465746)
  • For reference selectors with a database data source, the constraints are now checked for errors. (Ticket 465840)
  • We now allow numbers with only a decimal part (for example, “.1”), which we had accidentally disallowed. (Ticket 466000)
  • We fixed the issue that the reference selector on-change microflow was not triggered if its value was first cleared by an on-change microflow and then restored back by the user. (Ticket 466351, 466371)
  • The “no entity message” is now correctly translated to the language of the user who is signed in.
  • We fixed a NullPointerException, that occurred while retrieving the total amount of rows for union queries. (Ticket 465915)

Known issues

  • Using the Microflow debugger on scheduled events results in an error. This does not impact the stability of your apps in production. 
  • 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.