Skip to main content

Human Task

Introduction

Human Task

info

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.

Properties

General

Common

AttributeTypeDescriptionCategory
Model Id Text

Model Id identifies the element within the process model.

The model id, name and documentation properties are used to uniquely identify the human task, to give it a user-friendly name and to add a free-form description.

The due date can be used to define a deadline for the task. The priority is a number that is used to indicate its relative importance compared to other tasks. The category can be used to group tasks together and is used in custom queries

Name Expression usage possibleTranslatable to different languagesText

The name of the element. This is the name displayed in the diagram.

Documentation Multiline Text

The documentation attribute additionally adds a description to the component.

Due date Expression usage possibleDate

Due date of the task. It can either be an be an absolute value, a value relative to the creation date or an expression.

Priority Expression usage possibleText

The priority can be be used to sort or categorize tasks. Defaults to priority 50 if left empty.

Category Expression usage possibleText

Category of User Task. This allows you to group user tasks by your own criteria.

Form

AttributeTypeDescriptionCategory
Form reference Expression usage possibleReference

Reference to the form that will be displayed when opening this task.

Create or link a form to this human task. The form will be shown when the user navigates to the human task and is used to collect data relevant for this human task.

A form reference can be unlinked to allow another form to be linked in its place. Note that unlinking a form does not delete the form model itself.

In same deployment Boolean

Set it to true if the referenced definition should be referenced from within the same app deployment. Set it to false to always use the newest definition.

The Same deployment flag is used to indicate that the human task form model that is used is part of the same app deployment package as where the current BPMN model is in. If unchecked, the latest version is used which can come from an app that is deployed at a later point in time.

SLA

AttributeTypeDescriptionCategory
SLA reference Reference

Reference to the SLA that will be used

Assignment

AttributeTypeDescriptionCategory
Assignee Expression usage possibleUser Selection

User ID of the task's assignee. The assignee can see and complete a task and is usually the person responsible for it.

A task needs to be completed by the assignee. This assignee can be a user identifier or you can also use an expression that resolves to the identifier of the user when the process instance is running.

The owner of a human task is the identifier - or again an expression- of the user that owns the human task from a business sense, which not necessarily needs to be the same as the assignee.

Owner Expression usage possibleUser Selection

The owner of a task can see a task and is able to delegate it to another user.

This user then becomes the assignee and can resolve the task. A resolved task will then be reassigned to the owner who can then complete the task.

Candidate users Expression usage possibleUser Selection

By selecting one or more candidate users, the task might be taken by one of those users.

If the task is not specifically assigned to one of the users directly, it will show up in all of the selected candidate users tasks list until assigned directly.

Users which are part of the candidate groups can claim this task and take responsibility for completion it.

Similarly, candidate users can be set, as a list of user ids or an expression, which identifies the users that can claim this task.

Lastly, the task candidates type defines which users will appear in the list of users when changing the assignee of a task.

Task candidates type Selection:
  • All users
  • Task candidates
  • Task owner
  • All task identity links

Defines the filter on the list of users when changing the assignee of a task.

Candidate groups Expression usage possibleGroup Selection

By selecting one or more groups as the candidate groups, shares the task with all users belonging to at least one of the groups.

If there is no specific assignee specified but the task has candidate groups, the task will show up in all users task list belonging to at least one of the groups until the task is assigned to a specific user.

Watcher users Expression usage possibleUser Selection

Defines the watcher user identity links for the task.

Watcher users - configured directly or through watcher groups - are users which are added to the human task as watcher. By default, a watcher can only view information on a human task. What a watcher can do on a human task can be configured through a security policy model.

Watcher groups Expression usage possibleGroup Selection

Defines the watcher group identity links for the task.

Participant users Expression usage possibleUser Selection

Defines the participant user identity links for the task.

Participant users - configured directly or through groups - are users which are added to the human task as participants. By default, a participant can work on the human task, but can't access the process or case instance details. What a participant can do on a human task can be configured through a security policy model.

Participant groups Expression usage possibleGroup Selection

Defines the participant group identity links for the task.

Disallowed users for assignee Expression usage possibleUser Selection

When set, any of these users will be disallowed from being an assignee for this user task.

The properties here influence which user is disallowed from being an assignee for this task.

Selecting a user or group is the most straight-forward: any of these users or users from the selected groups won't be able to become an assignee.

