Last update: Download PDF Edit



  • Ticket 9664: Added option to file manager and image uploader widgets to restrict the allowed file extensions.
  • Ticket 9850: Added advanced find feature that searches for microflows of a specified size.
  • Ticket 10092: Improved microflow debug and trace logging.
  • Ticket 9662: Show customizable error message when invalid image was uploaded (without trace information).
  • Ticket 9650: Determine whether to output date and/or time component for CSV exports of DateTime columns
  • Ticket 10149: Added FileID as an index to the FileDocument entity.


  • Ticket 9584: Added option to rename images whose name is already in use when moving to another module.
  • Ticket 9663: Improved error message for missing constant value
  • Ticket 10169: Set created date for objects created in an xml import triggered by a scheduled event.
  • Ticket 9631: Select content of input mask on focus
  • Ticket 9629: Removing newlines from DataGrid content
  • Ticket 10003: Improved logging for failed file upload
  • Ticket 10252: NOT expression was missing in PostgreSQL SQL query when using the NOT and starts-with expressions combined.
  • Tickets 9820, 9878: Added check to detect fully merged rows and columns in document templates. Such rows and columns would lead to errors when generating PDF documents.
  • Ticket 10067: Fixed validation of manually entered Arabic dates
  • Ticket 9567: Removed unnecessary warning when deleting an object with a before delete event
  • Ticket 9438: Initialize input mask when shown by conditional formatting
  • Ticket 9755: Tabs showing validations of DataViewList
  • Ticket 9911: Setting correct content id to widgets in Template Grid
  • Ticket 9907: FileDocument.HasContents will be set to true when there are really files on disk when migrating from 2.4 to 2.5 or higher.
  • Ticket 9633: Do not ask to clear reference when ‘.’ is pressed in Chrome



  • Ticket 8969: Added to Mendix Runtime libraries folder: 64 bit version of Microsoft SQL Server authentication library


  • Ticket 9580: Fixed Excel export button (introduced in 2.5.7)
  • Ticket 8919: Allow empty response messages for document-style web service operations.
  • Ticket 8965: Added option to use excel-compatible date format when exporting CSV
  • Ticket 9025: Fixed nullpointer exception when an existing (subtype of a) filedocument has been changed while doing an import but the Content field was not changed.
  • Ticket 8961: Fixed: Order of parameters in client translate API
  • Ticket 9039: Security improvements
  • Ticket 9029: Wrong Character in Webservice request


  • Ticket 8969: Added to Mendix Runtime libraries folder: 64 bit version of Microsoft SQL Server authentication library


  • Ticket 8919: Allow empty response messages for document-style web service operations.
  • Ticket 8965: Added option to use excel-compatible date format when exporting CSV
  • Ticket 9025: Fixed nullpointer exception when an existing (subtype of a) filedocument has been changed while doing an import but the Content field was not changed.
  • Ticket 8961: Fixed: Order of parameters in client translate API
  • Ticket 9039: Security improvements
  • Ticket 9029: Wrong Character in Webservice request



  • Tickets 6842, 8658: Feature : New option in DataGrid to allow the first row of the initial data to be automatically selected.
  • Ticket 8469: FileDocuments with boolean ‘DeleteAfterDownload’ set to true are now written to a tmp folder (subfolder of files) instead.
  • Ticket 8738: Possibility to define a query timeout for client actions. Configuration property ClientQueryTimeout. Timeout in seconds.

