Skip to content

Commit b2b736b

Browse files
committed
Merge branch 'development' into yl-proofread-microflow-and-nanoflow-documentation
2 parents cc9485c + c7a7641 commit b2b736b

6 files changed

Lines changed: 36 additions & 31 deletions

File tree

content/en/docs/deployment/mendix-cloud-deploy/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ There are two ways to prevent your Free App from being archived:
6262
* Visit the Free App
6363
* Deploy a new version of your app to your Free App environment
6464

65-
#### Deletion of Unused Projects (#projects-deletion)
65+
#### Deletion of Unused Projects {#projects-deletion}
6666

6767
If a project has never seen any activity since it was created, it is kept on the Team Server for a maximum of one year. After this, the project on the Mendix Platform, its repository on the Team Server, and any Mendix Cloud resources will be permanently deleted.
6868

content/en/docs/refguide/mobile/getting-started-with-mobile/prerequisites.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ url: /refguide/mobile/getting-started-with-mobile/prerequisites/
55
weight: 10
66
description: Troubleshoot common issues associated with building and running native mobile apps.
77
aliases:
8+
- /refguide/mobile/distributing-mobile-apps/building-native-apps/how-to-min-versions/
89
- /refguide/getting-the-make-it-native-app/
910
- /howto/mobile/common-issues/
1011
---

content/en/docs/refguide/modeling/application-logic/microflows-and-nanoflows/nanoflows/_index.md

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ description: "Presents an overview of all the elements that can be used in a nan
88

99
## Introduction
1010