Referencing another task or tasks disallows that the user that has completed the referenced task(s) can become an assignee of this task. Note that the user completing the task can be different from the assignee of the task (e.g. a task can be claimed and completed by someone else). This allows implementing for example the 'four-eyes' principle often found in BPMN and CMMN models.

Disallowed groups for assignee Expression usage possibleGroup Selection

When set, a user of any these groups will be disallowed from being an assignee for this user task.

Disallowed task completers for assignee Expression usage possibleTaskSelect

When set, any user that has completed a referenced task will be disallowed from being an assignee for this user task.

Control

AttributeTypeDescriptionCategory
Required Expression usage possibleBoolean

Select this option to mark the element as required (exclamation mark decorator). Required plan items must be either in the status COMPLETED, TERMINATED, or DISABLED in order for their parent stage to complete.

Check this option to mark this human task as required, which means that it needs to be in a terminal state in order for its parent to complete. Visually, the human task will get an exclamation mark icon.

Required plan items must be in a terminal state (such as completed or terminated) in order for their parent stage to complete.

Completion neutral Expression usage possibleBoolean

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 will behave neutral with respect to the completion of the parent container.

Completion neutral influences the plan item's parent stage completion.

Normally, plan item instances in the state available may prevent the parent stage (or case) from automatically completing. By checking this property, the plan item will behave neutral with respect to the completion of the parent container (i.e. it will not stop the completion).

Manual activation Expression usage possibleBoolean

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.

A manual activated human task is not automatically activated when its parent stage becomes active.

Instead, the human task plan item instance will be in the available state, until the user manually uses the action to activate it, at which point the task will be created and will be found in task lists.

Manual activation name Expression usage possibleTranslatable to different languagesText

Define the name to be used for the manual activation trigger.

Manual activation icon Expression usage possibleIcon

Define the icon to be used for the manual activation trigger.

Manual activation priority Expression usage possibleInteger

The priority for the Manual activation action

Manual activation permission groups Expression usage possibleGroup Selection

Define the groups which have access to the manual activation trigger.

Advanced configuration for manual activation. The permission groups allow to define which groups and the permissions users allow to define which users can use the action to manually activate the human task plan item instance.

Manual activation permission users Expression usage possibleUser Selection

Define the users which have access to the manual activation trigger.

Manual activation channels Expression usage possibleText

Define a list of channels to expose the manual activation action.

Start form Expression usage possibleReference

An optional form shown when the event listener is manually activated.

The form that is shown when the action to manual activate the human task is used. If there is no form, the human task will immediately be activated.

In same deployment Boolean

Set it to true if the referenced definition should be referenced from within the same app deployment. Set it to false to always use the newest definition.

The Same deployment flag is used to indicate that the manual activation form model that is used is part of the same app deployment package as where the current CMMN model is in. If unchecked, the latest version is used which can come from an app that is deployed at a later point in time.

Validate start form fields (server-side) Expression usage possibleBoolean

If the start form is submitted and validate form fields expression evaluates to true, form fields are validated on the BE side according to the form model restrictions.

If the form is submitted and the flag or expression on the left-hand side evaluate to true, the form fields will be validated on the server-side according to the form model restrictions.

Repetition

AttributeTypeDescriptionCategory
Repetition Expression usage possibleBoolean

Select this option to mark the element as repeatable (fencemark decorator). Repeatable plan items may exist more than once at run-time, each having their own life-cycle.

A human task can be repeatable, in which case multiple plan item instances will be created for the same human task plan item. The repetition can be an expression, and new instances are created as long as the expression resolves to true. This can be limited using the Max instance count. The Repetition counter variable is a local variable with a value incremented by one for each new plan item instance created.

Alternatively, a Collection variable can be passed which leads to a plan item instance per element in the collection.

The element can be captured in a variable using the Element variable and its index in the collection in the Element index variable.

Repetition counter variable Text

Name of the repetition counter variable.

Don't create repetition counter variable Boolean

Enable this flag to prevent the creation of the repetition counter variable. When a variable aggregation is defined, this flag will be ignored and a repetition counter variable will be created.

Max instance count Selection:
  • unlimited
  • one

Defines the maximum number of instances for repetition. Note that this does not mean there can be only one instance ever in the lifetime of a case instance, this will limit the instances each time when the repetition is evaluated (for example when an entry sentry evaluates to true to re-enter a stage or plan item).

Collection variable Text

Variable to be used as the collection for the repetition.

Element variable Text

Variable that will be used to store the current item value for the repetition.

Element index variable Text

Variable that will be used to store the current index value for the repetition.

Variable Aggregations List