Web service improvements

  • SOAP 1.2 support
  • Ticket 8644: Support for MTOM/XOP
    • When calling an imported webservice which requires MTOM, binary data will be sent or received really binary.
  • Ticket 8402: Improved SOAP fault handling
    • If an web service error occurs, SOAP fault information can be read from the microflow variables lastSoapFaultCode, lastSoapFaultReason, lastSoapFaultNode, lastSoapFaultRole and lastSoapFaultDetail.


  • Ticket 8593: Runtime incorrectly checks empty microflow expressions in optional web service request headers
  • Ticket 8591: Fixed incorrectly placed parameters in SOAP request.
  • Ticket 8802: Fixed incorrect parameters being used in microflows used to get child objects in certain domain-to-xml mappings
  • Ticket 2784: Never allow password-hashes to be shown
  • Ticket 8369: Fixed ReportChart not accepting zooming parameters
  • Ticket 8549: Fixed: date greater than comparison in DataGrid search field
  • Ticket 8279: Don’t return salted SSHA256 password field when retrieving user data
  • Ticket 8595: Added check for inherited types to Domain-to-XML mappings when selecting elements for the mapping.
  • Ticket 8804: Fixed document generator multi-threading problem
  • Ticket 8872: Fixed: Paths were compared by full namespace uri but the type in the xml could actually contain just the prefix which resulted in false negatives for mapping.
  • Ticket 8703: Fixed typo in error message.
  • Ticket 7920: Ensure that empty reference selectors in hidden tabs validate properly
  • Ticket 8563: Fixed problem where “Error(s) in XPath constraint” would incorrectly be reported.
  • Ticket 8886: When using multiple instances of a server, cleanup abandoned sessions regardless of clustermanager when using non-persistent sessions
  • Ticket 8553: An exception occurs on database synchronization when an entity is renamed and an AutoNumber attribute is added to this entity.
  • Tickets 8600, 8271: CSV/Excel export no longer fails when having no read access but simply leaves field empty
  • Ticket 8581: Fixed: default value of DatePicker dropdown when an invalid date is entered
  • Ticket 8535: Multiple security certificates can be used for web service requests; user name and password authentication can be done for web services via SSL connections
  • Ticket 8569: Prevent Microflows on empty selections from being invoked from views (added UI exception message)
  • Tickets 8617, 8621, 8622: Fixed: Usages were not updated when a document was open in edit mode.
  • Ticket 8637: Validation feedback is shown very shortly in a specific case
  • Ticket 8687: Removed an incorrect sequence insert within the process of removing a derivation on an entity in SQL Server.
  • Ticket 8323: Fixed exception during xml mapping when parent entity was null and was used as input parameter for child search microflow.


  • We fixed the error that occurred when loading TabContainer.


  • Tickets 8071, 8316: Use JVM system properties to configure proxy servers for webservice calls. See documentation for more details.
  • Ticket 7950: Added security checks for using microflows from forms.
  • Ticket 7998: Now tables and indexes created by an internal SQL Server component will not be removed anymore on database synchronization.
  • Ticket 8070: Added some more log info on startup to show duration of after startup microflow and database synchronization.


  • Ticket 8256: Fixed an error with renaming elements in the domain model.
  • Ticket 7648: Fixed: a datepicker in a dataview didn’t pick up the custom format settings specified on language level.
  • Ticket 8191: Correctly check ‘empty’ setting in conditional visibility for document generator tables.
  • Ticket 8332: XML Export: don’t render CDATA tags unless export element is of type String
  • Ticket 8003: Fixed: Nullpointer when committing certain references in xml-domain mappings.
  • Ticket 7815: Fixed validation issue with right-to-left dates entered manually.
  • Ticket 7995: Give user friendly message when uploaded image file format is not supported.
  • Ticket 8101: Fixed: rows in the TemplateGrid are forced to start on a new line.
  • Ticket 7117: Fixed update behavior when using multiple grid listeners.
  • Ticket 8247: Fixed table layout issues (tables, datagrids, template grids).
  • Ticket 8261: Allow empty values for enumerations when calling a webservice with an optional parameter.
  • Tickets 8066, 8157: Exception in XML-to-Domain mapping without ‘changedDate’.
  • Ticket 8067: Clarified upload error message.
  • Ticket 8182: Now system attributes/associations like changedDate will always be stored when the highest superobject does have enabled them.
  • Ticket 8136: Show help texts for custom widgets in the form builder.
  • Ticket 8325: Fixed error in Modeler security check.
  • Ticket 7900: Now runtime start status will not be broken when the CLR (SQL Server) cannot be enabled.
  • Ticket 7863: CSV Export: Added option to add a hint for Excel to indicate which separator to use
  • Ticket 8319: Fixed hidden tab being selectable with key navigation.
  • Ticket 7931: Fixed: ‘Bold’ text from Rich Text Editor using <strong> tag is not rendered as bold in document templates.
  • Ticket 8087: Fixed webservice return value example in ws-doc page.
  • Ticket 8082: Improved exception message when processing corrupt CSS style in a document template.
  • Ticket 7989: Fix: BR (linebreak) tags in custom HTML content in document templates.
  • Ticket 7916: Changed behaviour: a warning will be added to the log if you have a ScheduledEvent schedule in the past instead of stopping the startup process.
  • Ticket 7925: Text in TemplateGrid is selectable now.
  • 7914: Fixed reload of Navigator on login.
  • Ticket 7985: Added support for XML schema includes.
  • Ticket 7999: Fixed: Grid showing associated objects in empty view fetching data
  • Ticket 7965: Don’t try to parse a microflow expression when it isn’t even needed nor checked for validity by the Modeler.
  • Tickets 7933, 7937: Resolved conflict between validation updates and microflow instructions to the client.
  • Ticket 8226: Commit changed object when unfocusing DataGrid with inline editing.
  • Ticket 8312: Fixed: error mapping xml files with elements having more than 100 lines.
  • Ticket 8095: Removed redundant scrollbars for nested TabContainer.
  • Ticket 7890: Fixed datagrid styling issues in document templates
  • Ticket 7954: Fixed error in Modeler that could occur when deleting the last user role.
  • Ticket 8054: Fixed: XML Namespace prefixes aren’t resolved when referencing other types.
  • Ticket 8024: Fixed uploads in firefox 4 and chrome.
  • Ticket 8323: Fixed exception during xml mapping when parent entity was null and was used as input parameter for child search microflow.
  • Ticket 7788: Fixed check for XPath constraints on drop-down search fields.
  • Ticket 8090: Fixed double, unconstrained request for aggregates.
  • Ticket 7892: Fixed sticking column headers of DataGrid in IE8.
  • Ticket 8268: Disallow the use of the word ‘Context’ as a name for domain model elements.


  • Ticket 7975: Fixed select all + microflow button on ReferenceSet Selector
  • Ticket 8105: Fixed select all button on DataGrid


  • Tickets 7619, 7159: It is now possible to include rich text in document templates. You can, for example, use the output of the rich text editor (available in the App Store) in a label in your document templates.
  • Ticket 7653: Huge improvements in the memory usage of the web client (most visible in Internet Explorer).
  • Tickets 7573, 7567: Clear the [deployment dir]/web/forms directory on each deployment so that old forms are deleted.
  • Ticket 7472: Minor client-side rendering improvements
  • Ticket 7554: Categorize response of server statistics admin action.
  • Ticket 7762: Added support for a health check microflow with which the health status of a running application can be determined.
  • Ticket 5365: Added button to document template builder to quickly create a static label with page number information in it.
  • Ticket 7648: Added the option to specify a custom date format for date pickers and data grid columns in forms.
  • Tickets 4162, 7784: Class and style can be specified for the buttons of data views, data grids, template grids and reference set selectors.
  • Ticket 7004: Allow data views to listen to reference set selectors (in addition to data grids and template grids).
  • Ticket 7761: Additional support for monitoring critical runtime errors.
  • Ticket 7741: Added documentation for the ‘Close button’ property of data view control bar buttons to the reference guide.
  • Ticket 7550: Fixed unclear error message when importing a WSDL document that contains unreachable external XSDs.


  • Ticket 5218: In MxClient Select All button doesn’t work in template grid.
  • Ticket 7584: Fixed: n-deep paths in link widget.
  • Ticket 7552: Do not reset ConnectionBus statistics after requesting them.
  • Ticket 7211: Exclusive split description in annotation is lost in migration from 2.4 to 2.5.
  • Tickets 7612, 7663: Fixed location export (content, popup, blocking popup) of reference selector select form.
  • Ticket 7734: Fixed: microflow button in control bar always executing async.
  • Ticket 7625: Support for unicode characters in SQL Server hosted multi-developer projects.
  • Ticket 7647: Apply rollback and delete object changes also to microflow scope.
  • Ticket 7283: The caption of the upload button can be configured in the system texts.
  • Ticket 7798: Webservices parse xsd:Long correctly.
  • Tickets 7535, 7631: Document generator: allow empty parameters in generate document activity.
  • Ticket 7561: Using ‘select all’ options in the DataGrid it was possible to select the same object multiple times.
  • Ticket 3101: Fixed user blocking procedure for web service users.
  • Ticket 7772: MxFormView performs validation against dijit widgets.
  • Ticket 7541: Document generator should not override file name of the generated document.
  • Tickets 7589, 6215: Running queries will now be canceled on runtime shutdown.
  • Tickets 7360, 7393: Refreshing external link when value of link or caption attribute changes.
  • Ticket 7665: Fixed: Text too long messages are not triggered by custom save but fails silently.
  • Ticket 7768: Fixed: Hide button when current user is not allowed to see it (specific case).
  • Ticket 7349: Remove, delete and select buttons are not allowed in combination with a select-all button that has selection type ‘Select All’ (as opposed to ‘Select page’).
  • Ticket 7729: 32-bits JVM causes NPE in debian.
  • Ticket 7622: Fixed HSQLDB synchonization when inheritance is removed in model.
  • Ticket 7511: Aggregate functions remain empty on listening DataGrids now remain empty when there is no selection active in the parent
  • Ticket 7613: Full support for using system associations (owner/changedBy) in query paths. Also order by attributes of system associations now works.
  • Ticket 7629: Fixed a bug in multi-developer projects where XML schemas were not properly refreshed.
  • Tickets 7606, 7683: Fixed error that occurred when converting a 2.4 project containing data sets to 2.5.3.
  • Ticket 7524: Fixed: obscure styling bug in IE resulting in unselectable grids in tabs.
  • Ticket 7597: Fixed error which occur while retrieving system associations (owner/changedBy) via association depth (higher than 0).
  • Ticket 7635: Fixed incorrect XPath query parsing in case of constraints like [a or (b and association-expression)].
  • Ticket 7590: Allow template grids in select forms of reference (set) selectors.
  • Ticket 7311: Fixed refreshing of referred attributes in DataViews with a reference source.
  • Ticket 7245: Fixed: listen function on details of new record.
  • Ticket 7451: Fixed: xsd:Date type not processed correctly when generating XML.
  • Ticket 7811: Fixed: show 0 instead of NaN for avg result of empty xpath set
  • Ticket 7216: Fixed: Location of error for invalid usage of microflow return type was unclear.
  • Ticket 7445: Support custom date format for CSV/Excel export.
  • Ticket 7618: Fixed custom theming deployment for the trial cloud.
  • Ticket 7306: Escape “$” and “\” occurrences in the replacement argument for the String replaceAll method (see http://download.oracle.com/javase/6/docs/api/java/util/regex/Matcher.html#replaceAll(java.lang.String))
  • Ticket 7411: Fixed HSQLDB synchonization when inheritance is removed in model.
  • Ticket 7777: Use en_US for System translatable texts if default language is not en_US or nl_NL.
  • Ticket 7724: Added en-za locale
  • Ticket 7837: Always show the startpage after login, even when the same user logs back in.
  • Ticket 7473: In document templates column operations (add/move column) now also work when right-clicking cells (as opposed to the header).
  • Ticket 7834: Set ChangedDate when objects originate from Find or Microflow in XmlToDomainMapping.



  • Ticket 7317: Provide API calls to retrieve the mapping from domain model elements to database tables and columns.
  • Ticket 7339: Allow specifying a value for top-level Binary parameters of web services.
  • Ticket 7157: Datepart support in XPath
  • Ticket 3192: Improved documentation for division: both div and colon (:) can be used to divide numbers in microflow expressions.
  • Ticket 7212: Fixed odd cursor behavior in number input with group digits
  • Ticket 7404: Made microflow activity dialogs vertically resizable
  • Ticket 7396: XPaths, OQL queries and microflow expressions can be searched textually (Ctrl-F). Consequently, the “Find text in XPaths” option in “Find advanced” (Ctrl-Shift-F) is gone.
  • Ticket 3589: Deploying a new application version doesn’t require to clear the browser cache anymore to see the changes!
  • Ticket 1712: Add user and user role information to messages of exceptions triggered by users.
  • Ticket 6221: Missing documentation for microflow expressions getKey and isNew.
  • Ticket 7448: Disable buttons which need context but haven’t
  • Ticket 7165: Added methods to the Core API with which non-persistent session information can be retrieved.
  • Ticket 7361: Project settings: Allow passing custom server settings during startup.
  • Ticket 7141: Fixed disappearing popup when width is bigger than viewport
  • Ticket 7381: You can now configure the first day of the week for the datepicker widgets in the project settings
  • Ticket 7196: Search in data set OQL query.
  • Ticket 7224: Option to log JSON requests.
  • Tickets 2644, 3761: For new AutoNumber attributes, their column values will be automatically updated for the current rows in the table of an entity
  • Ticket 7304: Customizeable date format in document generator
  • Ticket 6067: Removed ‘File > Close Project’ shortcut key and changed ‘File > Close All’ shortcut key to Ctrl+Shift+W
  • Ticket 7292: Editable property of attribute widgets: renamed value Always to Default because editability also depends on security.
  • Ticket 7164: Give a warning when creating a deployment archive while the project security level is not ‘Production’.
  • Tickets 6237, 5639: Enum captions are shown as node title
  • Ticket 7246: ‘Service name’ support in addition to SID for oracle connections.
  • Ticket 7225: Set Reply-To field in e-mail module.
  • Ticket 5633: Added ‘Go to enumeration’ context-menu-item on microflow parameters.
  • Ticket 7421: Allow static image viewers in template grids of document templates
  • Ticket 7299: From now on, free joins can be made in OQL with all entities. An association is not required anymore as path to an entity.
  • XPaths, OQL queries and microflow expressions can be searched textually (Ctrl-F). Consequently, the “Find text in XPaths” option in “Find advanced” (Ctrl-Shift-F) is gone.
  • Added functions to extract date parts from DateTime values (year-from-datePart, month-from-datePart etc.) in XPath constraints.
  • The Auto-Check Delay can be set to 50ms (previous minimum was 500ms).
  • Ctrl+Enter saves changes and closes the form in most microflow expression edit forms.
  • In the microflow editor: clicking in a loop selects the loop now. This makes it easier to resize big loops.


  • Ticket 7255: Add Linebreak in doc template doesn’t work / wrong icon
  • Tickets 7347, 7163: Don’t enable widgets which should never be editable
  • Tickets 7328, 7442: Disabled focus manager when using inline editing
  • Ticket 7254: Modeler performance issue.
  • Ticket 6123: Exception in modeler when deleting module
  • Ticket 7142: Bug in multi-developer project using PostgreSQL 9.0
  • Ticket 7117: Fixed update behavior when using multiple grid listeners
  • Ticket 7160: Fixed issue with showing old content while user reauthorizes with different user roles
  • Ticket 7078: Empty context if entity doesn’t match DataView’s entity
  • Ticket 6003: Fixed domain-to-XML mapping bug.
  • Ticket 7214: Fixed issue with DataView sending a commit/rollback while readonly
  • Ticket 7329: Async on button in controlbar van Dataview doesn’t work
  • Ticket 7247: (Same as 7226) Fixed exception for some cases with an existence expression as security XPath constraint
  • Ticket 7280: Now XPath constraints with OR’s and long paths, do not create large nested SQL constructions anymore.
  • Ticket 7240: Batch Replace Error
  • Ticket 7321: Ref set selector constraint stopped working
  • Ticket 7190: Fixed FormView disabled state which broke onchange actions
  • Ticket 7265: Missing aliases in SQL in case of long XPath constraints with more then one occurrence of the same inherited entity
  • Ticket 7186: Fixed security check for microflow buttons with Visible set to ‘Always’.
  • Ticket 7063: Background of blocking popup covers the entire screen after window resize
  • Ticket 7379: Don’t generate simple body parts twice in XML
  • Ticket 7367: LoginListener check is performed twice by the runtime
  • Ticket 7256: Disallow editing cross-module associations in the child domain model
  • Ticket 6236: Inconsistent behavior of paging buttons for datagrid and templategrid
  • Ticket 7257: Loading multiple certicates results in a stacktrace
  • Ticket 7312: Internet connection check is only performed when opening the AppStore, not when the Modeler is started.
  • Ticket 7377: Validation of new objects should be performed before commit (such that other before commit actions are not triggered if validation fails).
  • Ticket 7206: Fixed processing of ‘Warning’ level microflow log activities.
  • Ticket 6989: XPath constraint bug in retrieve action
  • Ticket 7291: Visibility of data grid new button doesn’t check security
  • Ticket 7286: Setting the web service result mapping parameter had no effect.
  • Ticket 7489: Fixed loading of widget.css when using multiple websites in IIS
  • Ticket 6133: Process published web service input parameters in a separate transaction such that their creation can be rolled back when input parameter processing fails.
  • Ticket 7497: Fixed problem with inheritance and edit buttons
  • Ticket 6138: Copying style from textarea in TemplateGrid
  • Ticket 7226: (Same as 7247) Fixed exception for some cases with an existence expression as security XPath constraint
  • Ticket 7368: LoginAction is executed but produces ‘not found’ error in console
  • Ticket 6271: More precise error after shortening field
  • Ticket 7209: Can’t read WSDL - Unsupported complex type base64Binary
  • Ticket 7024: Added check for using attributes with unique validation as key in XML-to-domain mappings
  • Ticket 7356: XML export didn’t escape “>”
  • Ticket 6916: Custom Calendar widget shows error in console log when loading
  • Ticket 7294: Fixed adding SSL certificates in a multi-developer project
  • Ticket 7351: Added addYearsUTC, addMonthsUTC and addDaysUTC for cases in which a UTC calendar should be used. addYears, addMonths and addDays will use the default calendar.
  • Ticket 7322: In a retrieve action in microflow: when sorting on an associated attribute, the sorting is now correctly updated when the association is renamed.
  • Ticket 7232: Changing the constant in an imported webservice tries to read the WSDL again
  • Ticket 7048: Fixed bug in ReferenceSelector which caused a form to stop loading
  • Ticket 7309: Null-check for button captions in IE
  • Ticket 7355: Fixed average and sum floating point computation for microflow aggregate action.
  • Tickets 7223, 7177: Modeler crashes after menu item: Tools/ Language operations
  • Ticket 7402: Bugfix to avoid NullPointers for (complex) header elements in SOAP responses
  • Ticket 6394: Complex web service with inheritance in parameters
  • Ticket 7509: Webservice import bug
  • Ticket 6114: List parameter of published web service should always be optional
  • Ticket 7278: commit bug after uploading file
  • Ticket 7144: Renamed ‘Data source’ to ‘Server’ for SQL Server in Modeler multi-developer configuration
  • Ticket 7172: Runtime start error when copying string attribute with regex in default value
  • Ticket 7075: Incorrect attribute type returned in query
  • Ticket 7156: Added support to CreateBatch for reversed self references.
  • Ticket 6629: Changing location constants of an imported web service is now possible when the WSDL file/url is currently unavailable (e.g. on an unavailable network drive).
  • Ticket 7521: Only super entity form is opened from edit button
  • Ticket 6154: Migration to 2.5 of Java code accessing data store configuration data
  • Ticket 6827: Listening dataview in combination with current object, reference selector and tabpages throws exception.
  • Tickets 7195, 7441: Typo in modeler (“enitites”)
  • Ticket 7251: Fixed synchronization issue for inherited object changes (incorrect database queries on non-existing system attributes)
  • Ticket 7125: Incorrect “Value for object attribute ‘X’ has minOccurrs 1 or * but was not found in the xml” error
  • Ticket 7372: Corrected loading grid data when column data come from (different derived) associated entities
  • Ticket 7124: Parameters in XML mapping not passed correctly
  • Ticket 5776: Web service import fails
  • Ticket 7417: Use correct margin for footers in PDF document export
  • Ticket 7153: Fixed correct handling of n-deep paths in DataView
  • Ticket 7215: Showing empty value instead of null in TemplateGrid in IE
  • Ticket 7293: Exception when trying to import WSDL from file
  • Ticket 7290: Fixed enabling node while attribute is readonly
  • Module-level security nodes were not immediately shown/hidden after changing the project’s security level.
  • Storing certificates in a multi-developer database was not possible.
  • Fixed an issue where the JDK location was not detected on 64-bit Windows if only the 64-bit JDK was installed.



  • Ticket 6906: Date time formatting in Document Templates will now adapt to the regional settings.


  • Backwards compatibility issue: existing FileDocuments (and thus images) couldn’t be downloaded in the client.
  • Ticket 7150: Fixed: problem with reference set selectors and associations with owner set to both.
  • Ticket 7134: Minor styling fix.
  • Ticket 7155: Problem with selecting widgets in the Modeler from an Appstore package containing multiple widgets
  • Ticket 7152: The url check in webservices didn’t work in a very specific case. Fixed and better error logging.
  • Ticket 7148: Fixed: a problem with security and System.owner.

Release notes for Mendix 2.5.2


  • Ticket 2175: It is now possible to clear the recent projects menu
  • Ticket 7073: It is now possible to add search fields to reference set selectors.
  • Ticket 6906: It is now possible to configure date formatting (time, date or date and time) in document template grids and dynamic labels.
  • Ticket 7068: The Modeler now gives the ability to lock the search results dock, new search results will be shown in another dock.
  • Ticket 6782: New microflow action ‘Log message’ to create messages that appear in the application log.
  • Ticket 6586: New function added to XPath and OQL: length()
  • Ticket 6585: It is now possible to configure proxy settings in the Modeler to access the Appstore and other community sites.
  • Ticket 5984: Support for CA and client certificates (to call web services over https requiring such certificates).
  • Ticket 6805: Each webservice call microflow activity can now point to a custom webservice endpoint (for example: based application data).
  • There are two dockable windows for find results. The first can be locked which makes the results of subsequent searches go the second one.
  • New ‘Find advanced’ dialog (reachable from the ‘Edit’ menu or using Ctrl+Shift+F), which groups advanced find operations such as ‘Find unused items’ and ‘Find microflow actions’.
    • New find operation ‘Find externally used microflows’ in the ‘Find advanced’ dialog that searches for microflows that are used in navigation, forms or published as web service operation.
    • New find operation ‘Find changes to attribute or association’ in context-menu of attributes/associations and also in the ‘Find advanced’ dialog.
    • Find all documents and find documents of a specific type with more details. This feature is available from the ‘Find advanced’ dialog and replaces the scheduled events overview that was reachable from the ‘Project’ menu.
    • New find operation ‘Find event handlers’ that finds all event handlers of all entities. This replaces the ‘all events’ button in the domain model editor.
    • Find usages of variables of a specific type.
    • And more!
  • Language operations dialog to quickly move, copy, swap and delete all texts of a language in specified modules, reachable from the new ‘Tools’ menu. ‘Batch translate’ and ‘Batch replace’ have been moved there as well.
  • Unlimited undo/redo in XPath, OQL and microflow expression editor.
  • New ‘Go to other side’ menu item in context menu of cross-module association.
  • Use F2 to edit the name of an entity, attribute or association.
  • Better keyboard support in selectors (Alt-N = New, Alt-O = None).
  • Errors can have multiple locations (right-click error to go to other locations), and locations can include property names.
  • When opening an .mpk project package, suggest the file name of the .mpk as project name instead of “Project”.
  • Target namespace for published web services is now configurable per published web service.
  • Selecting an entity deriving from System.Image in a data view now generates an image viewer and uploader.
  • Attributes of unused entities are no longer shown as results of ‘Find unused items’.
  • Allow using associations owned by the parameter object in XML-to-Domain mappings.
  • The automatic background checking for errors can be delayed to improve responsiveness of the Modeler (see Edit > Preferences). By default background checking is delayed by 2 seconds.


  • Ticket 6902: Fixed: exception when creating an object without attributes
  • Ticket 6787: Data grid doesn’t refresh columns which are set to editable (inline editing)
  • Ticket 6974: Improved database query performance on domain model changes.
  • Ticket 6853: Fixed: enters are not shown in a text area in a template grid
  • Ticket 7082: Fixed: a reference set selector in a goto form of a reference selector did use the wrong context to constrain data.
  • Ticket 6460: Make sure the runtime is fully stopped after the developer license exceeded.
  • Ticket 6485: Give proper validation message when entering a character in an autonumber searchfield.
  • Ticket 6490: Small fix in layout for exporting Document Templates to HTML
  • Ticket 7070: Putting an empty value in an optional element of a webservice call doesn’t give an error anymore
  • Ticket 6228: Fixed: Mendix Service Console ( uses wrong class loading order.
  • Ticket 6487: Fixed: find all references on object which is used as an argument for a webservice, is not listed in found items.
  • Ticket 6702: In validation feedback action check that the selected association still exists (not just for attributes).
  • Ticket 6961: Added formatting properties to Export-to-CSV button:
    • Decimal separator (default “.”),
    • Group separator (default “,”),
    • Delimiter (default “;”).
  • Ticket 6582: Excel export button caption on report matrix can now be changed.
  • Ticket 6744: Give an error for columns that have property ‘Show tooltip’ set to true, even though no tooltip form is specified for the grid.
  • Ticket 6223: Fixed error with exporting dates to excel
  • Ticket 6548: Menu option ‘View > Reset Layout…’ to reset the layout of the dockable windows to factory defaults. This is especially useful if you sometimes work with multiple monitors and others times not.
  • Ticket 6528: Extended timeouts for deploying to the trial cloud to prevent errors for large projects
  • Ticket 6846: Fixed warning in generated proxy code: import java.util.ArrayList only for parameters, not for return types.
  • Ticket 6780: XML can now be embedded in webservice calls, even when it contains ]]> strings.
  • Ticket 6911: Fixed a problem with the creation of user accounts from the m2ee console.
  • Ticket 7003: Don’t send queries (to refresh) to the server if a grid isn’t visible for the user.
  • Ticket 7002: Fixed: styling in Internet Exporer 7 with nested tabs was ‘disabled’.
  • Ticket 6488: It is now possible to set default access rights for new members of an entity (none, read, read / write).
  • Ticket 6225: Searchfields on data attributes didn’t get cleared when a user clicked reset
  • Ticket 6643: It is now possible to use the scientific notation for floats in XPath.
  • Ticket 6903: Fixed: NullPointerException when passing ‘empty’ as input for microflow list operation action
  • Ticket 6781: Fixed: generalisations and create issue in a specific client workflow case.
  • Ticket 6603: Validation feedback isn’t shown in the progress bar anymore. The progress bar will be closed, the validations are shown below the input fields as in all other situations.
  • Ticket 6789: For date attributes with “Localize” set to “No” use UTC timezone when exporting to CSV/Excel.
  • Ticket 6107: Modeler didn’t reset constraint-by paths when an association was removed in the domain model
  • Ticket 6800: Fixed exception when exporting to Excel in a specific case.
  • Ticket 6492: More robust error handling in JSON API for custom widgets.
  • Ticket 6858: Fixed: validation feedback shown in a popup instead of below the input field in a specific case.
  • Ticket 6824: Er is geen duidelijk/volledige uitleg voor updaten van een windows server
  • Ticket 6523: Fixed: control bar of nested datagrid in nested dataview wasn’t visible.
  • Ticket 6976: Fixed: SQL exception in document export.
  • Ticket 7088: Show message instructions weren’t executed by the client if validation instructions were available.
  • Ticket 6821: Report that non-existing module roles are implicity removed when editing the module roles of a user role.
  • Ticket 5999: Fixed a problem with using datetime tokens in XPath.
  • Ticket 6601: Fixed error during synchronization of Domain Model and database
  • Ticket 6559: Security check correctly handles following associations in reversed direction (as allowed in search fields).
  • Ticket 6917: Fixed a history problem in Safari (leading to a client freeze).
  • Ticket 4335: Breadcrumbs didn’t reset when clicking a menu item.
  • Ticket 7012: Fixed security error.
  • Ticket 6786: Preserve case value on sequence flow when extracting a submicroflow.
  • Ticket 6790: Disable GZip when deploying locally. GZip theme files when creating a deployment package (.mda).
  • Ticket 6124: Fixed a problem with multiple spaces in Document Templates
  • Ticket 6899: Fixed: webservice value element of type double isn’t parsed correctly as input parameter in converter microflow
  • Ticket 6918: The iterator variable name was not renamed when pasting a loop, resulting in errors.
  • Ticket 6158: Non-localized dates did give errors sometimes on object creation
  • Ticket 6851: Fixed: datagrid listening to other grid did show all items if empty and when clicking a column header to sort.
  • Ticket 6905: Fixed: changing attributes in a reference selector goto form didn’t update the attributes visible in the main form.
  • Ticket 6701: Do not allow multiple incoming flows for an exclusive split.
  • Ticket 6525: It is now possible to select and copy text in datagrids in Firefox.
  • Ticket 6576: Fix for word-wrap in exporting Document Templates to PDF
  • Ticket 6608: Fixed security error.
  • Ticket 6580: Fixed: select button on form of reference set selector deletes values if no value is selected a second time.
  • Ticket 7021: Fixed: a navigation tree item with a microflow as target didn’t work.
  • Ticket 6963: The Modeler is now much more responsive when having many documents open at the same time.
  • Ticket 6847: Fixed Excel/CSV export for reference set virtual attributes.
  • Ticket 6452: CreatedBy and ChangedBy values were not retrieved correctly in all situations if the value was a child object of System.User.
  • Ticket 6923: Language didn’t properly change / refresh when anonymous users are enabled
  • Ticket 6788: Custom widgets can now make use of the new FileID attribute in a FileDocument to retrieve files and images. This ID is uniqe and immutable.
  • Ticket 6330: Better error handling for OQL queries.
  • Ticket 6544: Inline login screen (for anonymous users) buttons were in reversed other (compater to normal login screen).
  • Ticket 6583: Better error handling for missing files when a user tries to download them.
  • Ticket 6462: Added consistency check to the domain model to prevent errors in generated Java code (for proxies)
  • Ticket 6402: Fixed a problem with popup position on small screen resolutions.
  • Ticket 7062: Fixed: paging on reference set selectors does not function correctly
  • Ticket 6856: It is now possible to configure the tabindex of a tabcontrol widget. You can set it to -1 if you want to skip it.
  • Ticket 6549: Support for PostgreSQL 9.0. The runtime is still faster on PostgreSQL 8.3 because queries are optimized for that version.
  • Ticket 6531: Create proper database transformations if user role names are changed during the conversion from 2.4 to 2.5.
  • Ticket 6719: More robust sending of FileDocuments via webservices.
  • Ticket 6807: Fixed processing empty microflow loops and display all instances of messages with equal content.
  • Ticket 6969: Fixed: Eclipse launch confiiguration doesn’t work if project directory name isn’t the same as the project name.
  • Ticket 6705: Explicitly set character set UTF-8 in soap calls.
  • Ticket 6730: Added validation to datetime searchfields.
  • Ticket 6581: Better support for nillable XML elements in XML schema/mapping editors and web service calls.
  • Ticket 6822: Improved error messages related to selected mappings in the call web service action.
  • Ticket 6584: Fixed: Windows 7 high DPI setting makes Domain Model unreadable.
  • Ticket 6904: Fixed: Exception “Operator * not supported in expressions [1.2 * 1]”
  • Ticket 6510: Fixed errors in example webservice requests in ws-doc.
  • Ticket 7032: Added UTC functions to microflow expressions for creating/formatting/parsing/trimming DateTime values.
  • Ticket 6533: Added consistency check to prevent using a calculated attribute in its own calculation (will lead to infinite loops)
  • Ticket 6801: Fixed: default value of the SearchField does not always work
  • Ticket 6966: Fixed: oql left outer join results in incorrect sql
  • Ticket 6915: Fixerd: sort order problem with associated attributes in nested grids in Document Templates
  • Ticket 6131: Don’t localize a date in an XML mapping if localize is set to no.
  • Ticket 6489: Windows server configuration program now supports settings for number of log files and the max size of log files.
  • Ticket 6491: Updated HSQLDB drivers (built-in database)
  • Ticket 6863: Always allow administrator to login, even if maximum allowed users has been exceeded.
  • Ticket 6578: Fixed type check of if-then-else expressions in microflow expressions.
  • Ticket 6802: Fixed: aggregate functions on a datagrid didn’t work in combination with XPath constraint.
  • Ticket 6459: Retrieve write access rules for objects retrieved by a datagrid with inline editing enabled.
  • Ticket 6579: Parse dates with timezone but without time correctly.
  • Ticket 6967: Fixed: microflow change action results in null pointer exceptoin in a very specific case.
  • Ticket 6545: Proper error message handling in webservices.
  • Ticket 6826: Fixed: exception when calling a webservice
  • Ticket 6231: Improved error messages when encoutering configuration errors in production mode.
  • Ticket 6962: Fixed Excel export for decimal separators in different locales.
  • Ticket 6220: Retrieving objects in a microflow which doesn’t apply entity access couldn’t be refreshed properly in the client.
  • Ticket 6600: Fixed: reference set selector N-deep column empty in client.
  • Ticket 6535: A dataview listening to a grid will now be emptied if the item it listened to is removed.
  • Ticket 6823: Fixed: nested dataview doesn’t inherit Editable: Never.
  • Ticket 6449: A grid with inline editing now also listens to refresh instructions for specific objects. This means that calculated values (e.g. in befor commit microflows) are directly shown in the grid.
  • Ticket 6854: Searchfields are now supported on a reference set selector.
  • Ticket 6952: Fixed: readonly field & reference field backspace error in IE
  • Ticket 6944: Fixed: deleting items on multiple pages of a datagrid at once didn’t work.
  • Ticket 6898: Support for sub-urls (i.e. deploy Mendix as IIS application)
  • Ticket 6746: Fixed problem with database synchronization in combination with a specific inheritance change.
  • CSV: Count number of rows to export before retrieving data. Retrieve data in batches (default value: 5000) to avoid huge memory consumption.
  • CSV/Excel: Fixed export for columns with format set to Time or DateTime. Fixed export for grids with multiple columns having the same attribute path.
  • CSV/Excel: Complain when attempt is made to export an invalid enum value.
  • The Modeler could not open a project when the Turkish locale was used.
  • The security of the System.Image entity did not give access to HasContents, resulting in no images in the Client if you used Image directly.