11-
Nanoflows are similar to [microflows](/refguide/microflows/), in that they allow you to express the logic of your application. However, they do have some specific benefits. For example, they run directly on the browser/device and can be used in an offline app. Furthermore, most of the actions run directly on the device. Hence, there is also a speed benefit for logic which does not need access to the server. For more information on how nanoflows and microflows differ, see the [Differences between Microflows and Nanoflows](/refguide/microflows-and-nanoflows/#differences) section in *Microflows and Nanoflows*.
11+
Nanoflows are similar to [microflows](/refguide/microflows/), in that they allow you to express the logic of your application. However, they do have some specific benefits. For example, they run directly on a browser/device and hence can be used in an offline app. Furthermore, since most of the activities run directly on the device, there is also a speed benefit for logic which does not need access to the server. For more information on how nanoflows and microflows differ, see the [Differences between Microflows and Nanoflows](/refguide/microflows-and-nanoflows/#differences) section in *Microflows and Nanoflows*.
1212

1313
This page is an overview of all the elements that can be used in a nanoflow. For the properties of the nanoflow itself, see [Nanoflow Properties](/refguide/nanoflow/).
1414

@@ -18,28 +18,32 @@ For information on using nanoflows as data sources, see [Nanoflow Source](/refgu
1818

1919
### Offline Mobile Apps
2020

21-
Nanoflows are designed with offline-first applications in mind, as they allow you to model application logic that works in offline apps. Since all database-related actions are executed on the local offline database, nanoflows in offline apps are fast.
21+
Nanoflows are designed with offline-first applications in mind, as they allow you to model application logic that works in offline apps. Since all database-related activities are executed on the local offline database, nanoflows in offline apps are fast.
2222

2323
### Logic Where No Connection Is Needed
2424

25-
Nanoflows also offer great value to online applications (for example, for UI logic, validations, calculations, and navigation). However, keep in mind that when you perform database-related actions, each action will create a separate network request to the Mendix Runtime.
25+
Nanoflows also offer great value to online applications (for example, for UI logic, validations, calculations, and navigation). However, keep in mind that when you perform database-related activities, each activity creates a separate network request to the Mendix Runtime.
2626

27-
The following actions interact with the database:
27+
The following activities interact with the database:
2828

29-
* Create
30-
* Commit
31-
* Retrieve
32-
* Rollback
29+
* [Create object](/refguide/create-object/)
30+
* [Commit object(s)](/refguide/committing-objects/)
31+
* [Retrieve](/refguide/retrieve/)
32+
* [Rollback object](/refguide/rollback-object/)
3333

34-
Therefore, the best practice is to use nanoflows in online applications when they do not contain the above actions.
34+
Therefore, the best practice is to use nanoflows in online applications when they do not contain the above activities.
3535

3636
{{% alert color="info" %}}
37-
Changing objects without committing is not a database-related action, as changes are applied on the device or in the browser.
37+
An exception for the **Create object** activity is that you can use it to create a new [non-persistable entity](/refguide/persistability/#non-persistable), and this NPE has no error handlers, calculated attributes, or read-only attributes. In this case, no request is sent to the Mendix Runtime.
38+
{{% /alert %}}
39+
40+
{{% alert color="info" %}}
41+
Changing objects without committing is not a database-related activity, as changes are applied on the device or in the browser.
3842
{{% /alert %}}
3943

4044
#### Other Cases
4145

42-
Nanoflows perform best in online applications when no database-related actions are used, which are generally the best cases. However, nanoflows containing at most one database-related action can still perform well. Since such nanoflows only require one network call, they perform as efficiently as a microflow. An example of this is performing validation logic on an object and committing the object in the same nanoflow.
46+
Nanoflows perform best in online applications when no database-related activities are used, which are generally the best cases. However, nanoflows containing at most one database-related activity can still perform well. Since such nanoflows only require one network call, they perform as efficiently as a microflow. An example of this is performing validation logic on an object and committing the object in the same nanoflow.
4347

4448
## Notation and Categories
4549

content/en/docs/refguide/modeling/domain-model/generalization-and-association.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ Making a decision between inheritance and associations is something you should d
6969

7070
### Inheritance
7171

72-
Using inheritance can make your microflows easier to maintain, you can re-use functionality. However, you do lose flexibility. Once you have applied inheritance to an entity it is difficulty to remove the inheritance and keep all the data using a relationship. Take into account whether a record can change type of subclass, for example an employee specialization object changes and becomes a project manager object. In most scenarios there is no perfect solution and there are always concessions to make, just be aware of the implications when making a choice.
72+
Using inheritance can make your microflows easier to maintain, you can re-use functionality. However, you do lose flexibility. Once you have applied inheritance to an entity it is difficult to remove the inheritance and keep all the data using a relationship. Take into account whether a record can change type of subclass, for example an employee specialization object changes and becomes a project manager object. In most scenarios there is no perfect solution and there are always concessions to make, just be aware of the implications when making a choice.
7373

7474
Don't just add inheritance because it is easier, or remove it because it is slower. Especially in scenarios where different object types have to go through a similar process, it can be worthwhile to apply inheritance just so you can re-use functionality and increase the consistency and stability of your application.
7575

content/en/docs/refguide9/modeling/integration/odata-services/wrap-services-odata.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -149,27 +149,27 @@ The following examples are possible ways to use OData to connect to external dat
149149

150150
You can use the features released in Studio Pro [9.17](/releasenotes/studio-pro/9.17/) to build a connector that wraps a third-party service API as OData.
151151

152-
For example, say you want to build an app that works with the [Twitter v2 REST API](https://developer.twitter.com/en/docs/twitter-api/getting-started/about-twitter-api). You would like a simple app where you can enter the ID of a Twitter user and view their latest tweets and followers.
152+
For example, say you want to build an app that works with the [X v2 REST API](https://developer.x.com/en/docs/x-api/getting-started/about-x-api). You would like a simple app where you can enter the ID of an X user and view their latest tweets and followers.
153153

154154
{{% alert color="info" %}}
155-
This guide is meant to serve as an example to show how to use *Connector Kit 2* features, and is not an official guide to building a Twitter connector. It is intended for local deployments and has not been tested.{{% /alert %}}
155+
This guide is meant to serve as an example to show how to use *Connector Kit 2* features, and is not an official guide to building an X connector. It is intended for local deployments and has not been tested.{{% /alert %}}
156156

157157
{{% alert color="warning" %}}
158-
On February 9, 2023, Twitter will drop support for free API access and will offer a paid basic version instead. Please use the guide below as a reference only.
158+
On February 9, 2023, X will drop support for free API access and will offer a paid basic version instead. Please use the guide below as a reference only.
159159
{{% /alert %}}
160160

161161
#### Prerequisites
162162

163163
To build your app, you first need to do the following:
164164

165-
* [Register as a Twitter Developer](https://developer.twitter.com/en/portal)
165+
* [Register as an X Developer](https://developer.x.com/en/portal)
166166
* Download Studio Pro [9.17](/releasenotes/studio-pro/9.17/) or above
167167

168-
#### Building the Connector {#twitter-connector}
168+
#### Building the Connector {#x-connector}
169169

170-
Set up a connector module that communicates to the Twitter API with OData by following the steps outlined below. To ensure that your app will run, fill in your valid bearer token as the **Default value** in a **BearerToken** [constant](/refguide9/constants/). You can get one by [registering as a Twitter Developer](https://developer.twitter.com/en/portal).
170+
Set up a connector module that communicates to the X API with OData by following the steps outlined below. To ensure that your app will run, fill in your valid bearer token as the **Default value** in a **BearerToken** [constant](/refguide9/constants/). You can get one by [registering as an X Developer](https://developer.x.com/en/portal).
171171

172-
1. Use the Twitter API to find the JSON structures for the calls for users, tweets, and followers, and add the [JSON structure](/refguide9/json-structures/) for each.
172+
1. Use the X API to find the JSON structures for the calls for users, tweets, and followers, and add the [JSON structure](/refguide9/json-structures/) for each.
173173
2. Create [import mappings](/refguide9/mapping-documents/#import-mappings) for each, which generates entities in your domain model.
174174
{{< figure src="/attachments/refguide9/modeling/integration/wrap-services-odata/twitter-connector-domain-model.png" alt="Domain model for Twitter connector module." class="no-border" >}}
175175
3. Publish all three non-persistable entities as a published OData service (see [Non-Persistable Entities as Published OData Resources](#npe-published-odata)).
@@ -182,35 +182,35 @@ Set up a connector module that communicates to the Twitter API with OData by fol
182182

183183
#### Building the Client
184184

185-
Set up a Twitter client module that allows users to input a Twitter ID and communicates to the Twitter API via your [Twitter connector](#twitter-connector).
185+
Set up an X client module that allows users to input an X ID and communicates to the X API via your [X connector](#x-connector).
186186

187-
1. Create a consumed OData service in the client module, and import the XML file you exported in the [building the connector](#twitter-connector) section.
187+
1. Create a consumed OData service in the client module, and import the XML file you exported in the [building the connector](#x-connector) section.
188188
2. Drag the external **Users**, **Tweets**, and **Followers** entities into your client domain model.
189-
3. Add a non-persistable entity for the TwitterClientInput to be able to fill in the data, handled by a **NewTwitterInput** microflow.
189+
3. Add a non-persistable entity for the XClientInput to be able to fill in the data, handled by a **NewXInput** microflow.
190190

191-
Double-click the entity, and in the **Persistable** field, choose **No**. The domain model for the Twitter client looks like this:
191+
Double-click the entity, and in the **Persistable** field, choose **No**. The domain model for the X client looks like this:
192192

193-
{{< figure src="/attachments/refguide9/modeling/integration/wrap-services-odata/twitter-client-domain-model.png" alt="Twitter client domain model with external entities and non-persistable entity." class="no-border" >}}
193+
{{< figure src="/attachments/refguide9/modeling/integration/wrap-services-odata/twitter-client-domain-model.png" alt="X client domain model with external entities and non-persistable entity." class="no-border" >}}
194194

195195
{{< figure src="/attachments/refguide9/modeling/integration/wrap-services-odata/newtwitterinput-microflow.png" alt="Microflow that handles inputted usernames." class="no-border" >}}
196196

197197
4. Add a new page to display the data, and create a ShowUserPage microflow.
198198

199-
The microflow includes a **Retrieve Object** action that pulls information from the **TwitterClientInput** non-persistable entity. In this case, you can use the XPath constraint [Username=$TwitterClientInput/Username] to get the users with the username you entered. This is then translated into an OData request that is sent to the connector.
199+
The microflow includes a **Retrieve Object** action that pulls information from the **XClientInput** non-persistable entity. In this case, you can use the XPath constraint [Username=$XClientInput/Username] to get the users with the username you entered. This is then translated into an OData request that is sent to the connector.
200200

201201
{{< figure src="/attachments/refguide9/modeling/integration/wrap-services-odata/showuserpage-microflow.png" alt="Microflow that handles TwitterClientInput request and shows a page." class="no-border" >}}
202202

203-
5. On the **TwitterPage**, use a **Data Grid**, and pull data **by Association** from the to get the tweets and followers connected to the user.
203+
5. On the **XPage**, use a **Data Grid**, and pull data **by Association** from the to get the tweets and followers connected to the user.
204204

205205
#### Parsing the URI
206206

207-
Run the Twitter client to receive decoded OData requests.
207+
Run the X client to receive decoded OData requests.
208208

209209
1. Manually parse the URI, and create a microflow to read data from the URI.
210210
{{< figure src="/attachments/refguide9/modeling/integration/wrap-services-odata/read-uri-data.png" alt="Microflow that finds query parameter values." class="no-border" >}}
211-
2. Extract the Twitter user ID from the query, and use a **Call REST** object to ping the Twitter API for the followers (or other data). The API response goes into the import mapping.
211+
2. Extract the X user ID from the query, and use a **Call REST** object to ping the X API for the followers (or other data). The API response goes into the import mapping.
212212

213-
Ensure that you have created microflows for all entities used in your connector. When you run your app, you can enter the ID of a Twitter user and view their latest tweets and followers.
213+
Ensure that you have created microflows for all entities used in your connector. When you run your app, you can enter the ID of an X user and view their latest tweets and followers.
214214

215215
## Updatable Operational Data Stores {#operational-data-stores}
216216

content/en/docs/releasenotes/mobile/mendix-native-mobile-builder.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ The Mendix Native Mobile Builder is a UI-based tool, complimentary to Mendix Stu
1111

1212
## 2025
1313

14-
### Release 1.0.132
14+
### Release 1.0.133
1515

1616
**Release date: January 7, 2025**
1717

0 commit comments

Comments
 (0)