External Entities | Mendix

Skip to main content

External Entities

What Are External Entities?

External Entities represent data provided by OData services in other Mendix applications. External Actions represent logic provided by Odata services. Together they provide low-code developers a way to work with Odata APIs without modelling OData REST calls. Low-code developers can work with data from other Mendix applications in the same way they work with data from their own application – by using Mendix retrieves and XPath expressions, and by directly connecting external entities to page widgets.

External Entities provide so called data virtualization so developers can focus on the business problem at hand instead of technical integration challenges. In a similar way to how the Mendix Platform retrieves and stores data in a database for persistent entities, the platform retrieves and stores data from services for external entities. Users of external entities do not need to know how to technically call the service providing the data.

External entities contain the connection and query information needed to perform a typical data integration. Specifically, external entities translate both basic queries and XPath into the corresponding OData call at runtime while representing the data contract, connection, and security information as an entity for the purposes of modeling. External Entities support both reading of data from an Odata API as well as writing (create, update and delete). In addition External Actions allow developers to call OData actions.

This means developers of all skill levels can visually model with standards-based integrations that are implemented consistently, reducing time and complexity while letting highly-technical developers take control when needed.

How Do External Entities Work at Design Time?

At design time, external entities provide an interactive visual representation of the underlying data that you can search from the Integration pane, drag and drop, and model with in Mendix Studio Pro, just like the rest of the core Mendix Platform.

The integration pane allows developers to search through Odata contract registered in the Mendix Connect Catalog, and also through contracts manually added to the project.

How Do External Entities Work at Runtime?

At runtime, external entities use their built-in connection and security information to directly query the underlying OData resources. When the data is received back, it is turned into Mendix objects in memory and cached just like every other Mendix object, keeping traffic from the data source to only what is needed.

How Can I Use External Entities with Other Technologies?

As of today, there are two ways to attach external entities to data sources that are not OData-compatible. The first way is wrapping the underlying data with an OData wrapper using either Mendix or custom code. The second way is using a pre-built connector for the Mendix Connect connector framework. For OData APIs to be compatible with External Entities they have to implement a set of basic requirements. For more information, see Consumed OData Service Requirements.

Do External Entities support Creating, Updating, and Deleting external data?

Yes, if the Odata API provides these operations on the its datasets they will also be available in the Mendix application on External Entities. As Odata follows the REST standard, it uses the HTTP operations POST, PUT and DELETE to implement this.

Can I use Actions provided by an OData API using External Entities?

Yes, OData actions defined in the contract will be displayed in the integration pane, and can be drag onto a microflow.

How do External Entities Support Evolving OData APIs?

APIs can change, for example when customers adapt the data models in the services or when new versions of Mendix applications are deployed. Commercial off the shelf software like SAP, Microsoft Dynamics and Siemens Opcenter often provides capabilities to adapt it the specifics of the customer business. These modifications are reflected in the contracts of the respective APIs. Contract registered in the Mendix Catalog can be updated, Studio Pro will indicate which contracts have updates available. Contract already used in your application can be upgraded with a single click, after which you select which additional information you want to include in your applications.

Choose your language