This is a minor maintenance release focusing at some small problems in 2.5.1.

Styling fixes

  • Ticket 6738: logout image wasn’t found on Linux deployments.
  • Ticket 6728: loading icon did sometimes stays visible when no action was performed.

Integration fixes

  • Ticket 6733: empty XML elements only lead to NumberFormatExceptions when validation is enabled in the mapping.
  • Ticket 6637: moved a warning to debug instead of info in XML mapping.
  • Ticket 6652: fixed an error in webservices (exception when creating an object is some cases).

Data rtrieval fixes

  • Ticket 6641, 6640, 6560: Fixes in query mappings.
  • Ticket 6654: Retrieve id’s with too much id’s did lead to wrong queries on some databases.

Performance fixes

  • Ticket 6599, 6419: a specific type of query was much slower in 2.5.1 due to our performance improvements. Now ALL queries are faster.

Microflow fixes

  • Ticket 6740: bug with passing enumeration parameter to rule.

Modeler fixes

  • Fixed a problem in the project settings dialog in case the database name was invalid.
  • The security of the System.Image entity did not give access to HasContents, resulting in no images in the Client if you used Image directly (as opposed to a generalization).
  • No more auto-completion when typing a dot (.) in a string literal in microflow expressions.

The 2.5.1 release focuses on performance in all areas (Modeler, Runtime and Client). Additionally the domain model editor supports UML-like notation. It also contains many other improvements and fixes.

