Skip to content

Commit 12d988d

Browse files
authored
Merge pull request mendix#9066 from davevissermx/wor/WOR-2124-update-docs-for-int-boundary-event
[WOR-2124] Adjust docs for interrupting boundary event
2 parents a26a6e0 + 4dd2286 commit 12d988d

7 files changed

Lines changed: 76 additions & 14 deletions

File tree

content/en/docs/refguide/modeling/application-logic/workflows/boundary-events.md

Lines changed: 62 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ weight: 20
55
---
66

77
{{% alert color="info" %}}
8-
Non-interrupting timer boundary events were in public beta in Studio Pro 10.15 and released in GA in Studio Pro 10.16.
8+
Non-interrupting timer boundary events were introduced in beta in Studio Pro 10.15 and released in GA in Studio Pro 10.16.
9+
10+
Interrupting timer boundary events were introduced in Studio Pro 10.20 and are currently in beta. Certain features or attributes are subject to change and may contain bugs. For more information, see [Beta and Experimental Releases](/releasenotes/beta-features/).
911
{{% /alert %}}
1012

1113
## Introduction
@@ -14,13 +16,13 @@ Based on Business Process Model and Notation (BPMN) 2.0, boundary events are a t
1416

1517
There are two main types of boundary events:
1618

17-
* Non-interrupting boundary events: These events do not interrupt the ongoing activity. When triggered, they allow the activity to continue while simultaneously starting a new path from the boundary event. As per BPMN 2.0 specification, non-interrupting boundary events are visualized as two dashed circles with an icon in the center.
18-
* Interrupting boundary events: When these events are triggered, they interrupt the normal path of the activity they are attached to. The activity stops and the process flow is redirected to the boundary event's outgoing sequence path. As per BPMN 2.0 specification, interrupting boundary events are visualized as two solid circles.
19-
{{% alert color="info" %}}Interrupting boundary events are not available yet in the current release.{{% /alert %}}
19+
* Non-interrupting boundary events: These events do not interrupt the ongoing activity. When triggered, they allow the activity to continue while simultaneously starting a new path from the boundary event. Use non-interrupting boundary events when the parent activity should remain active, but you would like to do something in parallel. For example, after 2 days, a reminder should be sent to the assigned user. As per BPMN 2.0 specification, non-interrupting boundary events are visualized as two dashed circles with an icon in the center.
20+
21+
* Interrupting boundary events (currently in beta): When these events are triggered, they interrupt the activity they are attached to, meaning that this activity will be aborted. The process flow is redirected to the boundary event's outgoing sequence path. Use interrupting boundary event in situations where further execution of the activity (and other following activities) is not required and an alternative path should be taken. For example, use an interrupting boundary event to start an escalation or a fast-track path when an activity is not completed 2 days after the due date. Or when the assigned user does not make a decision within 5 days, you want to abort the user task and continue the process with a pre-set decision. As per BPMN 2.0 specification, interrupting boundary events are visualized as two solid circles.
2022

2123
Boundary Events are always displayed by 2 circles (either solid or dashed) and are linked by a dotted line to the parent activity. The icon inside the event indicates the type of event. For example, a clock indicates that it is a timer boundary event.
2224

23-
Below is an example of how a timer boundary event looks like:
25+
Below is an example of what a non-interrupting timer boundary event looks like:
2426

2527
{{< figure src="/attachments/refguide/modeling/application-logic/workflows/boundary-events/drag-drop.png" alt="Adding boundary events through drag and drop" width="200" >}}
2628

@@ -44,22 +46,53 @@ When a boundary event is added to an activity, this activity is also referred to
4446

4547
### Adding Boundary Events
4648