When using repetition, there is often a need to create an aggregation of the variables created and/or updated in each instance.

With variable aggregation, a JSON variable can be created that after all instances have been completed contains the summary of all the used variables. This is needed because for repetition, variables are persisted locally, to avoid clashes on the case instance level.

Alternatively, an 'overview' variable can be created while the instances are still unfinished.

Each aggregation consists of one or multiple definitions that map instance variables of one instance of the repetition to the aggregation variable.

Advanced Form

Data mapping

AttributeTypeDescriptionCategory
Input mapping type Selection:
  • Allowed
  • Blocked

Defines the type for the mapping definitions, which can be allowed or blocked.

The data that's available to the human task form can be configured. If the 'allowed' type is selected, only variables that match the mappings will be passed to the human task form. Alternatively, using the 'blocked' option, all variables are available except those which match the mappings.

Input mappings to form List

Defines the input mappings that are allowed or blocked for the task form.

Output mapping type Selection:
  • Allowed
  • Blocked

Defines the type for the mapping definitions, which can be allowed or blocked.

Output mappings to form List

Defines the output mappings that are allowed or blocked for the task form.

Validation

AttributeTypeDescriptionCategory
Validate form fields (server-side) Expression usage possibleBoolean

If the start form is submitted and validate form fields expression evaluates to true, form fields are validated on the BE side according to the form model restrictions.

If the form is submitted and the flag or expression on the left-hand side evaluate to true, the form fields will be validated on the server-side according to the form model restrictions.

Security

AttributeTypeDescriptionCategory
Security policy Expression usage possibleReference

Allows to set a custom security policy.

Create a new or link an existing security policy model to this human task to configure the capabilities of the different users and roles in a fine-grained way.

UI Configuration

Case view

AttributeTypeDescriptionCategory
Header configuration Expression usage possibleSelection:
  • No header
  • Small
  • Medium
  • Large

Choose a header configuration or fill-in a custom header config value.

Expose to case view Boolean

Should this task be exposed at runtime in the case view.

Label Expression usage possibleTranslatable to different languagesText

Define a label for the runtime display of this element

Icon Icon

Choose an icon for the runtime display of this element

Index Text

Define an index for the ordering in the runtime display of this element

Available / enabled Selection:
  • Full access
  • Read only
  • Disabled
  • Hidden

Define how the element should be rendered in a state of Available / enabled

The case view feature allows to have customized views for cases where information can be added or removed depending on the user. The expose to case view will render this task in such case views.

Once checked, different options will allowed to control in a fine-grained way how the task is displayed.

Active Selection:
  • Full access
  • Read only
  • Disabled
  • Hidden

Define how the element should be rendered in a state of Active

Completed Selection:
  • Full access
  • Read only
  • Disabled
  • Hidden

Define how the element should be rendered in a state of Completed

Terminated Selection:
  • Full access
  • Read only
  • Disabled
  • Hidden

Define how the element should be rendered in a state of Terminated

Expose task details

AttributeTypeDescriptionCategory
Expose human task as action to object List

Allows you to expose the human task to objects other than the case, such as a user or conversation.

Expose as action to object List

Allows you to expose the activation action to objects other than the case or process, such as a user or conversation.

Expose as an action message List

Allows you to expose the activation action as a message to a conversation.

Advanced

Execution

AttributeTypeDescriptionCategory
Impact on parent completion Selection:
  • default
  • ignore
  • ignore if available
  • ignore if available or enabled
  • ignore after first completion
  • ignore after first completion if available or enabled

Defines how the plan item is used when the parent completion evaluation is executed.

Normally, a parent stage completes when it has no active child plan item instances and all such instances are in a terminal state. Using auto complete, this can be changed to only look at the plan items marked as required.

Using the Parent completion here, this behavior can be further specified: default will be as described above while ignore means that this human task isn't taking into account when checking if the parent stage completes. The other options allow for even finer-grained control to determine when to ignore this human task with regards to parent stage completion.

Asynchronous Boolean

When enabled, the behavior of the plan item will be executed as an asynchronous job. This will happen when the plan item transitions to the ACTIVE state. During the execution of the behavior, the plan item will be set to an intermediate ASYNC_ACTIVE state.

Please refer to the documentation for more details.

When making a human task asynchronous, the task will be created asynchronously in the background. This is typically not needed, unless there is heavy-weight logic for example in associated execution- or task listeners.

Exclusive Boolean

