Modules
Last modified: February 13, 2024
1 Introduction
A Mendix project consists of modules: a System module, a UI resources package, and one or more user-defined modules. Modules are a way to split the functionality of your application into separate parts. For example, a web shop can put order management in a different module than customer and product management. Studio Pro does not enforce any kind of module structure; it is up to you to choose logical modules for your application.
A module always contains exactly one domain model. The domain model is a data model that describes the information in your application domain in an abstract way.
Within a module you can define module security via module roles and specify security settings of those module roles for pages, microflows, entities and datasets.
Furthermore, a module can contain many different types of documents. Each type of document is described in its own domain-specific language (DSL). For example, user-interface forms are described by using a visual language with elements like text boxes, tables and grids. Below you see tables grouped by category of all the different kinds of documents you can create within a module.
2 Common
Document type |
Typical elements |
Description |
Pages |
Data view, Data grid, Table, Text box |
Forms are used to create a user interface for the end-user. They are composed of components that are called widgets. |
Microflows |
Activities, Sequence Flow |
Microflows describe the logic of your application. They are composed of activities that manipulate objects, interact with the client etcetera. |
Enumerations |
|
An enumeration is a set of predefined values, for example: in a web shop, an enumeration called MemberType could have the values Gold and Silver. |
3 Page Resources
Document type |
Description |
Images |
Images can be used to brighten up your application. Navigation items and the various kinds of buttons have small images (icons) to left of their captions. |
Layouts |
Layouts specify what comes where. Each page is based on a layout. The layout contains widgets and structures that return on every page based on that layout. |
Menus |
A menu document defines a navigation menu that can be used by a menu widget. |
Snippets |
Snippets define reusable interface parts. They can be used on pages and layouts . |
4 Resources
Document type |
Description |
Constants |
Constants are used to define a constant value, for example: to store an URL to a webservice. |
Datasets |
A dataset can be used for reporting and is defined using either an OQL query or a custom Java action. |
Document Templates |
Document Templates are used to model a template needed as input for a document export action which can generate all kinds of documents based on application data. They are composed much in the same way as Forms. |
Java Actions |
With Java actions you can extend the functionality of your application in situations where it would be hard to implement this functionality in microflows. You can call a Java action from a microflow. |
Regular Expressions |
A regular expression is used by validation rules on an entity to describe a set of criteria that a string can match. |
Rules |
A rule defines a set of criteria, with a certain input the rule will result in a Boolean or enumeration depending on the criteria met. It can be called from a decision to determine the direction the microflow should go once the decision is reached. |
Scheduled Events |
A scheduled event is used to execute a microflow at a certain point in time. You can also schedule it to repeat after a given time. For example, a scheduled event can run every morning at 6 AM |
5 Consumed Services
Document type |
Description |
Consumed Web Services |
Importing web services of other applications (Mendix or otherwise) allows you to call those web services from your microflows. |
|
A domain-to-XML mapping defines a translation from domain model objects to XML objects. |
|
An XML-to-domain mapping defines a translation from XML objects to domain model objects. |
XML Schemas |
An XML schema is defined in an XML Schema Definition (XSD) file and can be imported in your model. It describes what a certain XML document should look like. |
6 Published Services
Document type |
Description |
Published REST Services |
A microflow can be published as a REST service operation so that it can be consumed by other Mendix applications. |
Published OData Services |
Persistable entities can be exposed as an OData resource, so that they can be imported by third-party applications such as Excel. |
Published Web Services |
A microflow can be published as a web service operation so that it can be called by third-party applications. |