Performance improvements

  • The client (including all widgets etc.) loads up to two times faster.
  • Requests to static content, such as .html, .js and .css files, are now GZIPped when possible. This leads to faster response times for low-bandwidth connections.
  • Performance of database queries (notably retrieves) has been optimized.
  • Opening/exporting projects: up to 1.6 times faster.
  • Deploying: up to two times faster.
  • Model checks: up to three times faster.
  • Model checks are performed in the background (no more popup!).
  • Find unused documents: up to 24 times faster.
  • Improved drawing speed of document template editor.

Functional improvements

  • The Domain Model editor now uses UML notation! For nostalgic reasons, you can still switch back to the old notation using the Edit > Preferences menu option.
  • The Modeler now sports incremental search in all selectors! When selecting a form or microflow for example, just start typing and all matching items will be automatically displayed. Use the Arrow Up/Down keys to move through the matches and Enter to confirm.
  • You can now search for the usage of objects of specific entities in microflow actions (Create, Retrieve, Change, Delete, Rollback) by right-clicking an entity and selecting ‘Find microflow actions’.
  • You can now export a Modeler project as package including all external files such as Java source and widgets. You can even include the data (if you’re using the built-in database) to create demo projects! The Mendix App Store also supports uploading and downloading project packages.
  • Duplicate documents in the project explorer using the context menu or Ctrl + drag/drop.
  • New data grid button ‘Export to CSV’ which enables you to export the contents of a data grid to a CSV file.
  • Ability to retry starting the server when the server or runtime port is in use.
  • The maximum number of rows can be specified on Export-to-Excel/CSV buttons.
  • New property ‘Validate against schema’ (default False) for XML-to-domain mappings.
  • The Project > ‘Create deployment archive’ menu option no longer requires that you run the project at least once.
  • ‘Refresh in client’ is now visualized in the microflow editor for Create, Delete and Rollback actions.
  • New ‘Getting Started’ form when opening the Modeler.
  • You can now rate App Store apps and write reviews directly from the Modeler.
  • Improved visualization of the grid search bar:
  • Search bar is grayed out instead of invisible when the search bar is never visible in the client.
  • Search bar is at least one row high (instead of two).
  • Improved visualization of the image viewer: show entity/path, visualize thumbnailness.
  • Ticket #5845: New data grid search field operator ‘Starts with’ which enables you to search for attribute values that start with a certain search string.
  • Ticket #5985: New microflow action ‘Export XML’ which enables you to export domain data to an XML file.
  • Ticket #1545 & #2833 & #5941: Get caption function call for enumerations in microflow expression.
  • Ticket #3018: UML notation for the domain model.
  • Ticket #4747: Only compile java actions if code changed.
  • Ticket #5224: Module navigation tree expansion in “Select Entity” popups.
  • Ticket #5225: Darker highlight color for selections in the Project Explorer.
  • Ticket #5332: Added commit and delete methods to proxy classes and removed confusing initialize method.
  • Ticket #5423: Added possiblity to sort on associated attributes in microflow “Retrieve” activity.
  • Ticket #5510: Added “goto microflow” button in entity events tab.
  • Ticket #5728: Different icons for xml-to-domain and domain-to-xml mappings.
  • Ticket #5743: (N deep) search for 0-1 and 0-N references.
  • Ticket #5868: Added delete possibility to the reference set selector.
  • Ticket #5917: Bundle upload files in to folders with a maximum of 1000 files.
  • Ticket #5918: Added possiblity to use user role tokens in XPath constraints.
  • Ticket #5958: Added option to handle failed creation for XML import objects.
  • Ticket #5973: Possiblity to override document template margins in “Generate document” activity.