Determines whether the plan item is run as an exclusive job. An exclusive job makes sure that no other asynchronous exclusive plan items within the same case instance are performed at the same time. This helps to prevent failing jobs in concurrent scenarios.

Leave asynchronously Boolean

When enabled, the leaving of the plan item will be executed as an asynchronous job. This will happen when the plan item transitions moved out of the ACTIVE state. During the execution of the behavior, the plan item will be set to an intermediate ASYNC_ACTIVE_LEAVE state.

Please refer to the documentation for more details.

Leave exclusive Boolean

Determines whether the activity should leave as an exclusive job. An exclusive job makes sure that no other asynchronous exclusive activities within the same process are performed at the same time. This helps to prevent failing jobs in concurrent scenarios.

Job Category Expression usage possibleText

When set, the underlying generated job will have a Job Category, which will be executed only by Application Servers, where the Case Engine has enabledJobCategories set to this category.

Blocking Expression usage possibleBoolean

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.

The blocking flag will indicate whether this human task acts as a wait state. This means that the runtime execution will create the human task, leaving it in the active state until the user completes it.

If unchecked, the human task will be created (and users will see it in the task lists), but the state is immediately moved to completed. There aren't many use cases for this behavior.

Include in history Boolean

When the history level is set to "instance" or "task" level with this property it can be configured if this plan item instance should be included in the historic plan item instance data.

The Include in history flag can be used to store the historical entry of this human task when running with a history level that normally would not store the execution of the plan item.

Note that this flag has no effect when running with history level 'none'.

Task ID variable Expression usage possibleText

An optional variable that holds the ID of the created task instance.

Using the Task ID variable, the ID of the task will be stored after creation as a case instance variable.

Task Completer variable Expression usage possibleText

An optional variable that holds the User ID of the completer of this task instance.

Advanced options

AttributeTypeDescriptionCategory
Folder path for uploaded content items Text

Set a folder path to define the folder where uploaded content items for this task need to uploaded to.

Listeners

AttributeTypeDescriptionCategory
Lifecycle listeners List

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.

With lifecycle listeners it is possible to react to state changes of the human task plan item instance. Lifecycle listeners allow you to execute an expression, a delegate expression or a class when the plan item instance transitions from one state to another.

Task listeners List

Allows you invoke Java logic after the creation, the reassignment, the completion and the deletion of the task.

Task listeners are used to add logic on certain human task lifecycle events.

Typically it is used to add extra technical logic which shouldn't be visible in the BPMN process model.

Reactivation

AttributeTypeDescriptionCategory
Direct activation condition Expression usage possibleBoolean

Condition that expresses if the plan item should be directly activated when a case instance is reactivated.

Case reactivation is the the ability to reopen a finished case instance and continue with its execution. Case reactivation needs to be modeled using a reactivation listener and specific behavior can be configured for each plan item in the case model.

The Direct Activation Condition is the first condition to be evaluated during case reactivation. If checked or if there is an expression evaluating to true, the human task immediately gets activated, regardless of any entry sentry or condition which might be necessary to restart at a certain state of the case (e.g. a stage).

The Ignore Condition, if checked or if there is an expression evaluating to true, means that the human task is ignored on reactivation.

The Default Condition only gets evaluated, if the previous ones are either not checked or evaluated to false. If so, the human task behaves like a regular one as if the case instance was started from scratch. This means that any necessary entry sentry is considered and evaluated and the engine proceeds as normal.

Please check the Flowable documentation for more details.

Ignore condition Expression usage possibleBoolean

Condition that expresses if the plan item should be ignored when a case instance is reactivated.

Default condition Expression usage possibleBoolean

Condition that expresses if the plan item should trigger when a case instance is reactivated.

Visual

AttributeTypeDescriptionCategory
Font size Selection:
  • 8
  • 9
  • 10
  • 11
  • 12
  • 14
  • 18
  • 20
  • 24
  • 36
  • 48
  • 72

The font size of the element in the diagram.

Visual properties that determine how the human task is shown in the diagram.

This has no impact on the runtime execution.

Font weight Selection:
  • Normal
  • Bold

The font weight of the element in the diagram.

Font style Selection:
  • Normal
  • Italic

The font style of the element in the diagram.

Font color Color

The font color of the element in the diagram.

Background color RequiredColor

The background color of the element in the diagram.

Border color RequiredColor

The border color of the element in the diagram.

List Attribute Details

Variable Aggregations

AttributeTypeDescription
Target (Variable / Expression) RequiredExpression usage possibleText

The name of the target variable or an expression that gives the variable name

