Case Editor
The Case Editor is the primary means to graphically create a case in Case Management Model and Notation (CMMN) using simple drag-and-drop commands.
User Interface
The Case Editor interface is roughly divided into four areas:
The menu bar on top, just below the navigation bar
The palette on the left side
The canvas in the middle
The attribute bar on the right side
The following sub-chapters describe each area in detail.
Menu Bar
The menu bar offers a number of actions, some of them only affecting the currently opened model while others have a more global impact.
Group | Icon | Description |
---|---|---|
Save | Saves the currently opened model. | |
Saves all opened models. | ||
Validate | Validates the currently opened model. | |
Edit | Copy the selected element. | |
Pastes the contents of the clipboard. | ||
Cuts the currently selected element. | ||
Deletes the currently selected element. | ||
Protocol | Undoes the previous action. | |
Redoes the most current action. | ||
Zoom | Zooms into the model. | |
Zoom out of the model. | ||
Resets the zoom level. | ||
Set the zoom level to fit the model. | ||
Layout | Aligns all selected elements in relation to the first selected element. | |
Sets the size of all selected elements to the size of the first selected element. | ||
Resets connectors according to their default settings. | ||
Allows to delete dockers from connectors with a left click. | ||
Activates spacer tool. | ||
Documentation | Shows all comments made on elements. | |
Switches the language of the model. | ||
Model | Opens the Data Model Viewer. | |
Opens the Revision Editor, see revisions. | ||
Searches for an attribute value within the currently opened model. | ||
Export | Exports the currently opened model, only possible if the model was saved. | |
Publish | Publish an app, see publishing apps. |
Drawing Criteria
Often you want to add entry of exit criteria to tasks or other case item. To do this, drag an entry or exit criterion shape from the Sentries group of elements and drop it on the task or item that needs to react to the sentry. While you are dragging the shape and hover over a task or item, the items outline changes to a green to indicate it is an allowed target for the criterion. Drop the criterion shape and a diamond representation of the sentry is added to the task or item.
If the entry of exit criterion is to be defined as an expression, the Condition attribute of the criterion can be used to enter the expression. You can also connect the criterion to another case item by clicking on the criterion diamond shape and access the connector tool from the item’s tools to drag a connection.
What is CMMN?
The Case Management Model and Notation (CMMN) is a standard notation and formal specification of the Object Management Group for representing cases. It can be used for capturing work methods that are based on the handling of cases requiring various activities that may be performed in an unpredictable order in response to evolving situations. Using an event-centered approach and the concept of a case file, CMMN expands the boundaries of what can be modeled with BPMN, including less structured work efforts and those driven by knowledge workers. Using a combination of BPMN and CMMN allows users to cover a much broader spectrum of work methods. It provides a standard, common language for all stakeholders, whether technical or non-technical: business analysts, case workers, managers and technical developers, as well as external teams and consultants. Ideally, it bridges the gap between process intention and implementation by providing sufficient detail and clarity into the sequence of business activities.
In addition, CMMN in its current version was designed with automatic execution in mind. This means that a case can be stored as a file and can then be used to automatize case management using a so called CMMN engine such as Flowable.
Purpose of CMMN
CMMN is targeted at participants and other stakeholders involved in case work to gain understanding through an easy-to-understand visual representation of the case model.
Case Plan Model
The Case plan model represents the case itself. It is the top-most parent stage for all model elements of the case.
Attributes
Group | Attribute | Description |
---|---|---|
General | ID | A unique ID for the element. The ID is used to refer to a model element from outside of the diagram (for example, from a CMMN Action button in a form or when referring to a model element, such as plan item ID, in a CMMN REST call). For convenience, this ID can be edited. |
Name | The name of the element. This is the name displayed in the diagram. If no run-time name is specified, this name is also used in the running case. | |
Creation date | This defines the date on which the diagram was created. | |
Modification date | This defines the date on which the diagram was last modified. | |
Documentation | Documentation intended to explain concepts of its use for future reference. | |
Security policy | The security policy associated with this element. | |
Folder path for uploaded content items | The folder path where uploaded content items for this case are uploaded. | |
Description | The description attribute additionally adds a description to the component. | |
Details | Version | This defines the version number of the case. |
Author | This holds the name of the author of the case. | |
Initiator variable name | The user that can start the case instance. | |
Target namespace | Target namespace of the case model. This allows you to group models according to your own criteria. | |
Visual | Label expression | Replaces the label of all activities with the provided expression. For instance, |
Font weight | The font weight of the element in the diagram. | |
Font size | The font size of the element in the diagram. | |
Font color | The font color of the element in the diagram. | |
Font style | The font style of the element in the diagram. |
Stages
Stages are used to structure cases. They are often used to represent the different phases of a case or to logically group plan items. It is possible to nest stages.
Attributes
Group | Attribute | Description |
---|---|---|
General | ID | A unique ID for the element. The ID is used to refer to a model element from outside of the diagram (for example, from a CMMN Action button in a form or when referring to a model element, such as plan item ID, in a CMMN REST call). For convenience, this ID can be edited. |
Name | The name of the element. This is the name displayed in the diagram. If no run-time name is specified, this name is also used in the running case. | |
Description | The description attribute additionally adds a description to the component. | |
Documentation | Documentation intended to explain concepts of its use for future reference. | |
Details | Required | Select this option to mark the element as required (exclamation mark decorator). Required plan items must either be in the state COMPLETED, TERMINATED or DISABLED for their parent stage to complete. |
Repetition | Select this option to mark the element as repeatable (number sign decorator). By default, only one instance of a plan item is created at runtime. Repeatable plan items do not have that limitation. The combination of this property, Manual activation, and no entry sentry has a special meaning called Automatic repetition: As a previous instance of the plan item completes, a new instance is automatically created and set into state 'Enabled'. | |
Repetition counter variable | The name of the repetition counter variable. | |
Completion neutral | Completion neutral influences the plan item’s parent stage completes. Plan items in the state AVAILABLE may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item behaves neutral with respect to the completion of the parent container. | |
Auto complete | A stage with this option set to true completes more eagerly, even if there are pending non-required children in states 'Available' or 'Enabled'. In other words: With the option set to true, a Stage completes even if it has children in states 'Available' or' Enabled' (unless they are Required). With this option set to false, a Stage only completes if all child elements are one of the states: 'Completed', 'Terminated', or 'Disabled'. | |
Show state | A flag indicating whether the state of this Stage is displayed at run-time. The standard Case template includes a status bar showing the states of Stages and Milestones. When set to true, the Stage is displayed in the status bar with colors reflecting its state: light gray for 'Available'/'Enabled'/'Terminated', red for active, dark gray for 'Completed'. | |
Display order | An integer value (negative, zero or positive) denoting the display order of the Stage’s state indicator relative to other elements in the status bar (see attribute 'Show state'). The smaller the number, the more to the left. | |
Activation | Manual activation | Select this option to mark the element to have Manual activation (right arrow 'play' decorator). Plan items with Manual activation move from state AVAILABLE to state ENABLED once they trigger. A plan item in state ENABLED exposes an action button that allows the user to start the plan item manually. |
More | Lifecycle listeners | It allows you to define lifecycle listeners for a plan item. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when a plan item transitions from one state to another. |
Visual | Font weight | The font weight of the element in the diagram. |
Font size | The font size of the element in the diagram. | |
Font color | The font color of the element in the diagram. | |
Font style | The font style of the element in the diagram. | |
Background color | The background color of the element in the diagram. | |
Border color | The border color of the element in the diagram. |
Tasks
In essence, tasks are the elements that do something in a case. There are a number of predefined tasks:
Flowable Work Activities
Human Task
A HumanTask is a Task that is performed by a Case worker.
— CMMN 1.1 Standard, 5.4.10.4, Human Task
In Flowable, Human Tasks are the primary way to interact with humans within a case. Once a Human Task is activated, a user is required to fill in a form of some sort.
Through forms, it is possible to create and update variables which can be used in other tasks or can be used to control the flow of a process.
Each task can be assigned to one or more people as well as shared with any number of groups. In addition, a task can optionally have a due date.
Attributes
Group | Attribute | Description |
---|---|---|
General | ID | A unique ID for the element. The ID is used to refer to a model element from outside of the diagram (for example, from a CMMN Action button in a form or when referring to a model element, such as plan item ID, in a CMMN REST call). For convenience, this ID can be edited. |
Name | The name of the element. This is the name displayed in the diagram. If no run-time name is specified, this name is also used in the running case. | |
Description | The description attribute additionally adds a description to the component. | |
Security policy | The security policy associated with this element. | |
Documentation | Documentation intended to explain concepts of its use for future reference. | |
Assignment | Owner | The Owner attribute describes who owns the task. The owner can have specific task permissions defined in the security policy. |
Assignee | Defines the assignee of a task. The assignee is the person who is responsible for the completion of a task. By default, the assignee is set to | |
Candidate users | Defines a list of users that can become assignee by claiming the task. It is possible to set the candidate users directly or through an expression. In both cases, a list of user IDs is expected. | |
Candidate groups | Defines one or more groups that can become assignee by claiming the task. You can either directly select a group or use an expression. It is possible to set the candidate groups directly or through an expression. In both cases, a list of group IDs is expected. | |
Participant users | The selected users to add as participant identity links to the task. | |
Participant groups | The selected groups to add as participant identity links to the task. | |
Watcher users | The selected users to add as watcher identity links to the task. | |
Watcher groups | The selected groups to add as watcher identity links to the task. | |
Details | Form reference | The form associated with the User Task. Once a user opens the task, he or she is presented with the referenced form. It is possible to create a new form, reference an existing one or delete the current reference. |
Validate form fields (server-side) | If the form is submitted and validate form fields expression evaluates to true, form fields are validated on the back send according to the form model restrictions. | |
Expose human task as action to object | Allows you to expose the activation action to objects other than the case, such as a user or conversation. | |
Expose human task as an action message | Allows you to expose the human task as a message in a conversation. | |
Asynchronous | When enabled, the behavior of the plan item is executed as an asynchronous job. This happens when the plan item transitions to the ACTIVE state. During the execution of the behavior, the plan item is set to an intermediate ASYNC_ACTIVE state. | |
Required | Select this option to mark the element as required (exclamation mark decorator). Required plan items must either be in the state COMPLETED, TERMINATED or DISABLED for their parent stage to complete. | |
Repetition counter variable | Name of the repetition counter variable. | |
Repetition | Select this option to mark the element as repeatable (number sign decorator) By default, only one instance of a plan item may be created at runtime. Repeatable plan items do not have that limitation. The combination of this property, Manual activation and no entry sentry has a special meaning called Automatic repetition: As a previous instance of the plan item completes, a new instance is automatically created and set into state Enabled. | |
Blocking | Blocking is the default behavior where a task plan item remains active until it transitions from the ACTIVE state to another one as work on the case progresses. By marking a plan item as non-blocking, the task is immediately moved to the next state instead. For Human Tasks, blocking indicates that the created task must be completed to start the plan item’s transition to the state COMPLETE. | |
Completion neutral | Completion neutral influences the plan item’s parent stage completes. Plan items in the state AVAILABLE may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item behaves neutral with respect to the completion of the parent container. | |
Priority | An integer number denoting the priority of the task. | |
Due date | The due date of the task. There are three different modes to set the due date:
| |
Task listeners | Sets Task listeners for this task. This lets you react to the following events:
| |
Folder path for uploaded content items | The folder path where uploaded content items for this case are uploaded. | |
Activation | Manual activation | Select this option to mark the element to have Manual activation (right arrow 'play' decorator). Plan items with Manual activation move from state AVAILABLE to state ENABLED once they trigger. A plan item in state ENABLED exposes an action button that allows the user to manually start the plan item. |
Expose as action to object | Allows you to expose the activation action to objects other than the case, such as a user or conversation. | |
Expose as an action message | Allows you to expose the activation action as a message to a conversation. | |
More | Lifecycle listeners | Allows you to define lifecycle listeners for a plan item. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when a plan item transitions from one state to another. |
Visual | Font weight | The font weight of the element in the diagram. |
Font size | The font size of the element in the diagram. | |
Font color | The font color of the element in the diagram. | |
Font style | The font style of the element in the diagram. | |
Background color | The background color of the element in the diagram. | |
Border color | The border color of the element in the diagram. |
Case Task
A CaseTask can be used in the Case to call a Business Case.
— CMMN 1.1 Standard, 5.4.10.6, Case Task
In Flowable, Case Tasks are used to create new case instances. As soon as the task is activated, a new case instance is created. It is possible to create Sub cases as well as completely independent cases.
Case tasks are completed once the newly created case is completed unless the Blocking
attribute is set to false
.
Attributes
Group | Attribute | Description |
---|---|---|
General | ID | A unique ID for the element. The ID is used to refer to a model element from outside of the diagram (for example, from a CMMN Action button in a form or when referring to a model element, such as plan item ID, in a CMMN REST call). For convenience, this ID can be edited. |
Name | The name of the element. This is the name displayed in the diagram. If no run-time name is specified, this name is also used in the running case. | |
Description | The description attribute additionally adds a description to the component. | |
Documentation | Documentation intended to explain concepts of its use for future reference. | |
Details | Case reference | The Case model reference referring to the CMMN Case that is to start as this Case task moves to state ACTIVE. |
Asynchronous | When enabled, the behavior of the plan item is executed as an asynchronous job. This happens when the plan item transitions to the ACTIVE state. During the execution of the behavior, the plan item is set to an intermediate ASYNC_ACTIVE state. | |
Fallback to default tenant | Indicates the case is created with the default tenant if it is not available on the current tenant. This is only relevant if the application is running in a multi-tenant setup. | |
Required | Select this option to mark the element as required (exclamation mark decorator). Required plan items must either be in the state COMPLETED, TERMINATED or DISABLED for their parent stage to complete. | |
Repetition | Select this option to mark the element as repeatable (number sign decorator). By default, only one instance of a plan item may be created at runtime. Repeatable plan items do not have that limitation. The combination of this property, Manual activation and no entry sentry has a special meaning called Automatic repetition: As a previous instance of the plan item completes, a new instance is automatically created and set into state Enabled. | |
Completion neutral | Completion neutral influences the plan item’s parent stage completes. Plan items in the state AVAILABLE may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item behaves neutral with respect to the completion of the parent container. | |
Blocking | Blocking is the default behavior where a task plan item remains active until it transitions from the ACTIVE state to another one as work on the case progresses. By marking a plan item as non-blocking, the task is immediately moved to the next state instead. For Case Tasks, blocking indicates that the created case instance must be completed to start the plan item’s transition to the state COMPLETE. | |
Case name | An optional run-time expression for the name of the newly started case instance. If left empty, defaults to the value of the 'Name' attribute. | |
In | An optional input parameter map. Allows to pass variables into the newly created case. | |
Out | An optional output parameter map. Allows to store variables of the case back to the parent case when the child case completes. | |
Case ID | An optional variable that holds the ID of the created case instance. | |
Activation | Manual activation | Select this option to mark the element to have Manual activation (right arrow 'play' decorator). Plan items with Manual activation move from state AVAILABLE to state ENABLED once they trigger. A plan item in state ENABLED exposes an action button that allows the user to manually start the plan item. |
Expose as action to object | Allows you to expose the activation action to objects other than the case, such as a user or conversation. | |
Expose as an action message | Allows you to expose the activation action as a message to a conversation. | |
More | Lifecycle listeners | Allows you to define lifecycle listeners for a plan item. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when a plan item transitions from one state to another. |
Visual | Font weight | The font weight of the element in the diagram. |
Font size | The font size of the element in the diagram. | |
Font color | The font color of the element in the diagram. | |
Font style | The font style of the element in the diagram. | |
Background color | The background color of the element in the diagram. | |
Border color | The border color of the element in the diagram. |
Process Task
A ProcessTask can be used in the Case to call a Business Process (see 5.4.10.5.1).
— CMMN 1.1 Standard, 5.4.10.4, Process Task
In Flowable, Process Tasks are used to create new process instances. As soon as the task is activated, a new process instance is created. It is possible to create Sub processes as well as completely independent processes.
Process tasks are completed once the newly created process instance is completed, unless the Blocking
attribute is set to false
.
Attributes
Group | Attribute | Description |
---|---|---|
General | ID | A unique ID for the element. The ID is used to refer to a model element from outside of the diagram (for example, from a CMMN Action button in a form or when referring to a model element, such as plan item ID, in a CMMN REST call). For convenience, this ID can be edited. |
Name | The name of the element. This is the name displayed in the diagram. If no run-time name is specified, this name is also used in the running case. | |
Description | The description attribute additionally adds a description to the component. | |
Documentation | Documentation intended to explain concepts of its use for future reference. | |
Details | Asynchronous | When enabled, the behavior of the plan item is executed as an asynchronous job. This happens when the plan item transitions to the ACTIVE state. During the execution of the behavior, the plan item is set to an intermediate ASYNC_ACTIVE state. |
Fallback to default tenant | Indicates the case is created with the default tenant if it is not available on the current tenant. This is only relevant if the application is running in a multi-tenant setup. | |
Required | Select this option to mark the element as required (exclamation mark decorator). Required plan items must either be in the state COMPLETED, TERMINATED or DISABLED for their parent stage to complete. | |
Repetition | Select this option to mark the element as repeatable (number sign decorator). By default, only one instance of a plan item may be created at runtime. Repeatable plan items do not have that limitation. The combination of this property, Manual activation and no entry sentry has a special meaning called Automatic repetition: As a previous instance of the plan item completes, a new instance is automatically created and set into state Enabled. | |
Completion neutral | Completion neutral influences the plan item’s parent stage completes. Plan items in the state AVAILABLE may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item behaves neutral with respect to the completion of the parent container. | |
Blocking | Blocking is the default behavior where a task plan item remains active until it transitions from the ACTIVE state to another one as work on the case progresses. By marking a plan item as non-blocking, the task is immediately moved to the next state instead. For Process Tasks, blocking indicates that the created process instance must be completed to start the plan item’s transition to the state COMPLETE. | |
Process reference | The process model reference referring to the BPMN process that is to start as this Process Task moves to state ACTIVE. | |
Process instance name | An optional run-time expression for the name of the newly started process instance. If left empty, defaults to the value of the 'Name' attribute. | |
In | An optional input parameter map. Allows to pass variables to the created process instance. | |
Out | An optional output parameter map. Allows to store variables of the process instance back to the parent case when the process instance completes. | |
Process ID | An optional variable that holds the ID of the created process instance. | |
Activation | Manual activation | Select this option to mark the element to have Manual activation (right arrow 'play' decorator). Plan items with Manual activation move from state AVAILABLE to state ENABLED once they trigger. A plan item in state ENABLED exposes an action button that allows the user to manually start the plan item. |
Expose as action to object | Allows you to expose the activation action to objects other than the case, such as a user or conversation. | |
Expose as an action message | Allows you to expose the activation action as a message to a conversation. | |
More | Lifecycle listeners | Allows you to define lifecycle listeners for a plan item. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when a plan item transitions from one state to another. |
Visual | Font weight | The font weight of the element in the diagram. |
Font size | The font size of the element in the diagram. | |
Font color | The font color of the element in the diagram. | |
Font style | The font style of the element in the diagram. | |
Background color | The background color of the element in the diagram. | |
Border color | The border color of the element in the diagram. |
Service Task
In Flowable, Service Tasks are used to perform some form of "technical" task. Whenever you want to perform calculations, trigger some action within your application’s back end or integrate with another system, it often involves Service Tasks. Most custom tasks such as the Script task are specialized versions of Service Tasks. This is possible thanks to the extensible nature of the CMMN standard which allows us to create our own tasks based on an existing type.
It is possible to configure Service Tasks in four ways:
Use a Value Expression.
Specifying a class that implements
PlanItemJavaDelegate
orCmmnActivityBehavior
.Evaluating an expression that resolves to a delegation object.
Invoking a method expression.
In many cases it makes sense to store the result of an operation carried out by a Service Task. For that matter, you can specify a result variable.
Attributes
Group | Attribute | Description |
---|---|---|
General | ID | A unique ID for the element. The ID is used to refer to a model element from outside of the diagram (for example, from a CMMN Action button in a form or when referring to a model element, such as plan item ID, in a CMMN REST call). For convenience, this ID can be edited. |
Name | The name of the element. This is the name displayed in the diagram. If no run-time name is specified, this name is also used in the running case. | |
Description | The description attribute additionally adds a description to the component. | |
Documentation | Documentation intended to explain concepts of its use for future reference. | |
Details | Asynchronous | When enabled, the behavior of the plan item is executed as an asynchronous job. This happens when the plan item transitions to the ACTIVE state. During the execution of the behavior, the plan item is set to an intermediate ASYNC_ACTIVE state. |
Class | The fully qualified name of a class which either implements the class | |
Class Fields | Class fields make it possible to inject field values into your delegated class. You can either inject a fixed string value or an expression. See the section 'Field Injection' of the Flowable documentation for more information. | |
Delegate expression | Delegate Expression to be executed when the task is activated. A delegate expression must resolve to a Java object, for instance a Spring bean. The object’s class must implement either | |
Required | Select this option to mark the element as required (exclamation mark decorator). Required plan items must either be in the state COMPLETED, TERMINATED or DISABLED for their parent stage to complete. | |
Repetition | Select this option to mark the element as repeatable (number sign decorator). By default, only one instance of a plan item may be created at runtime. Repeatable plan items do not have that limitation. The combination of this property, Manual activation and no entry sentry has a special meaning called Automatic repetition: As a previous instance of the plan item completes, a new instance is automatically created and set into state Enabled. | |
Completion neutral | Completion neutral influences the plan item’s parent stage completes. Plan items in the state AVAILABLE may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item behaves neutral with respect to the completion of the parent container. | |
Expression | An expression that is resolved once the task is executed. The expression can either be a value expression such as | |
Result variable | The name of the variable under which to store the result of the expression evaluation. The result is the return value of the expression. If no result variable is indicated, the result is discarded. | |
Activation | Manual activation | Select this option to mark the element to have Manual activation (right arrow 'play' decorator). Plan items with Manual activation move from state AVAILABLE to state ENABLED once they trigger. A plan item in state ENABLED exposes an action button that allows the user to manually start the plan item. |
More | Lifecycle listeners | Allows you to define lifecycle listeners for a plan item. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when a plan item transitions from one state to another. |
Visual | Font weight | The font weight of the element in the diagram. |
Font size | The font size of the element in the diagram. | |
Font color | The font color of the element in the diagram. | |
Font style | The font style of the element in the diagram. | |
Background color | The background color of the element in the diagram. | |
Border color | The border color of the element in the diagram. |
Decision Task
A DecisionTask can be used in the Case to invoke a Decision.
— CMMN 1.1 Standard, 5.4.10.7, Decision Task
Decision Tasks are used to execute Business Rules encoded in DMN tables. You only have to indicate a Decision Table Reference, the mapping of the variable is configured in the Decision Table.
Each input in the Decision Table is mapped to a variable which must be available in the process. The same is true for the output columns which not necessarily have to exist.
Once the task is activated, the inputs are checked according to the Hit Policy defined in the table. If at least one rule matches, the values of the output columns are stored in the variables indicated in the table.
Attributes
Group | Attribute | Description |
---|---|---|
General | ID | A unique ID for the element. The ID is used to refer to a model element from outside of the diagram (for example, from a CMMN Action button in a form or when referring to a model element, such as plan item ID, in a CMMN REST call). For convenience, this ID can be edited. |
Name | The name of the element. This is the name displayed in the diagram. If no run-time name is specified, this name is also used in the running case. | |
Description | The description attribute additionally adds a description to the component. | |
Documentation | Documentation intended to explain concepts of its use for future reference. | |
Details | Decision table ref. | Decision Table Reference to set for decision task. |
Asynchronous | When enabled, the behavior of the plan item is executed as an asynchronous job. This happens when the plan item transitions to the ACTIVE state. During the execution of the behavior, the plan item is set to an intermediate ASYNC_ACTIVE state. | |
Throw error if no rules were hit | Determines whether an error should be thrown if no rules of the decision table were hit and consequently no result was found. | |
Fallback to default tenant | Indicates that the Decision task is created with the default tenant if it is not available on the current tenant. This is only relevant if the application is running in a multi-tenant setup. | |
Required | Select this option to mark the element as required (exclamation mark decorator). Required plan items must either be in the state COMPLETED, TERMINATED or DISABLED for their parent stage to complete. | |
Repetition | Select this option to mark the element as repeatable (number sign decorator). By default, only one instance of a plan item may be created at runtime. Repeatable plan items do not have that limitation. The combination of this property, Manual activation and no entry sentry has a special meaning called Automatic repetition: As a previous instance of the plan item completes, a new instance is automatically created and set into state Enabled. | |
Completion neutral | Completion neutral influences the plan item’s parent stage completes. Plan items in the state AVAILABLE may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item behaves neutral with respect to the completion of the parent container. | |
Activation | Manual activation | Select this option to mark the element to have Manual activation (right arrow 'play' decorator). Plan items with Manual activation move from state AVAILABLE to state ENABLED once they trigger. A plan item in state ENABLED exposes an action button that allows the user to manually start the plan item. |
More | Lifecycle listeners | Allows you to define lifecycle listeners for a plan item. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when a plan item transitions from one state to another. |
Visual | Font weight | The font weight of the element in the diagram. |
Font size | The font size of the element in the diagram. | |
Font color | The font color of the element in the diagram. | |
Font style | The font style of the element in the diagram. | |
Background color | The background color of the element in the diagram. | |
Border color | The border color of the element in the diagram. |
Script Task
In Flowable, Script Tasks are used to execute scripts in a JSR-223 compatible scripting language, for instance JavaScript or Groovy.
Scripts Tasks are mainly used to perform simple calculations or operations. For more complex use cases, you should consider writing a Java Service and calling it via a Service Task.
Attributes
Group | Attribute | Description |
---|---|---|
General | ID | A unique ID for the element. The ID is used to refer to a model element from outside of the diagram (for example, from a CMMN Action button in a form or when referring to a model element, such as plan item ID, in a CMMN REST call). For convenience, this ID can be edited. |
Name | The name of the element. This is the name displayed in the diagram. If no run-time name is specified, this name is also used in the running case. | |
Description | The description attribute additionally adds a description to the component. | |
Documentation | Documentation intended to explain concepts of its use for future reference. | |
Details | Asynchronous | When enabled, the behavior of the plan item is to execute as an asynchronous job. This happens when the plan item transitions to the ACTIVE state. During the execution of the behavior, the plan item is set to an intermediate ASYNC_ACTIVE state. |
Script Format | Defines the script format. The script format must be provided if a script is provided. By default, | |
Script | Script that is executed when the task is activated. | |
Required | Select this option to mark the element as required (exclamation mark decorator). Required plan items must either be in the state COMPLETED, TERMINATED or DISABLED for their parent stage to complete. | |
Repetition | Select this option to mark the element as repeatable (number sign decorator). By default, only one instance of a plan item may be created at runtime. Repeatable plan items do not have that limitation. The combination of this property, Manual activation and no entry sentry has a special meaning called Automatic repetition: As a previous instance of the plan item completes, a new instance is automatically created and set into state Enabled. | |
Completion neutral | Completion neutral influences the plan item’s parent stage completes. Plan items in the state AVAILABLE may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item behaves neutral with respect to the completion of the parent container. | |
Expression | An expression that is resolved once the task is executed. The expression can either be a value expression such as | |
Result variable | The name of the variable under which to store the return value of the script. | |
Activation | Manual activation | Select this option to mark the element to have Manual activation (right arrow 'play' decorator). Plan items with Manual activation move from state AVAILABLE to state ENABLED once they trigger. A plan item in state ENABLED exposes an action button that allows the user to manually start the plan item. |
More | Lifecycle listeners | Allows you to define lifecycle listeners for a plan item. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when a plan item transitions from one state to another. |
Visual | Font weight | The font weight of the element in the diagram. |
Font size | The font size of the element in the diagram. | |
Font color | The font color of the element in the diagram. | |
Font style | The font style of the element in the diagram. | |
Background color | The background color of the element in the diagram. | |
Border color | The border color of the element in the diagram. |
Empty Task
Empty tasks are plan items that are completed as soon as they are activated. Empty task model manual work or used when no runtime behavior is required.
Attributes
Group | Attribute | Description |
---|---|---|
General | ID | A unique ID for the element. The ID is used to refer to a model element from outside of the diagram (for example, from a CMMN Action button in a form or when referring to a model element, such as plan item ID, in a CMMN REST call). For convenience, this ID can be edited. |
Name | The name of the element. This is the name displayed in the diagram. If no run-time name is specified, this name is also used in the running case. | |
Description | The description attribute additionally adds a description to the component. | |
Documentation | Documentation intended to explain concepts of its use for future reference. | |
Details | Asynchronous | When enabled, the behavior of the plan item is executed as an asynchronous job. This happens when the plan item transitions to the ACTIVE state. During the execution of the behavior, the plan item is set to an intermediate ASYNC_ACTIVE state. |
Required | Select this option to mark the element as required (exclamation mark decorator). Required plan items must either be in the state COMPLETED, TERMINATED or DISABLED for their parent stage to complete. | |
Repetition | Select this option to mark the element as repeatable (number sign decorator). By default, only one instance of a plan item is created at runtime. Repeatable plan items do not have that limitation. The combination of this property, Manual activation and no entry sentry has a special meaning called Automatic repetition: As a previous instance of the plan item completes, a new instance is automatically created and set into state Enabled. | |
Completion neutral | Completion neutral influences the plan item’s parent stage completes. Plan items in the state AVAILABLE may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item behaves as neutral with respect to the completion of the parent container. | |
Blocking | Blocking is the default behavior where a task plan item remains active until it transitions from the ACTIVE state to another one as work on the case progresses. By marking a plan item as non-blocking, the task is immediately moved to the next state instead. This may be useful in cases where it is not desired to wait until a task fully completes. An example would be a process task with Manual activation and Repetition which can then be activated consecutively without having to wait for the completion of the last started process. This may be useful in cases where it is not desired to wait until a task fully completes. An example would be a process task with Manual activation and Repetition which can then be activated consecutively without having to wait for the completion of the last started process. | |
Activation | Manual activation | Select this option to mark the element to have Manual activation (right arrow 'play' decorator). Plan items with Manual activation move from state AVAILABLE to state ENABLED once they trigger. A plan item in state ENABLED exposes an action button that allows the user to manually start the plan item. |
More | Lifecycle listeners | Allows you to define lifecycle listeners for a plan item. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when a plan item transitions from one state to another. |
Visual | Font weight | The font weight of the element in the diagram. |
Font size | The font size of the element in the diagram. | |
Font color | The font color of the element in the diagram. | |
Font style | The font style of the element in the diagram. | |
Background color | The background color of the element in the diagram. | |
Border color | The border color of the element in the diagram. |
HTTP Task
An HTTP task submits an HTTP call and stores the result.
Attributes
Group | Attribute | Description |
---|---|---|
General | ID | A unique ID for the element. The ID is used to refer to a model element from outside of the diagram (for example, from a CMMN Action button in a form or when referring to a model element, such as plan item ID, in a CMMN REST call). For convenience, this ID can be edited. |
Name | The name of the element. This is the name displayed in the diagram. If no run-time name is specified, this name is also used in the running case. | |
Description | The description attribute additionally adds a description to the component. | |
Documentation | Documentation intended to explain concepts of its use for future reference. | |
Details | Request URL | Request URL of the HTTP call. Can contain expressions, e.g., 'http://your-system.example.com/your-endpoint/${someVariable}'. |
Result variable prefix | A prefix that is added to the result variable name for easier grouping. The following variables are affected: responseProtocol, responseReason, responseStatusCode, responseHeaders, responseBody, errorMessage. | |
Request timeout | Request timeout in milliseconds. | |
Request method | Request method to be used in the HTTP call: GET, POST, PUT or DELETE. | |
Fail status codes | List of Http response status codes to fail the request and throw a FlowableException. Code ranges can be set with an X: Example: 400, 404, 5XX | |
Request body encoding | Encoding of the request body. | |
Request body | Request body to be sent, e.g., a JSON file. You can use expressions, e.g., | |
Asynchronous | When enabled, the behavior of the plan item is executed as an asynchronous job. This happens when the plan item transitions to the ACTIVE state. During the execution of the behavior, the plan item is set to an intermediate ASYNC_ACTIVE state. | |
Ignore exception | Determines whether exceptions are ignored and stored in the variable indicated in the response variable. | |
Save response as JSON | Determines whether the response variable is stored as a JSON variable instead of a String. | |
Save request variables | Determines whether all request variables are stored. By default, only response related variables are stored as variables. | |
Save response as a transient variable | Determines whether the response variables should be stored as transient. | |
HttpTask.class.title | HttpTask.class.description | |
Handle status codes | List of status codes for which the task throws a BpmnError which can be caught by a boundary error event. Code ranges can be set with an X: Example: 400, 404, 5XX. Status codes in handleStatusCodes override those in failStatusCodes when they are set in both. | |
Save response details | Determines whether response variables including HTTP status, headers, etc. are stored. By default, only the response body is stored as a variable. | |
Request headers | Line-separated HTTP request headers. | |
Response variable name | The variable name in which the HTTP response is stored. | |
Disallow redirects | Determines whether HTTP redirects are allowed. | |
Required | Select this option to mark the element as required (exclamation mark decorator). Required plan items must either be in the state COMPLETED, TERMINATED or DISABLED for their parent stage to complete. | |
Repetition | Select this option to mark the element as repeatable (number sign decorator). By default, only one instance of a plan item may be created at runtime. Repeatable plan items do not have that limitation. The combination of this property, Manual activation, and no entry sentry has a special meaning called Automatic repetition: As a previous instance of the plan item completes, a new instance is automatically created and set into state Enabled. | |
Completion neutral | Completion neutral influences the plan item’s parent stage completes. Plan items in the state AVAILABLE may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item behaves neutral with respect to the completion of the parent container. | |
Activation | Manual activation | Select this option to mark the element to have Manual activation (right arrow 'play' decorator). Plan items with Manual activation move from state AVAILABLE to state ENABLED once they trigger. A plan item in state ENABLED exposes an action button that allows the user to manually start the plan item. |
More | Lifecycle listeners | Allows you to define lifecycle listeners for a plan item. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when a plan item transitions from one state to another. |
Visual | Font weight | The font weight of the element in the diagram. |
Font size | The font size of the element in the diagram. | |
Font color | The font color of the element in the diagram. | |
Font style | The font style of the element in the diagram. | |
Background color | The background color of the element in the diagram. | |
Border color | The border color of the element in the diagram. |
Initialize Variables
This is a service task for initializing variables in the process or case context. This task uses expressions to define the target work item to set a variable for or to set the variable value.
Attributes
Group | Attribute | Description |
---|---|---|
General | Name | The name of the element. This is the name displayed in the diagram. If no run-time name is specified, this name is also used in the running case. |
Description | The description attribute additionally adds a description to the component. | |
Documentation | Documentation intended to explain concepts of its use for future reference. | |
Details | Class fields | Class fields make it possible to inject field values into your delegated class. You can either inject a fixed string value or an expression. See the section 'Field Injection' of the Flowable documentation for more information. |
Asynchronous | When enabled, the activity is started as an asynchronous job. The process state is persisted before this element is executed. Then, the process execution is resumed asynchronously. | |
Init variables | Specify all variables to be set using this service task. Specify the target object for each of the variables (even with an expression), specify the name of the variable to set and finally the variable value itself to be set (can also be an expression). | |
Overwrite if existing | If set to true, variables which already exist are overwritten, if set to false, only non-existent variable values are set and existing ones are not modified. | |
Required | Select this option to mark the element as required (exclamation mark decorator). Required plan items must either be in the state COMPLETED, TERMINATED or DISABLED for their parent stage to complete. | |
Repetition | Select this option to mark the element as repeatable (number sign decorator). By default, only one instance of a plan item may be created at runtime. Repeatable plan items do not have that limitation. The combination of this property, Manual activation, and no entry sentry has a special meaning called Automatic repetition: As a previous instance of the plan item completes, a new instance is automatically created and set into state Enabled. | |
Completion neutral | Completion neutral influences the plan item’s parent stage completes. Plan items in the state AVAILABLE may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item behaves neutrally with respect to the completion of the parent container. | |
Activation | Manual activation | Select this option to mark the element to have Manual activation (right arrow 'play' decorator). Plan items with Manual activation move from state AVAILABLE to state ENABLED once they trigger. A plan item in state ENABLED exposes an action button that allows the user to manually start the plan item. |
More | Lifecycle listeners | Allows you to define lifecycle listeners for a plan item. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when a plan item transitions from one state to another. |
Visual | Font weight | The font weight of the element in the diagram. |
Font size | The font size of the element in the diagram. | |
Font color | The font color of the element in the diagram. | |
Font style | The font style of the element in the diagram. | |
Background color | The background color of the element in the diagram. | |
Border color | The border color of the element in the diagram. |
Generate Document
The Generate Document task generates a document based on a Word template.
Attributes
Group | Attribute | Description |
---|---|---|
General | Name | The name of the element. This is the name displayed in the diagram. If no run-time name is specified, this name is also used in the running case. |
Description | The description attribute additionally adds a description to the component. | |
Documentation | Documentation intended to explain concepts of its use for future reference. | |
Details | Asynchronous | When enabled, the activity is started as an asynchronous job. The process state is persisted before this element is executed. Then, the process execution is resumed asynchronously. |
Template key | The key referencing the key of the template in the template engine. | |
Document name | The human-readable name of the generated document. | |
Document type | The type of the generated document: either a | |
Output variable | The variable name that stores a reference to the generated document (as a content item in the content engine). | |
Context object | The name of the context variable in template expressions such as | |
Required | Select this option to mark the element as required (exclamation mark decorator). Required plan items must either be in the state COMPLETED, TERMINATED or DISABLED for their parent stage to complete. | |
Repetition | Select this option to mark the element as repeatable (number sign decorator). By default, only one instance of a plan item is created at runtime. Repeatable plan items do not have that limitation. The combination of this property, Manual activation, and no entry sentry has a special meaning called Automatic repetition: As a previous instance of the plan item completes, a new instance is automatically created and set into state Enabled. | |
Completion neutral | Completion neutral influences the plan item’s parent stage completes. Plan items in the state AVAILABLE may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item behaves neutrally with respect to the completion of the parent container. | |
Activation | Manual activation | Select this option to mark the element to have Manual activation (right arrow 'play' decorator). Plan items with Manual activation move from state AVAILABLE to state ENABLED once they trigger. A plan item in state ENABLED exposes an action button that allows the user to manually start the plan item. |
More | Lifecycle listeners | Allows you to define lifecycle listeners for a plan item. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when a plan item transitions from one state to another. |
Visual | Font weight | The font weight of the element in the diagram. |
Font size | The font size of the element in the diagram. | |
Font color | The font color of the element in the diagram. | |
Font style | The font style of the element in the diagram. | |
Background color | The background color of the element in the diagram. | |
Border color | The border color of the element in the diagram. |
Merge Documents
The Merge Documents task merges multiple PDF documents into one PDF document.
Attributes
Group | Attribute | Description |
---|---|---|
Name | The name of the element. This is the name displayed in the diagram. If no run-time name is specified, this name is also used in the running case. | |
Description | The description attribute additionally adds a description to the component. | |
Documentation | Documentation intended to explain concepts of its use for future reference. | |
Details | Asynchronous | When enabled, the activity is started as an asynchronous job. The process state is persisted before this element is executed. Then, the process execution is resumed asynchronously. |
Input PDF documents | Content Items which need to be merged together. | |
Merged document name | The human-readable name of the created PDF document. | |
Output variable | The variable name that stores a reference to the generated document (as a content item in the content engine). | |
Store output variable transiently | Flag that marks that the result of the expression will not be persisted at the end of the database transaction. Use this if you do not want to store a result after the next wait state, e.g. if you only need access to the result in the next service task. | |
Required | Select this option to mark the element as required (exclamation mark decorator). | |
Required plan items must either be in the state COMPLETED, TERMINATED or DISABLED for their parent stage to complete. | ||
Repetition | Select this option to mark the element as repeatable (number sign decorator). |
By default, only one instance of a plan item is created at runtime. Repeatable plan items do not have that limitation. The combination of this property, Manual activation, and no entry sentry has a special meaning called Automatic repetition: As a previous instance of the plan item completes, a new instance is automatically created and set into state Enabled.| | | Completion neutral | Completion neutral influences the plan item’s parent stage completes. Plan items in the state AVAILABLE may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item behaves neutrally with respect to the completion of the parent container.| | Activation | Manual activation | Select this option to mark the element to have Manual activation (right arrow 'play' decorator). Plan items with Manual activation move from state AVAILABLE to state ENABLED once they trigger. A plan item in state ENABLED exposes an action button that allows the user to manually start the plan item.| | More | Lifecycle listeners | Allows you to define lifecycle listeners for a plan item. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when a plan item transitions from one state to another.| | Visual | Font weight | The font weight of the element in the diagram.| | | Font size | The font size of the element in the diagram.| | | Font color | The font color of the element in the diagram.| | | Font style | The font style of the element in the diagram.| | | Background color | The background color of the element in the diagram.| | | Border color | The border color of the element in the diagram.|
Generate Sequence Task
The "Generate Sequence Task" is a service task that can be used to generate sequence values.
See the Business Sequence Generation How-To for a complete discussion of this task.
Sentries
Entry Criteria
Entry criteria are used to control when a plan item is activated/enabled. Once their condition evaluates to true, the plan item they are attached to is enabled/activated. Plan items can connect to Entry Criteria to make their evaluation dependent on another plan items state transitions.
Exit Criteria
Exit criteria are used to control when a plan item is terminated/exited. Once their condition evaluates to true, the plan item they are attached to is terminated/exited. Plan items can connect to Exit Criteria to make their evaluation dependent on another plan items state transitions.
Attributes
Group | Attribute | Description |
---|---|---|
General | ID | A unique ID for the element. The ID is used to refer to a model element from outside of the diagram (for example, from a CMMN Action button in a form or when referring to a model element, such as plan item ID, in a CMMN REST call). For convenience, this ID can be edited. |
Name | The name of the element. This is the name displayed in the diagram. If no run-time Name is specified, this is also used in the running case. | |
Description | The description attribute additionally adds a description to the component. | |
Documentation | Documentation intended to explain concepts of its use for future reference. | |
Details | Trigger mode (Entry Criteria only) | Defines the sentry’s trigger semantics. The setting here is only relevant for sentries that are connected to other model elements (sentries with one or more 'on-parts'). 'On event' - the sentry only 'fires' if one or more of the on-part elements undergo the desired transition as part of the current model evaluation cycle. If the sentry has a condition, and the condition evaluates to false, the sentry does not trigger and any transition event is lost. 'Event deferred' - the sentry is evaluated against any on-part element’s last transition. If there is a transition and a false sentry condition, the sentry does not trigger. If the condition turns to true at a later point in time, the sentry fires based on the state of any relevant on-part element’s last transition. |
Condition | A back-end expression ( |
Events
Event Listener
Icon | Description |
---|---|
Event Listener | An event listener triggers the evaluation of connected sentries in the back end using the triggerPlanItemInstance method of the CmmnRuntimeService. |
Attributes
Group | Attribute | Description |
---|---|---|
Details | Required | Select this option to mark the element as required (exclamation mark decorator). Required plan items must either be in the state COMPLETED, TERMINATED or DISABLED for their parent stage to complete. |
Available condition | Sets an available condition, which is an expression that moves the event listener into the available state after creation if true. It also returns the event listener to the unavailable state when the condition becomes false again. | |
Repetition | Select this option to mark the element as repeatable (number sign decorator). By default, only one instance of a plan item is created at runtime. Repeatable plan items do not have that limitation. The combination of this property, Manual activation, and no entry sentry has a special meaning called Automatic repetition: As a previous instance of the plan item completes, a new instance is automatically created and set into state Enabled. | |
Completion neutral | Completion neutral influences the plan item’s parent stage completes. Plan items in the state AVAILABLE may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item behaves neutral with respect to the completion of the parent container. | |
More | Lifecycle listeners | Allows you to define lifecycle listeners for a plan item. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when a plan item transitions from one state to another. |
User Event Listener
Icon | Description |
---|---|
User Event Listener | A user event listener allows to manually trigger the evaluation of connected sentries, e.g., through the user interface. |
Attributes
Group | Attribute | Description |
---|---|---|
Details | Required | Select this option to mark the element as required (exclamation mark decorator). Required plan items must either be in the state COMPLETED, TERMINATED or DISABLED for their parent stage to complete. |
Available condition | Sets an available condition, which is an expression that moves the event listener into the available state after creation if true. It also returns the event listener to the unavailable state when the condition becomes false again. | |
Repetition | Select this option to mark the element as repeatable (number sign decorator). By default, only one instance of a plan item is created at runtime. Repeatable plan items do not have that limitation. The combination of this property, Manual activation, and no entry sentry has a special meaning called Automatic repetition: As a previous instance of the plan item completes, a new instance is automatically created and set into state Enabled. | |
Start form | The optional form shown when the event listener is manually activated. | |
Completion neutral | Completion neutral influences the plan item’s parent stage completes. Plan items in the state AVAILABLE may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item behaves neutral with respect to the completion of the parent container. | |
Activation | Expose as action to object | Allows you to expose the activation action to objects other than the case, such as a user or conversation. |
Expose as an action message | Allows you to expose the activation action as a message to a conversation. | |
More | Lifecycle listeners | Allows you to define lifecycle listeners for a plan item. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when a plan item transitions from one state to another. |
Timer Event Listener
Icon | Description |
---|---|
Timer Event Listener | Allows to set a timer whose expiration triggers the evaluation of the connected sentries. |
Attributes
Group | Attribute | Description |
---|---|---|
Details | Time expression | Configuration of the timer event.
|
Available condition | Sets an available condition, which is an expression that moves the event listener into the available state after creation if true. Also returns the event listener back to the unavailable state when the condition becomes false again. | |
Execution | Required | Select this option to mark the element as required (exclamation mark decorator). Required plan items must either be in the state COMPLETED, TERMINATED or DISABLED for their parent stage to complete. |
Repetition | Select this option to mark the element as repeatable (fencemark decorator). Repeatable plan items may exist more than once at runtime, each having their own lifecycle. | |
Repetition counter variable | Name of the repetition counter variable. | |
Lifecycle listeners | Allows you to define lifecycle listeners for a plan item. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when a plan item transitions from one state to another. | |
Completion neutral | Completion neutral influences the plan item’s parent stage completes. Plan items in the state AVAILABLE may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item behaves neutral with respect to the completion of the parent container. |
Other Elements
Connector
Connectors are used to connect Plan Items. Specifically, they are used as the
"On-Part" of sentries. This is why it is only possible to drag a connector
from a plan item to an Entry or Exit Criterion. Each connector has a
Standard Event
which determines the event of the On-Part
of the sentry. Currently, the following events are available:
Complete
Create
Enable
Exit
Fault
Manual Start
Occur
Reactivate
Start
Terminate
See Sentries for more information on the specific usage of connectors and their role within Sentries.
Plan Fragment
Plan Fragments allow you to group related elements. Currently, they do not have any execution semantics in Flowable and can be used to build groups of Plan Items that belong together.
Milestone
Milestones are a form of plan item that are used to signify that a particular state is reached.
Even though Milestones currently do not have any runtime behavior, they can be used to route the flow of plan items. Since they are just regular plan items, it is also possible to query for achieved milestones in the back end.