Runtime fixes

  • Ticket #5380: Do not show validation feedback for an unfocused tab page in a popup.
  • Ticket #5417: Do not show validation feedback on refresh, but on save.
  • Ticket #5448: Fixed screen lock when moving a popup with an on leave microflow.
  • Ticket #5495: Texts of editable columns should be selectable.
  • Ticket #5718: More user friendly message when file upload fails due to 404s or 413s.
  • Ticket #5758 & 5923: Generate static content when creating MDA-files.
  • Ticket #5794: Security error on show datagrid.
  • Ticket #5800: Objects for which no security access exists should not be refreshed.
  • Ticket #5802: Also apply sign in refresh when user role is the same, but user is different.
  • Ticket #5836: M2EEServer monitoring actions require separate authentication.
  • Ticket #5851: Fixed creating derived entities using a reference set selector.
  • Ticket #5902: Improved performance for reference selector connected to specialized entities.
  • Ticket #5905: With “wait for search” enabled a grid should not show data when a sort column is clicked while the search buttons has not been clicked.
  • Ticket #5907: Close instruction was not being triggerd for a popup in certain circumstances.
  • Ticket #5916: Passing on enclosing objects to a microflow failed in complex situations.
  • Ticket #5947: Automatically scroll downwards in the microflow debugger when the screen fills up.
  • Ticket #5950
  • Ticket #5953
  • Ticket #5993: Fixed listen to for template grids.
  • Ticket #6029: Fixed XML import for M-N relation to parameter.
  • Ticket #6059: Improved error message when web service is being called with’empty’ argument.
  • Ticket #6063: Fixed validation of imported XML documents.
  • Ticket #6084: Fixed visibility of microflow buttons in template grids.
  • Ticket #5977: Closing a form in content which is opened from a menuitem, doesn’t work.
  • Ticket #5965: Faulty number of elements indicater in a grid when paging and search are combined.
  • Ticket #5945: Domain-to-XML mapping in combination with obtain by microflow gave an error.
  • Ticket #5793: XML-to-domain mapping gives error member not found while the mapping in the Modeler is correct.
  • Ticket #5846: Set focus back to previous form when closing a form (for keyboard support).
  • Ticket #5844: Buttons in a dataview controlbar have their own tabindex which resides at the same level as other dataview widgets (you can jump directly to them from halfway your dataview instead of only after visiting all other widgets).
  • Ticket #5769: Export to Excel of currencies didn’t keep two decimals when these decimals are 0.
  • Ticket 6301: Inline editing with enums didn’t work with keyboard in Internet Explorer.
  • Ticket 6251, 6250, 6252: Retrieve action with XPath comparing an attribute with an variable of type enumeration didn’t work correctly.
  • Ticket 6241, 6116, 6234, 6293: Fixed errors in query translation (security constraints, reporting).
  • Ticket 6202: Use parent as key for search didn’t work in XML mapping.
  • Ticket 6200: Sockets did remain open after WS calls.
  • Ticket 6216: Webservice call with N-0 relatie and lookup did result in a stacktrace.
  • Ticket 6205: Database connection timeout error in a specific case.
  • Ticket 6198: Client error when clicking fast through different menu items.
  • Ticket 6156: Error in searching a grid using a dropdown.
  • Ticket 5905: With wait for search enabled the data was still loaded when clicking a column header to change the sorting.