Type RequiredSelection:
  • Default
  • Custom

The audit log type.

Delegate Expression Expression usage possibleText

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 PlanItemJavaDelegate or CmmnActivityBehavior.

Class String

Fully qualified classname of a class to be invoked when executing the task. The class must implement either PlanItemJavaDelegate or CmmnActivityBehavior.

Target variable creation RequiredSelection:
  • Default
  • Create overview variable
  • Store as transient variable
Variable Definitions BasicFormList

Variable Definitions

AttributeTypeDescription
Source (Variable / Expression) RequiredExpression usage possibleText

The name of the source variable or an expression that provides the value

Target (Variable / Expression) Expression usage possibleText

The name of the target variable or an expression that gives the variable name

Input mappings to form

AttributeTypeDescription
Mapping value Text

Variable name

Output mappings to form

AttributeTypeDescription
Mapping value Text

Variable name

Expose human task as action to object

AttributeTypeDescription
Scope Id RequiredExpression usage possibleText

Scope id points to the scope under which the audit task log is created. If all of scope attributes are empty, current scope is used.

Scope type RequiredText with suggestions:
  • conversation
  • cmmn
  • bpmn
  • task
  • user
  • user-account

Scope type defines the type of the scope and sub scope instances. If all of scope attributes are empty, current scope type is used.

Participant users Expression usage possibleUser Selection
Participant groups Expression usage possibleGroup Selection
Action name Expression usage possibleText
Action description Expression usage possibleText

Expose as action to object

AttributeTypeDescription
Scope Id RequiredExpression usage possibleText

Scope id points to the scope under which the audit task log is created. If all of scope attributes are empty, current scope is used.

Scope type RequiredText with suggestions:
  • conversation
  • cmmn
  • bpmn
  • task
  • user
  • user-account

Scope type defines the type of the scope and sub scope instances. If all of scope attributes are empty, current scope type is used.

Participant users Expression usage possibleUser Selection
Participant groups Expression usage possibleGroup Selection
Action name Expression usage possibleText
Action description Expression usage possibleText

Expose as an action message

AttributeTypeDescription
Conversation id RequiredExpression usage possibleText

The id of the conversation to modify, must be provided.

Sending user id RequiredExpression usage possibleText

Defines the optional user id that will send the message, defaults to the current user, if left empty.

Receiving user id Expression usage possibleText

Defines the optional user id that will receive the message, defaults to all participants of the conversation if left empty. If a receiving user id is specified, the message will be created as a private message.

Message content Expression usage possibleText

Defines the content for the message to be sent, if there is no template message code provided.

Template message code Expression usage possibleText

Optionally define a template message code to be used as the message content (in this case, the message content is ignored).

Template language Expression usage possibleText

Optionally define the language in which the template should be rendered as the message content.

Sticky message Boolean

Lifecycle listeners

AttributeTypeDescription
Source state RequiredSelection:
  • Any
  • Available
  • Active
  • Enabled
  • Disabled
  • Completed
  • Failed
  • Suspended
  • Closed
  • Terminated
  • Waiting for repetition
  • Async active
  • Async active leave
Target state RequiredSelection:
  • Any
  • Available
  • Active
  • Enabled
  • Disabled
  • Completed
  • Failed
  • Suspended
  • Closed
  • Terminated
  • Waiting for repetition
  • Async active
  • Async active leave
Class Text

Fully qualified classname of a class to be invoked when executing the task. The class must implement either PlanItemJavaDelegate or CmmnActivityBehavior.

Expression Text

JUEL Expression to be executed when the task is started. Expressions allow you to interact with the backend by calling services, making calculations etc. You can find more information about expressions in the documentation.

Delegate expression Text

Task listeners

AttributeTypeDescription
Event RequiredSelection:
  • Create
  • Assignment
  • Complete
  • Delete
Class Text

Fully qualified classname of a class to be invoked when executing the task. The class must implement either PlanItemJavaDelegate or CmmnActivityBehavior.

Expression Text

JUEL Expression to be executed when the task is started. Expressions allow you to interact with the backend by calling services, making calculations etc. You can find more information about expressions in the documentation.

Delegate expression Text
On transaction Text
fields List

fields

AttributeTypeDescription
Name Text

The name of the element. This is the name displayed in the diagram.

String value Text
Expression Text

JUEL Expression to be executed when the task is started. Expressions allow you to interact with the backend by calling services, making calculations etc. You can find more information about expressions in the documentation.

String Text