Skip to main content

Case Expressions

Case Instance Properties

The following properties are available on a process instance, for example when using root or parent.

Example usage: ${parent.businessStatus}.

PropertyDescription
businessKeyThe business key of the case instance, if set.
businessStatusThe business status of the case instance, if set.
callbackIdIf the case instance is started through a case task in a CMMN case instance, this value will reference the id of the associated plan item instance.
descriptionThe description of the case instance, if set.
definitionThe case definition. See below for more details.
idThe unique technical identifier of the case instance.
nameThe name of the case instance, if set.
startTimeThe time (as a java.util.Date) the case instance was started.
startUserIdThe id of the user that started the case instance.
tenantIdThe tenant identifier of the case instance.

Case Assignment Functions

The following functions around assignment are available in a CMMN case execution context. Since 2025.1.01+ they are also available in a BPMN process execution context. If not otherwise mentioned the functions are also available in Flowable Cloud. The only difference is that in the Flowable Cloud you can only access a task which belongs to the same scope as the execution context (not in the hierarchy).

FunctionDescription
${cmmn:getAssignee()}Get the assignee of the current case. Only applicable in a case scope
${cmmn:getAssignee(<caseId>)}Get the assignee of the case with the given caseId
${cmmn:removeAssignee()}Remove the assignee of the current case. Only applicable in a case scope
${cmmn:removeAssignee(<caseId>)}Remove the assignee of the case with the given caseId
${cmmn:setAssignee(<userId>)}2025.1.01+ Set the assignee of the current case to the user with the given userId. Only applicable in a case scope
${cmmn:setAssignee(<caseId>, <userId>)}Set the assignee of the case with the given caseId to the user with the given userId
${cmmn:getOwner()}Get the owner of the current case. Only applicable in a case scope
${cmmn:getOwner(<caseId>)}Get the owner of the case with the given caseId
${cmmn:removeOwner()}Remove the owner of the current case. Only applicable in a case scope
${cmmn:removeOwner(<caseId>)}Remove the owner of the case with the given caseId
${cmmn:setOwner(<userId>)}2025.1.01+ Set the owner of the current case to the user with the given userId. Only applicable in a case scope
${cmmn:setOwner(<caseId>, <userId>)}Set the owner of the case with the given caseId to the user with the given userId
${cmmn:addCandidateUser(<userId>)}2025.1.01+ Add the user with the given userId as a candidate user of the current case. Only applicable in a case scope
${cmmn:addCandidateUser(<caseId>, <userId>)}Add the user with the given userId as a candidate user of the case with the given caseId
${cmmn:removeCandidateUser(<userId>)}2025.1.01+ Remove the user with the given userId as a candidate user of the current case. Only applicable in a case scope
${cmmn:removeCandidateUser(<caseId>, <userId>)}Remove the user with the given userId as a candidate user of the case with the given caseId
${cmmn:addCandidateUsers(<userIds>)}2025.1.01+ Add the users with the given userIds as candidate users of the current case. Only applicable in a case scope
${cmmn:addCandidateUsers(<caseId>, <userIds>)}Add the users with the given userIds as candidate users of the case with the given caseId
${cmmn:removeCandidateUsers(<userIds>)}2025.1.01+ Remove the users with the given userIds as candidate users of the current case. Only applicable in a case scope
${cmmn:removeCandidateUsers(<caseId>, <userIds>)}Remove the users with the given userIds as candidate users of the case with the given caseId
${cmmn:addCandidateGroup(<groupKey>)}2025.1.01+ Add the group with the given groupKey as a candidate group of the current case. Only applicable in a case scope
${cmmn:addCandidateGroup(<caseId>, <groupKey>)}Add the group with the given groupKey as a candidate group of the case with the given caseId
${cmmn:removeCandidateGroup(<groupKey>)}2025.1.01+ Remove the group with the given groupKey as a candidate group of the current case. Only applicable in a case scope
${cmmn:removeCandidateGroup(<caseId>, <groupKey>)}Remove the group with the given groupKey as a candidate group of the case with the given caseId
${cmmn:addCandidateGroups(<groupKeys>)}2025.1.01+ Add the groups with the given groupKeys as candidate groups of the current case. Only applicable in a case scope
${cmmn:addCandidateGroups(<caseId>, <groupKeys>)}Add the groups with the given groupKeys as candidate groups of the case with the given caseId
${cmmn:removeCandidateGroups(<groupKeys>)}2025.1.01+ Remove the groups with the given groupKeys as candidate groups of the current case. Only applicable in a case scope
${cmmn:removeCandidateGroups(<caseId>, <groupKeys>)}Remove the groups with the given groupKeys as candidate groups of the case with the given caseId
${cmmn:addParticipantUser(<userId>)}2025.1.01+ Add the user with the given userId as a participant user of the current case. Only applicable in a case scope
${cmmn:addParticipantUser(<caseId>, <userId>)}Add the user with the given userId as a participant user of the case with the given caseId
${cmmn:removeParticipantUser(<userId>)}2025.1.01+ Remove the user with the given userId as a participant user of the current case. Only applicable in a case scope
${cmmn:removeParticipantUser(<caseId>, <userId>)}Remove the user with the given userId as a participant user of the case with the given caseId
${cmmn:addParticipantUsers(<userIds>)}2025.1.01+ Add the users with the given userIds as participant users of the current case. Only applicable in a case scope
${cmmn:addParticipantUsers(<caseId>, <userIds>)}Add the users with the given userIds as participant users of the case with the given caseId
${cmmn:removeParticipantUsers(<userIds>)}2025.1.01+ Remove the users with the given userIds as participant users of the current case. Only applicable in a case scope
${cmmn:removeParticipantUsers(<caseId>, <userIds>)}Remove the users with the given userIds as participant users of the case with the given caseId
${cmmn:addParticipantGroup(<groupKey>)}2025.1.01+ Add the group with the given groupKey as a participant group of the current case. Only applicable in a case scope
${cmmn:addParticipantGroup(<caseId>, <groupKey>)}2025.1.01+Add the group with the given groupKey as a participant group of the case with the given caseId
${cmmn:removeParticipantGroup(<groupKey>)}2025.1.01+ Remove the group with the given groupKey as a participant group of the current case. Only applicable in a case scope
${cmmn:removeParticipantGroup(<caseId>, <groupKey>)}2025.1.01+ Remove the group with the given groupKey as a participant group of the case with the given caseId
${cmmn:addParticipantGroups(<groupKeys>)}2025.1.01+ Add the groups with the given groupKeys as participant groups of the current case. Only applicable in a case scope
${cmmn:addParticipantGroups(<caseId>, <groupKeys>)}2025.1.01+ Add the groups with the given groupKeys as participant groups of the case with the given caseId
${cmmn:removeParticipantGroups(<groupKeys>)}2025.1.01+ Remove the groups with the given groupKeys as participant groups of the current case. Only applicable in a case scope
${cmmn:removeParticipantGroups(<caseId>, <groupKeys>)}2025.1.01+ Remove the groups with the given groupKeys as participant groups of the case with the given caseId
${cmmn:addWatcherUser(<userId>)}2025.1.01+ Add the user with the given userId as a watcher user of the current case. Only applicable in a case scope
${cmmn:addWatcherUser(<caseId>, <userId>)}2025.1.01+ Add the user with the given userId as a watcher user of the case with the given caseId
${cmmn:removeWatcherUser(<userId>)}2025.1.01+ Remove the user with the given userId as a watcher user of the current case. Only applicable in a case scope
${cmmn:removeWatcherUser(<caseId>, <userId>)}2025.1.01+ Remove the user with the given userId as a watcher user of the case with the given caseId
${cmmn:addWatcherUsers(<userIds>)}2025.1.01+ Add the users with the given userIds as watcher users of the current case. Only applicable in a case scope
${cmmn:addWatcherUsers(<caseId>, <userIds>)}2025.1.01+ Add the users with the given userIds as watcher users of the case with the given caseId
${cmmn:removeWatcherUsers(<userIds>)}2025.1.01+ Remove the users with the given userIds as watcher users of the current case. Only applicable in a case scope
${cmmn:removeWatcherUsers(<caseId>, <userIds>)}2025.1.01+ Remove the users with the given userIds as watcher users of the case with the given caseId
${cmmn:addWatcherGroup(<groupKey>)}2025.1.01+ Add the group with the given groupKey as a watcher group of the current case. Only applicable in a case scope
${cmmn:addWatcherGroup(<caseId>, <groupKey>)}2025.1.01+ Add the group with the given groupKey as a watcher group of the case with the given caseId
${cmmn:removeWatcherGroup(<groupKey>)}2025.1.01+ Remove the group with the given groupKey as a watcher group of the current case. Only applicable in a case scope
${cmmn:removeWatcherGroup(<caseId>, <groupKey>)}2025.1.01+ Remove the group with the given groupKey as a watcher group of the case with the given caseId
${cmmn:addWatcherGroups(<groupKeys>)}2025.1.01+ Add the groups with the given groupKeys as watcher groups of the current case. Only applicable in a case scope
${cmmn:addWatcherGroups(<caseId>, <groupKeys>)}2025.1.01+ Add the groups with the given groupKeys as watcher groups of the case with the given caseId
${cmmn:removeWatcherGroups(<groupKeys>)}2025.1.01+ Remove the groups with the given groupKeys as watcher groups of the current case. Only applicable in a case scope
${cmmn:removeWatcherGroups(<caseId>, <groupKeys>)}2025.1.01+ Remove the groups with the given groupKeys as watcher groups of the case with the given caseId