Modeler fixes

  • Ticket #4484 & #5494 & #5771: Disallow fields to be required when they are conditionally visible.
  • Ticket #4908: Assume mpr-directory as default project directory.
  • Ticket #5333: Labels in table cells with render mode ‘Header’ are left aligned (as is the case in most Mendix themes).
  • Ticket #5338: Automatically create project directory if it does not exist.
  • Ticket #5493: Improved enumeration wizzard for gateways.
  • Ticket #5655: Better error handling when opening a help page results in an error.
  • Ticket #5799: Security attribute order should be the same as domain model attribute order.
  • Ticket #5815: When default language is changed, change language to that language.
  • Ticket #5871: Moving entities to other modules should keep validation and access rules consistent.
  • Ticket #5911: Alphabetized entities in entity access.
  • Ticket #5912: An exception occurred when no entity was selected for new entity access rule.
  • Ticket #5919 & 6036: Extract microflow did not work correctly for parameters within a loop.
  • Ticket #5948: Putting “{” or “}” for an attribute name caused an error.
  • Ticket #5988: When copying a microflow activity no output variable name should be generated, when return type is “Nothing”.
  • Ticket #5991: Disallowed Xpath constraints on virtual attributes.
  • Ticket #6034: Use enumeration caption in document exporter instead of enumeration key.
  • Ticket #6089: Fixed user lib path generation upon deployment.
  • Ticket #6126: The default value of the ‘Refresh on show’ property of a tab page is now False.
  • Ticket #6333: Visualize navigability with arrows in UML notation of domain model.
  • Ticket #6371: Bugfix.
  • Ticket #6389: Fixed reading WSDLs that import XSD using relative file paths.
  • Ticket #6395: Button to hide association names in the domain model editor.