49+
{{% alert color="info" %}}
50+
Currently, a timer boundary event is added by default since it is the only option.
51+
{{% /alert %}}
52+
4753
To add a boundary event to the [above-listed activities](#supported-activities), choose one of the following ways:
4854

49-
* Select an event from the **Events** section in the workflow **Toolbox** and drag it onto one of the activities listed above.
55+
* Select an event from the **Events** section in the workflow **Toolbox** and drag it onto one of the activities listed above:
5056

5157
{{< figure src="/attachments/refguide/modeling/application-logic/workflows/boundary-events/drag-drop.png" alt="Adding boundary events through drag and drop" width="200" >}}
5258

53-
* Right-click one of the above-listed activities to open its context menu, and click **Add boundary event**.
59+
* Right-click one of the above-listed activities to open its context menu, and click **Add boundary event**:
5460

5561
{{< figure src="/attachments/refguide/modeling/application-logic/workflows/boundary-events/context-menu.png" alt="Adding boundary events through context menu" width="200" >}}
5662

57-
* Double-click one of the above-listed activities to open its properties dialog box, go to the **Events** tab, and in the > **Boundary events** section, click **New** to add a new boundary event.
63+
* Double-click one of the above-listed activities to open its properties dialog box, go to the **Events** tab, and in the > **Boundary events** section, click **Add timer event** to add a timer boundary event:
5864

5965
{{< figure src="/attachments/refguide/modeling/application-logic/workflows/boundary-events/edit-dialog.png" alt="Adding boundary events through edit dialog" width="450" >}}
6066

6167
To configure the properties of a boundary event, double-click the event to open its properties dialog box. For more information on how to configure the properties of a timer boundary event, see the [Properties](/refguide/timer/#properties) section in *Timer*.
6268

69+
#### Enabling and Adding Interrupting Boundary Events (Beta)
70+
71+
{{% alert color="info" %}}
72+
While you can add up to five non-interrupting boundary events to an activity, only one interrupting boundary event is allowed per activity.
73+
{{% /alert %}}
74+
75+
Interrupting boundary events are currently in beta. To enable this feature, go to Studio Pro **Preferences** -> **New features** -> **Workflow editor** > **Enable interrupting timer boundary events (beta)**:
76+
77+
{{< figure src="/attachments/refguide/modeling/application-logic/workflows/boundary-events/enable-interrupting-boundary-event.png" alt="Enable interrupting boundary event" width="450">}}
78+
79+
After interrupting boundary events are enabled, the **Boundary properties** section is displayed in the properties dialog box of a boundary event.
80+
81+
By default, the **Interrupting** property is set to **No**, which means that the initially added event is a non-interrupting boundary event. To add an interrupting boundary event, set the **Interrupting** property to **Yes**. Click **OK** to save your configuration:
82+
83+
{{< figure src="/attachments/refguide/modeling/application-logic/workflows/boundary-events/interrupting-property.png" alt="Changing the type of boundary event" width="450">}}
84+
85+
#### Implications of Changing the Boundary Event Type
86+
87+
For an existing boundary event, when you change its type from non-interrupting to interrupting or vice versa, you will be presented with a warning dialog. For example, when you change a boundary event from non-interrupting to interrupting, you will see the following warning dialog:
88+
89+
{{< figure src="/attachments/refguide/modeling/application-logic/workflows/boundary-events/security-dialog.png" alt="Security Dialog when changing type" width="450">}}
90+
91+
After you confirm the change:
92+
93+
* The boundary event is re-created as the specified type. As a result, new IDs are created. These IDs are used by the Mendix Runtime for conflict detection analysis.
94+
* The current activities on the boundary event path including the boundary event itself become incompatible and need to be restarted.
95+
6396
### Rearranging Boundary Events
6497

6598
You can rearrange boundary events in the following ways:
@@ -76,9 +109,23 @@ You can rearrange boundary events in the following ways:
76109

77110
## Execution
78111

79-
Boundary events are initiated when their parent activity is initiated. For example, for a timer with a fixed duration, it will start its count down when the parent activity is initiated. When the parent activity is completed before any of the boundary events are triggered, none of the activities in the boundary event path will be executed and all timers will be cancelled.
112+
Boundary events are initiated when their parent activity is initiated. For example, for a timer with a fixed duration, it will start its countdown when the parent activity is initiated. When the parent activity is completed before any of the boundary events are triggered, none of the activities in the boundary event path will be executed and all timers will be cancelled.
113+
114+
### Non-Interrupting Boundary Events
115+
116+
With non-interrupting boundary events, the parent activity remains active/in progress when an event is triggered (i.e., the parent activity is not interrupted). For example, when a non-interrupting timer boundary event is set on a user task and is triggered after 2 days, this user task will remain in progress and the path following the timer boundary event is executed. When the boundary event path reaches the **End of Boundary Path** activity, the workflow will await the completion of the parent activity.
80117

81-
With non-interrupting boundary events, the parent activity remains active/in progress when a boundary event is triggered (which means that the parent activity is not interrupted). For example, when a timer boundary event on a user task is triggered after 2 days, this task will remain in progress and the path defined below the timer boundary event is executed. When the boundary event's path reaches the **End of boundary path**, the workflow will await the completion of the parent activity.
118+
### Interrupting Boundary Events
119+
120+
However, with interrupting boundary events, the parent activity is aborted. For example, when an interrupting timer boundary event is set on a user task and is triggered after 2 days, this user task will be aborted, and the path following the timer boundary event will become the active path.
121+
122+
{{% alert color="info" %}}
123+
Currently, due to its beta status, an interrupting boundary event must end with an **End** event. The option to allow jumping back to the path of the parent activity from the interrupting path will be added soon. For more limitations, see the [Current Limitations](#limitation) section below.
124+
{{% /alert %}}
125+
126+
{{% alert color="info" %}}
127+
When there are multiple boundary events attached to an activity and an interrupting boundary event is executed, all the scheduled boundary events will be aborted and all the boundary events that have already started will continue to run until the entire workflow ends.
128+
{{% /alert %}}
82129

83130
## Boundary Event Variables
84131

@@ -93,11 +140,13 @@ The list of variables is described below:
93140
* `$ParentTask` – the parent user task of the attached boundary event
94141
* `$CalledWorkflowInstance` – the parent Call workflow activity of the attached boundary event
95142

96-
## Current Limitation
143+
## Current Limitations {#limitation}
97144

98-
The current release of boundary events has the following limitation which is actively being developed:
145+
The current release of boundary events is still under development and has the following limitations:
99146

100-
* Non-interrupting timer boundary events currently have no recurrence. They are only executed once and will not repeat.
147+
* Interrupting boundary events are not allowed to be nested in other boundary event paths, meaning that if an activity has a boundary event path (interrupting or non-interrupting), this activity cannot be placed in a boundary event path.
148+
* Interrupting boundary events are not allowed to have a jump at the end of their flow, nor do they allow jumping inside or outside of their flow.
149+
* Non-interrupting timer boundary events currently have no recurrence (they are only executed once and will not repeat).
101150

102151
## Read more
103152

content/en/docs/refguide/modeling/application-logic/workflows/workflow-elements/timer.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ It can be used in the following two ways:
2121

2222
{{< figure src="/attachments/refguide/modeling/application-logic/workflows/workflow-elements/timer/standalone-timer-activity.png" alt="Standalone Timer activity" width="250" >}}
2323

24-
* **Timer** can also be attached to another workflow activity as a [Boundary Event](/refguide/workflow-boundary-events/) (in Studio Pro 10.15.0 and above):
24+
* **Timer** can also be attached to another workflow activity as a [Boundary Event](/refguide/workflow-boundary-events/) (released in GA in Studio Pro 10.16):
2525

2626
{{< figure src="/attachments/refguide/modeling/application-logic/workflows/workflow-elements/timer/timer-boundary-event.png" alt="Timer boundary event" width="300" >}}
2727

@@ -30,13 +30,26 @@ It can be used in the following two ways:
3030
**Timer** properties consist of the following sections:
3131

3232
* [General](#general)
33+
* [Boundary properties](#boundary-properties)
3334
* [Timer](#timer)
3435
* [Common](#common)
3536

3637
### General Section {#general}
3738

3839
The **Caption** describes what happens in this element. It is displayed under the workflow element to make the **Timer** easier to read and understand without the need to add annotations.
3940

41+
### Boundary Properties {#boundary-properties}
42+
43+
{{% alert color="info" %}}
44+
This section is only applicable when **Timer** is used as a timer boundary event.
45+
46+
This section is displayed if interrupting timer boundary events (beta) are enabled through Studio Pro **Preferences** -> **New features** -> **Workflow editor** > **Enable interrupting timer boundary events (beta)**.
47+
{{% /alert %}}
48+
49+
The **Interrupting** property sets the timer boundary event to be either interrupting or non-interrupting.
50+
51+
By default, it is set to **No**, which means that the timer boundary event is non-interrupting. When it is set to **Yes**, the timer boundary event is interrupting. For more information, see [Boundary Events](/refguide/workflow-boundary-events/).
52+
4053
### Timer Section {#timer}
4154

4255
The **Timer** property can be configured in two ways: you can set a certain duration or a date and time with an expression. When the workflow path reaches the timer, the configured duration or date and time will be scheduled to take effect.
18.8 KB
Loading
1.84 KB
Loading
193 KB
Loading
82.8 KB
Loading
32.4 KB
Loading

0 commit comments

Comments
 (0)