CMMN Functions

The following functions are available in CMMN context:

FunctionDescriptionAvailable on Cloud
${cmmn:copyLocalVariable(planItemInstance, localVariableName, index, variableName)}Copies an planItemInstance-local variable to the case instance.
${cmmn:getTask(taskId)}Returns the task (runtime or historical) with the provided id.
${cmmn:isPlanItemCompleted(planItemInstance)}This function evaluates a plan item to be completed, which is most likely used on a plan item with a repetition rule to check, whether it has alreday been completed before.
${cmmn:isStageCompletable()}Returns whether the current case stage is completable (depends on the configuration of the stage and its elements, see 'auto complete' and others).
${cmmn:replaceVariableInList(planItemInstance, variableName, index, listVariableName)}Changes the entry on the provided index of a list with the given listVariableName with the value of the variable referenced by variableName.
${cmmn:getBusinessStatus(businessKey)}2025.1.01+ Get the business status of the current case. Only applicable in a case scope
${cmmn:getBusinessStatus(caseInstanceId, businessKey)}2025.1.01+ Get the business status of the case with the given caseId. Also, available in a BPMN context
${cmmn:setBusinessStatus(businessStatus)}2025.1.01+ Set the business status of the current case to the given businessStatus. Only applicable in a case scope.
${cmmn:setBusinessStatus(caseInstanceId, businessStatus)}v3.16.0+ Set the business status of the case with the given caseId to the given businessStatus. Since 2025.1.01+ also available in a BPMN context
${cmmn:getBusinessKey(businessKey)}2025.1.01+ Get the business key of the current case. Only applicable in a case scope
${cmmn:getBusinessKey(caseInstanceId, businessKey)}2025.1.01+ Get the business key of the case with the given caseId. Also, available in a BPMN context
${cmmn:setBusinessKey(businessKey)}2025.1.01+ Set the business key of the current case to the given businessKey. Only applicable in a case scope.
${cmmn:setBusinessKey(caseInstanceId, businessKey)}2025.1.01+ Set the business key of the case with the given caseId to the given businessKey. Also, available in a BPMN context
${cmmn:triggerCaseEvaluation(<parameter>)}Triggers the evaluation of the case instance sentries of the case instance. The parameter can be a planItemInstance, a caseInstance or the id of a case instance.