API changes

Security and context API changes

Because of security enhancements quite some methods now need an IContext parameter in order to check security. Commonly used methods which now need an IContext parameter are: * com.mendix.systemwideinterfaces.core.IMendixObject: setValue, getValue, getMember * com.mendix.systemwideinterfaces.core.IMendixObjectMember: setValue, getValue, parseValueToString, getOriginalValue * com.mendix.core.Core: getFileDocumentContent, getImage

Descriptive attribute of entity attributes

This attribute has been deleted, as it was only used for reference set selector columns, which can be defined properly now. All methods referring to this descriptive attribute are no more.


The class com.mendix.core.conf.Configuration is no longer a statically accessible, use Core.getConfiguration() to get the instance.

System context

The system context used to be retrieved by Core.getSystemSession().getContext(), it should be retrieved by Core.getSystemContext() now. This will return a session which is not associated with a user and a context which has rights to read and modify everything.

System.Document FileName attribute

The FileName of the System.Document entity has been deleted, as it only represented the document id. The Name attribute represents the name of the file.

Separate transactions

Separate transaction used to be created by using new Context(context.getSession()). From 2.5 on, Context is not accessible anymore, only IContext is. To get a context variable represeting a new transaction use context.getSession().getContext().

XML import

XML import could be triggered in Java by using the com.mendix.connectionbus.synchronization.Synchronizer and com.mendix.connectionbus.synchronization.SyncRequest classes. These classes are deprecated and are replaced now by an improved XML importer which support streaming import. This import can be called using the importXMLStream methods in com.mendix.core.Core.


Proxies now have an initialize method with a context parameter in order to check security correctly. When using this initialize method the proxy getters and setters do not need the context parameter. Proxy now also support committing changes to the database using the commit method en deleting the object using the delete method.

Core API changes

The following API changes in com.mendix.core.Core have been introduced in 2.5: * deleted: public static UUID getXASID(). * new: public static String getXASID(). * new: public static Set getMicroflowNames(). * new: public static void scheduleAtFixedRate(String actionName, Date firstRun, long period, TimeUnit timeUnit, String name, String description). * deleted: public static Future commitAsync(IContext context, IMendixIdentifier id) throws CoreException. * deleted: public static IMendixObject commit(IContext context, IMendixIdentifier id) throws CoreException. * deprecated: public static boolean change(IContext context, IMendixIdentifier id, Map changes) throws CoreException. (use IMendixObject instead of IMendixIdentifier). * deprecated: public static boolean remove(IContext context, IMendixIdentifier id) throws CoreException (use IMendixObject instead of IMendixIdentifier). * new: public static List retrieveIdList(IContext context, List ids, int amount, int offset, Map sort) throws CoreException. * deprecated: public static ICreateBatch createBatch(IContext context, String objectType, int batchSize, boolean autoCommit, @SuppressWarnings(“unused”) boolean useDataValidation). (data validation is always applied). * new: public static ICreateBatch createBatch(IContext context, String objectType, int batchSize, boolean autoCommit). * deprecated: public static IChangeBatch changeBatch(IContext context, String xpathQuery, int batchSize, boolean autoCommit, @SuppressWarnings(“unused”) boolean useDataValidation) throws CoreException. (data validation is always applied). * new: public static IChangeBatch changeBatch(IContext context, List changeObjects, int batchSize, boolean autoCommit). * deprecated: public static IChangeBatch changeBatch(IContext context, List changeObjects, int batchSize, boolean autoCommit, @SuppressWarnings(“unused”) boolean useDataValidation). (data validation is always applied). * new: public static IChangeBatch changeBatch(IContext context, String xpathQuery, int batchSize, boolean autoCommit) throws CoreException. * deleted: public static IRemoveBatch removeBatch(IContext context, String objectType, int batchSize, boolean autoCommit, boolean useDeleteBehavior) throws UserException. * new: public static IRemoveBatch removeBatch(IContext context, String objectType, int batchSize, boolean autoCommit, boolean useDeleteBehavior). * new: public static InputStream getFileDocumentContent(IContext context, IMendixObject fileDocument) * deleted: public static InputStream getFileDocumentContent(IMendixObject fileDocument). (context is needed for security checks). * new: public static File getFileDocumentContentAsFile(@SuppressWarnings(“unused”) IContext context, IMendixObject fileDocument). * new: public static InputStream getImage(IContext context, IMendixObject imageDocument, boolean retrieveThumbnail). * deleted: public static InputStream getImage(IMendixObject imageDocument, boolean retrieveThumbnail). (context is needed for security checks). * new: public static IContext getSystemContext(). * deleted: public static ISession getSystemSession(). (system context is system session with sudo context). * new: public static ISession login(Map params) throws CoreException. * new: public static ISession login(String userName, String password) throws CoreException. * new: public static ISession login(String userName, String password, String locale, String currentSessionId) throws CoreException. * deleted: public static boolean login(ISession session, String username, String password, String locale) throws CoreException * deleted: public static boolean logout(ISession session) throws CoreException * new: public static void logout(ISession session). * new: public static boolean authenticate(IContext context, IUser user, String password) throws CoreException. * new: public static IUser getUser(IContext context, String userName) throws CoreException. * new: public static ISession initializeSession(IContext context, IUser user, String currentSessionId, String locale) throws CoreException. * new: public static void importXmlStream(IContext context, InputStream xmlStream, String xmlToDomainMappingName, IMendixObject mappingParameter). * new: public static void importXmlStream(IContext context, InputStream xmlStream, String xmlToDomainMappingName, IMendixObject mappingParameter, String xmlSchemaName). * new: public static void addRequestHandler(String path, RequestHandler requestHandler). * deprecated: public static LogNode getLogNode(String name). * deprecated: public static ILogNode getLogger(String name). * deleted: public static LogManager getLogManager(). * new: public static Configuration getConfiguration(). * deprecated: public static IMendixObject getDefaultLanguage(@SuppressWarnings(“unused”) IContext context). * new: public static ILanguage getDefaultLanguage(). * new: public static void registerLogSubscriber(LogSubscriber subscriber). * new: public static IRetrievalSchema createRetrievalSchema(). * new: public static Module getModule(String name). * deleted: public static UpdateablePathClassLoader getUpdateablePathClassLoader().

App Store packages

  • Due to API changes, the newest version of the Excel importer should be downloaded from the App Store.


  • Ticket 5887, 5881: in all browsers, except for Internet Explorer, a download button does only work one time.
  • Ticket 5888, 5874: search button within the search area of a datagrid doesn’t work on mouse click (keyboard did work).
  • Ticket 5882: document exporter templategrid misses some styling attributes.
  • Ticket 5867, 5840: a dataview becomes editable when it is in an empty state and an object is put in, even when the attribute readonly is set to true.
  • Ticket 5853: backwards compatibility issue in XML-to-Domain mappings.
  • Ticket 5850: authentication errors on login are not visible in certain theme’s.
  • Ticket 5849: loading icon not found for certain theme’s.
  • Ticket 5847: error when sorting a datagrid on a referred boolean attribute.
  • Ticket 5842: some minor fixes for tabindex and custom widgets.
  • Ticket 5835: cross-module associations dissapear when selecting an element in the domain model editor.
  • Ticket 5730: tabindex doesn’t work correctly for datagrids and referenceset selectors.
  • Ticket 5592: newly added system text ‘invalid currency’ didn’t work in all cases.

Please read the guide ‘Moving from 2.4 to 2.5’ before you open your first 2.4 project in the 2.5 Business Modeler.

New major features

  • App Store: use your MxID to gain beta access to the web interface or download widgets, modules, and themes directly via the modeler interface. We hope you contribute your own content.
  • Custom widgets: you can now extend the Mendix AJAX client with custom widgets. Download them via our App Store or create your own!
  • Document generator: define document templates , provide them with data using microflows and export them to PDF, Word, Open Office, HTML, etc.
  • Microflow debugger: define (conditional) breakpoints in the Modeler and debug visually at runtime with the new microflow debugger.
  • Webservice integration improvements: call webservices using a domain-to-XML mapping, publish webservices with entity parameters, and experience performance improvements (time and memory wise).
  • Security: we have introduced a security center for managing the security settings of your project. You can define multiple levels of security to find a good balance between security and the work to configure it during each project phase. We also provide you with a report about the security status of each model part. The default setting for security has changed from everything is allowed (and you have to restrict access) to everything is disallowed (and you have to provide access).
  • Autonomous modules: modules are self-contained now so that they can easily be distributed on the App Store. Constants, images, and regular expressions are moved from project level to module level. We added module roles in addition to user roles in order to define all security on module level.
  • Anonymous users: you can enable anonymous access to your application to build public portals. For new projects anonymous users are enabled by default to improve development speed.
  • Right-to-left support: Right-to-left oriented languages are now fully supported. The whole web client will be oriented from right to left when a user has an RTL language set.

New minor features

  • Better Eclipse integration: the Modeler generates project files for you. Up-and-running in Eclipse within a few steps!
  • New Modeler startpage with top App Store content, latest forum questions, and direct links to tutorials and documentation.
  • Added administrator user name and user role to server settings. This makes it possible to explicitly set the administrator user name (e.g. “MxAdmin”) and the administrator user role (e.g. “MxAdministrator). During conversion from 2.4, these values are automatically filled with the 2.4 default values.
  • When importing and exporting models the versions do not have to match exactly anymore.
  • Export modules including their dependencies (custom widgets, libraries, Java code).
  • Project-directory contains model, dependencies and deployment files.
  • System module is read-only and always up-to-date. It is no longer a part of your project.
  • Theme is either a zip-file or a bunch of files (handy while developing your theme).
  • Eliminated separate instance access and security groups in favor of access rules with XPath constraints.
  • You can stop the localization of a DateTime attribute so that it becomes independent of where you are in the world (cf. birth days!)
  • Java actions can have a parameter that accepts any entity.
  • Microflows by default do not apply entity access. With a property you can enable it again and this is visualized by a yellow background.
  • The security settings are checked for consistency: if a user with a certain role can reach a form, an error is given if the information on that form is not readable for that user.
  • Added support for XSD subtypes (extension/restriction); you can now map from/to a subtype where its base type is used.
  • Improved support for XSD restriction.
  • One of the data view control bar buttons can be marked as the button that will be pressed when the form is closed using the close button in the upper-right corner.

Client improvements

  • Improved theming capabilities.
  • Data grids show the full contents of a cell on mouse over.
  • Odd and even grid rows can have a different styling.
  • Data grid search fields and tool buttons float naturally.
  • Grid columns can be dragged at runtime.
  • Nested tables don’t double the padding, i.e. they are neatly aligned below the fields in the parent dataview.
  • Windows can be resized design time and runtime.
  • Improved context mechanism, see ‘Moving from 2.4 to 2.5’.

Formbuilder improvements

  • The tab control can initially show another page than the first by setting the default tab page property.
  • You can now show (read-only) the values of attributes of associated entities. You can even follow more than one association. In other words: the attribute path property of the text box can contain a n-deep path instead of only an attribute of the dataview object.
  • A nested data view can be connected to an entity that is more than one association away from the containing data view. See the explanation of the datasource properties of a dataview for more information.
  • For a datagrid nested in a dataview you can specify a path (instead of only an entity) as a replacement for the context mechanism.
  • New property listen target of data view . You can select a grid to listen to. If the selection of the grid changes the contents of the data view will be updated accordingly. A grid listening to another grid can be made by putting the listening grid inside a data view that listens to the other grid.
  • The size and resizability of popups can be configured per form.
  • In places where you connect a form you can specify what form to open, where to open it (content, popup, modal popup) and whether to override the form title. These properties have been consolidated in a separate dialog .
  • Conditional formatting has been improved. You can define conditions based on booleans and roles now. Conditional formatting is now also visualized to show what parts of a form are conditional. See the reference guide for a full overview .
  • The reference set selector behaves much more like a data grid now. Gone are descriptive values and captions. You can manage columns just like in a data grid now. Also the control bar can be customized with your own invoke buttons.
  • Form title is a property of a form now instead of a separate widget.
  • The data view control bar (that showed Save, Cancel and Close) is now user configurable: you can add the default buttons but also invoke buttons that trigger a custom microflow. Also you can edit the captions and the images of all buttons.
  • Microflow buttons can validate (part of) the form before they execute their microflow. One of the consequences is that you can now recreate the standard Save button yourself (= validate + microflow that commits the data view object).
  • On a nested data view you can specify a microflow that will return the entity to show in the nested data view. See the datasource properties of a dataview for more information.
  • The data grid has a new property: wait for search.
  • The ability to format dates and numbers in various places in the form builder.
  • The navigation editor has been completely rewritten.
  • Drag & drop support for navigation items (menus, menu items, tree items).
  • Ctrl-drag duplicates items.
  • Home form/microflow can be specified per user role (cf. “conditional loader”)

Modeler usability improvements

  • The contents of a dataview and data grid are generated automatically when you drag and drop an entity on them.
  • Free folder structure. Create your own folders and mix different document types in one folder.
  • Global search in Modeler (Ctrl-F). You can filter the search results on document type.
  • Dialog to quickly create a new model (Ctrl-N).
  • Find unused forms, microflows, Java actions, entities, associations and attributes.
  • Open and close dockable windows using the View menu.
  • Positions of dockable windows are remembered.
  • Create data view when connecting a new form from the New/Edit buttons.
  • Change activity shows whether and how entity is committed.
  • Full screen view (F11) hides all docks.
  • Search for texts in the batch translate and replace forms.
  • All documents are shown directly in the project explorer now. Before, some documents were shown in the explorer (forms, microflows) and others not (scheduled events, regular expressions).
  • The selection in editors is now maintained in more cases.
  • The open tabs are preserved when closing the Business Modeler and opening it again.
  • Conditional formatting: better visualisation and easier to find.
  • Change the order of modules in a project.
  • Captions of microflow activities are generated automatically and can be edited freely.
  • Cleaned up the project explorer by merging some nodes: project settings, server settings, and internationalization.
  • Drag & drop documents across modules.
  • Brand new console dock that shows output of runtime in a much nicer format. Plays nicely with the debugger as well. And you no longer have to type numbers into it!
  • Keep the active document selected in the project explorer.
  • The toolbox is a new dockable window that contains elements that you can create in the current editor.
  • You can always draw lines in the domain model editor and microflow editor. There is no need to first enter line drawing mode.
  • Button to quickly open the browser for a runnning application.
  • New dockable window showing all breakpoints.
  • When selecting a microflow, the parameter settings are changed to match the parameters of the microflow.
  • Added drop-down menu that shows all open documents (as opposed to scrolling through the tabs).
  • Preview which navigation items will be visible for which user role.

Changed behaviour

See ‘Moving from 2.4 to 2.5’.

Changes in terminology

  • Metamodel has been renamed to domain model.
  • Metaobject has been renamed to entity.
  • Deriving from has been renamed to generalization and specialization.

Java API

See the release notes of Mendix 2.5.1 for the changes in the Java API.