Class CaseServiceImpl
- java.lang.Object
-
- org.camunda.bpm.engine.impl.ServiceImpl
-
- org.camunda.bpm.engine.impl.cmmn.CaseServiceImpl
-
- All Implemented Interfaces:
CaseService
public class CaseServiceImpl extends ServiceImpl implements CaseService
- Author:
- Roman Smirnov
-
-
Field Summary
-
Fields inherited from class org.camunda.bpm.engine.impl.ServiceImpl
commandExecutor
-
-
Constructor Summary
Constructors Constructor Description CaseServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
closeCaseInstance(String caseInstanceId)
Closes the case instance the execution identified by the given id belongs to.void
completeCaseExecution(String caseExecutionId)
Completes the case execution identified by the given id.void
completeCaseExecution(String caseExecutionId, Map<String,Object> variables)
Completes the case execution identified by the given id.CaseExecutionQuery
createCaseExecutionQuery()
Creates a newCaseExecutionQuery
instance, that can be used to query the executions and case instances.CaseInstance
createCaseInstanceById(String caseDefinitionId)
Creates a newCaseInstance
in the exactly specified version identify by the provided process definition id.CaseInstance
createCaseInstanceById(String caseDefinitionId, String businessKey)
Creates a newCaseInstance
in the exactly specified version identify by the provided process definition id.CaseInstance
createCaseInstanceById(String caseDefinitionId, String businessKey, Map<String,Object> variables)
Creates a newCaseInstance
in the exactly specified version identify by the provided process definition id.CaseInstance
createCaseInstanceById(String caseDefinitionId, Map<String,Object> variables)
Creates a newCaseInstance
in the exactly specified version identify by the provided process definition id.CaseInstance
createCaseInstanceByKey(String caseDefinitionKey)
Creates a newCaseInstance
of the latest version of the case definition with the given key.CaseInstance
createCaseInstanceByKey(String caseDefinitionKey, String businessKey)
Creates a newCaseInstance
of the latest version of the case definition with the given key.CaseInstance
createCaseInstanceByKey(String caseDefinitionKey, String businessKey, Map<String,Object> variables)
Creates a newCaseInstance
of the latest version of the case definition with the given key.CaseInstance
createCaseInstanceByKey(String caseDefinitionKey, Map<String,Object> variables)
Creates a newCaseInstance
of the latest version of the case definition with the given key.CaseInstanceQuery
createCaseInstanceQuery()
Creates a newCaseInstanceQuery
instance, that can be used to query case instances.void
disableCaseExecution(String caseExecutionId)
Disables the case execution identified by the given id.void
disableCaseExecution(String caseExecutionId, Map<String,Object> variables)
Disables the case execution identified by the given id.protected Object
getCaseExecutionVariable(String caseExecutionId, String variableName, boolean isLocal)
protected VariableMap
getCaseExecutionVariables(String caseExecutionId, Collection<String> variableNames, boolean isLocal, boolean deserializeValues)
protected <T extends TypedValue>
TgetCaseExecutionVariableTyped(String caseExecutionId, String variableName, boolean isLocal, boolean deserializeValue)
Object
getVariable(String caseExecutionId, String variableName)
Searching for the variable is done in all scopes that are visible to the given case execution (including parent scopes).Object
getVariableLocal(String caseExecutionId, String variableName)
The variable value for an case execution.<T extends TypedValue>
TgetVariableLocalTyped(String caseExecutionId, String variableName)
The variable value for an case execution.<T extends TypedValue>
TgetVariableLocalTyped(String caseExecutionId, String variableName, boolean deserializeValue)
The variable value for an case execution.VariableMap
getVariables(String caseExecutionId)
All variables visible from the given execution scope (including parent scopes).VariableMap
getVariables(String caseExecutionId, Collection<String> variableNames)
The variable values for all given variableNames, takes all variables into account which are visible from the given case execution scope (including parent scopes).VariableMap
getVariablesLocal(String caseExecutionId)
All variable values that are defined in the case execution scope, without taking outer scopes into account.VariableMap
getVariablesLocal(String caseExecutionId, Collection<String> variableNames)
The variable values for the given variableNames only taking the given case execution scope into account, not looking in outer scopes.VariableMap
getVariablesLocalTyped(String caseExecutionId)
All variable values that are defined in the case execution scope, without taking outer scopes into account.VariableMap
getVariablesLocalTyped(String caseExecutionId, boolean deserializeValues)
All variable values that are defined in the case execution scope, without taking outer scopes into account.VariableMap
getVariablesLocalTyped(String caseExecutionId, Collection<String> variableNames, boolean deserializeValues)
The variable values for the given variableNames only taking the given case execution scope into account, not looking in outer scopes.VariableMap
getVariablesTyped(String caseExecutionId)
All variables visible from the given execution scope (including parent scopes).VariableMap
getVariablesTyped(String caseExecutionId, boolean deserializeValues)
All variables visible from the given execution scope (including parent scopes).VariableMap
getVariablesTyped(String caseExecutionId, Collection<String> variableNames, boolean deserializeValues)
The variable values for all given variableNames, takes all variables into account which are visible from the given case execution scope (including parent scopes).<T extends TypedValue>
TgetVariableTyped(String caseExecutionId, String variableName)
Searching for the variable is done in all scopes that are visible to the given case execution (including parent scopes).<T extends TypedValue>
TgetVariableTyped(String caseExecutionId, String variableName, boolean deserializeValue)
Searching for the variable is done in all scopes that are visible to the given case execution (including parent scopes).void
manuallyStartCaseExecution(String caseExecutionId)
Starts the case execution identified by the given id manually.void
manuallyStartCaseExecution(String caseExecutionId, Map<String,Object> variables)
Starts the case execution identified by the given id manually.void
reenableCaseExecution(String caseExecutionId)
Re-enables the case execution identified by the given id.void
reenableCaseExecution(String caseExecutionId, Map<String,Object> variables)
Re-enables the case execution identified by the given id.void
removeVariable(String caseExecutionId, String variableName)
Pass a name of a variable to be removed from a case execution.void
removeVariableLocal(String caseExecutionId, String variableName)
Pass a variable name of a local variable to be removed from a case execution (not considering parent scopes).void
removeVariables(String caseExecutionId, Collection<String> variableNames)
Pass a collection of names identifying variables to be removed from a case execution.void
removeVariablesLocal(String caseExecutionId, Collection<String> variableNames)
Pass a collection of names identifying local variables to be removed from a case execution (not considering parent scopes).void
setVariable(String caseExecutionId, String variableName, Object value)
Pass a variable to the case execution.void
setVariableLocal(String caseExecutionId, String variableName, Object value)
Pass a local variable to the case execution (not considering parent scopes).void
setVariables(String caseExecutionId, Map<String,Object> variables)
Pass a map of variables to the case execution.void
setVariablesLocal(String caseExecutionId, Map<String,Object> variables)
Pass a map of variables to the case execution (not considering parent scopes).void
terminateCaseExecution(String caseExecutionId)
Terminates the case execution identified by the given id.void
terminateCaseExecution(String caseExecutionId, Map<String,Object> variables)
Terminates the case execution identified by the given id.CaseInstanceBuilder
withCaseDefinition(String caseDefinitionId)
Define aCaseInstance
using a fluent builder.CaseInstanceBuilder
withCaseDefinitionByKey(String caseDefinitionKey)
Define aCaseInstance
using a fluent builder.CaseExecutionCommandBuilder
withCaseExecution(String caseExecutionId)
Define a command to be executed for aCaseExecution
using a fluent builder.-
Methods inherited from class org.camunda.bpm.engine.impl.ServiceImpl
getCommandExecutor, setCommandExecutor
-
-
-
-
Method Detail
-
withCaseDefinitionByKey
public CaseInstanceBuilder withCaseDefinitionByKey(String caseDefinitionKey)
Description copied from interface:CaseService
Define a
CaseInstance
using a fluent builder.Starts a new case instance with the latest version of the corresponding case definition.
- Specified by:
withCaseDefinitionByKey
in interfaceCaseService
- Parameters:
caseDefinitionKey
- the key of a case definition to create a new case instance of, cannot be null- Returns:
- a
fluent builder
for defining a new case instance
-
withCaseDefinition
public CaseInstanceBuilder withCaseDefinition(String caseDefinitionId)
Description copied from interface:CaseService
Define a
CaseInstance
using a fluent builder.Starts a new case instance with the case definition version corresponding to the given id.
- Specified by:
withCaseDefinition
in interfaceCaseService
- Parameters:
caseDefinitionId
- the id of a case definition to create a new case instance, cannot be null- Returns:
- a
fluent builder
for defining a new case instance
-
createCaseInstanceQuery
public CaseInstanceQuery createCaseInstanceQuery()
Description copied from interface:CaseService
Creates a new
CaseInstanceQuery
instance, that can be used to query case instances.- Specified by:
createCaseInstanceQuery
in interfaceCaseService
-
createCaseExecutionQuery
public CaseExecutionQuery createCaseExecutionQuery()
Description copied from interface:CaseService
Creates a new
CaseExecutionQuery
instance, that can be used to query the executions and case instances.- Specified by:
createCaseExecutionQuery
in interfaceCaseService
-
withCaseExecution
public CaseExecutionCommandBuilder withCaseExecution(String caseExecutionId)
Description copied from interface:CaseService
Define a command to be executed for a
CaseExecution
using a fluent builder.- Specified by:
withCaseExecution
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case execution to define a command for it- Returns:
- a
fluent builder
for defining a command for a case execution
-
getVariables
public VariableMap getVariables(String caseExecutionId)
Description copied from interface:CaseService
All variables visible from the given execution scope (including parent scopes).
If you have many local variables and you only need a few, consider using
CaseService.getVariables(String, Collection)
for better performance.- Specified by:
getVariables
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case instance or case execution, cannot be null- Returns:
- the variables or an empty map if no such variables are found
-
getVariablesTyped
public VariableMap getVariablesTyped(String caseExecutionId)
Description copied from interface:CaseService
All variables visible from the given execution scope (including parent scopes).
If you have many local variables and you only need a few, consider using
CaseService.getVariables(String, Collection)
for better performance.- Specified by:
getVariablesTyped
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case instance or case execution, cannot be null- Returns:
- the variables or an empty map if no such variables are found
-
getVariablesTyped
public VariableMap getVariablesTyped(String caseExecutionId, boolean deserializeValues)
Description copied from interface:CaseService
All variables visible from the given execution scope (including parent scopes).
If you have many local variables and you only need a few, consider using
CaseService.getVariables(String, Collection)
for better performance.- Specified by:
getVariablesTyped
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case instance or case execution, cannot be nulldeserializeValues
- if false, the process engine will not attempt to deserializeSerializableValues
.- Returns:
- the variables or an empty map if no such variables are found
-
getVariablesLocal
public VariableMap getVariablesLocal(String caseExecutionId)
Description copied from interface:CaseService
All variable values that are defined in the case execution scope, without taking outer scopes into account.
If you have many local variables and you only need a few, consider using
CaseService.getVariablesLocal(String, Collection)
for better performance.- Specified by:
getVariablesLocal
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case execution, cannot be null- Returns:
- the variables or an empty map if no such variables are found
-
getVariablesLocalTyped
public VariableMap getVariablesLocalTyped(String caseExecutionId)
Description copied from interface:CaseService
All variable values that are defined in the case execution scope, without taking outer scopes into account.
If you have many local variables and you only need a few, consider using
CaseService.getVariablesLocal(String, Collection)
for better performance.- Specified by:
getVariablesLocalTyped
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case execution, cannot be null- Returns:
- the variables or an empty map if no such variables are found
-
getVariablesLocalTyped
public VariableMap getVariablesLocalTyped(String caseExecutionId, boolean deserializeValues)
Description copied from interface:CaseService
All variable values that are defined in the case execution scope, without taking outer scopes into account.
If you have many local variables and you only need a few, consider using
CaseService.getVariablesLocal(String, Collection)
for better performance.- Specified by:
getVariablesLocalTyped
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case execution, cannot be nulldeserializeValues
- if false, the process engine will not attempt to deserializeSerializableValues
.- Returns:
- the variables or an empty map if no such variables are found
-
getVariables
public VariableMap getVariables(String caseExecutionId, Collection<String> variableNames)
Description copied from interface:CaseService
The variable values for all given variableNames, takes all variables into account which are visible from the given case execution scope (including parent scopes).
- Specified by:
getVariables
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case instance or case execution, cannot be nullvariableNames
- the collection of variable names that should be retrieved- Returns:
- the variables or an empty map if no such variables are found
-
getVariablesTyped
public VariableMap getVariablesTyped(String caseExecutionId, Collection<String> variableNames, boolean deserializeValues)
Description copied from interface:CaseService
The variable values for all given variableNames, takes all variables into account which are visible from the given case execution scope (including parent scopes).
- Specified by:
getVariablesTyped
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case instance or case execution, cannot be nullvariableNames
- the collection of variable names that should be retrieveddeserializeValues
- if false,SerializableValues
will not be deserialized- Returns:
- the variables or an empty map if no such variables are found
-
getVariablesLocal
public VariableMap getVariablesLocal(String caseExecutionId, Collection<String> variableNames)
Description copied from interface:CaseService
The variable values for the given variableNames only taking the given case execution scope into account, not looking in outer scopes.
- Specified by:
getVariablesLocal
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case execution, cannot be nullvariableNames
- the collection of variable names that should be retrieved- Returns:
- the variables or an empty map if no such variables are found
-
getVariablesLocalTyped
public VariableMap getVariablesLocalTyped(String caseExecutionId, Collection<String> variableNames, boolean deserializeValues)
Description copied from interface:CaseService
The variable values for the given variableNames only taking the given case execution scope into account, not looking in outer scopes.
- Specified by:
getVariablesLocalTyped
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case execution, cannot be nullvariableNames
- the collection of variable names that should be retrieveddeserializeValues
- if false, the process engine will not attempt to deserializeSerializableValues
.- Returns:
- the variables or an empty map if no such variables are found
-
getCaseExecutionVariables
protected VariableMap getCaseExecutionVariables(String caseExecutionId, Collection<String> variableNames, boolean isLocal, boolean deserializeValues)
-
getVariable
public Object getVariable(String caseExecutionId, String variableName)
Description copied from interface:CaseService
Searching for the variable is done in all scopes that are visible to the given case execution (including parent scopes).
Returns null when no variable value is found with the given name or when the value is set to null.
- Specified by:
getVariable
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case instance or case execution, cannot be nullvariableName
- the name of a variable, cannot be null- Returns:
- the variable value or null if the variable is undefined or the value of the variable is null
-
getVariableLocal
public Object getVariableLocal(String caseExecutionId, String variableName)
Description copied from interface:CaseService
The variable value for an case execution. Returns the value when the variable is set for the case execution (and not searching parent scopes).
Returns null when no variable value is found with the given name or when the value is set to null.
- Specified by:
getVariableLocal
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case instance or case execution, cannot be nullvariableName
- the name of a variable, cannot be null- Returns:
- the variable value or null if the variable is undefined or the value of the variable is null
-
getCaseExecutionVariable
protected Object getCaseExecutionVariable(String caseExecutionId, String variableName, boolean isLocal)
-
getVariableTyped
public <T extends TypedValue> T getVariableTyped(String caseExecutionId, String variableName)
Description copied from interface:CaseService
Searching for the variable is done in all scopes that are visible to the given case execution (including parent scopes).
Returns null when no variable value is found with the given name or when the value is set to null.
- Specified by:
getVariableTyped
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case instance or case execution, cannot be nullvariableName
- the name of a variable, cannot be null- Returns:
- the variable value or null if the variable is undefined or the value of the variable is null
-
getVariableTyped
public <T extends TypedValue> T getVariableTyped(String caseExecutionId, String variableName, boolean deserializeValue)
Description copied from interface:CaseService
Searching for the variable is done in all scopes that are visible to the given case execution (including parent scopes).
Returns null when no variable value is found with the given name or when the value is set to null.
- Specified by:
getVariableTyped
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case instance or case execution, cannot be nullvariableName
- the name of a variable, cannot be nulldeserializeValue
- if false,SerializableValues
will not be deserialized- Returns:
- the variable value or null if the variable is undefined or the value of the variable is null
-
getVariableLocalTyped
public <T extends TypedValue> T getVariableLocalTyped(String caseExecutionId, String variableName)
Description copied from interface:CaseService
The variable value for an case execution. Returns the value when the variable is set for the case execution (and not searching parent scopes).
Returns null when no variable value is found with the given name or when the value is set to null.
- Specified by:
getVariableLocalTyped
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case instance or case execution, cannot be nullvariableName
- the name of a variable, cannot be null- Returns:
- the variable value or null if the variable is undefined or the value of the variable is null
-
getVariableLocalTyped
public <T extends TypedValue> T getVariableLocalTyped(String caseExecutionId, String variableName, boolean deserializeValue)
Description copied from interface:CaseService
The variable value for an case execution. Returns the value when the variable is set for the case execution (and not searching parent scopes).
Returns null when no variable value is found with the given name or when the value is set to null.
- Specified by:
getVariableLocalTyped
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of a case instance or case execution, cannot be nullvariableName
- the name of a variable, cannot be nulldeserializeValue
- if false,SerializableValues
will not be deserialized- Returns:
- the variable value or null if the variable is undefined or the value of the variable is null
-
getCaseExecutionVariableTyped
protected <T extends TypedValue> T getCaseExecutionVariableTyped(String caseExecutionId, String variableName, boolean isLocal, boolean deserializeValue)
-
setVariables
public void setVariables(String caseExecutionId, Map<String,Object> variables)
Description copied from interface:CaseService
Pass a map of variables to the case execution. If the variables do not already exist, they are created in the case instance (which is the root execution). Otherwise existing variables are updated.
- Specified by:
setVariables
in interfaceCaseService
- Parameters:
caseExecutionId
- the case execution to set the variables forvariables
- the map of variables
-
setVariablesLocal
public void setVariablesLocal(String caseExecutionId, Map<String,Object> variables)
Description copied from interface:CaseService
Pass a map of variables to the case execution (not considering parent scopes).
- Specified by:
setVariablesLocal
in interfaceCaseService
- Parameters:
caseExecutionId
- the case execution to set the variables forvariables
- the map of variables
-
setVariable
public void setVariable(String caseExecutionId, String variableName, Object value)
Description copied from interface:CaseService
Pass a variable to the case execution. If the variable does not already exist, it is created in the case instance (which is the root execution). Otherwise, the existing variable is updated.
- Specified by:
setVariable
in interfaceCaseService
- Parameters:
caseExecutionId
- the case execution to set the variable forvariableName
- the name of the variable to setvalue
- the value of the variable to set
-
setVariableLocal
public void setVariableLocal(String caseExecutionId, String variableName, Object value)
Description copied from interface:CaseService
Pass a local variable to the case execution (not considering parent scopes).
- Specified by:
setVariableLocal
in interfaceCaseService
- Parameters:
caseExecutionId
- the case execution to set the variable forvariableName
- the name of the variable to setvalue
- the value of the variable to set
-
removeVariables
public void removeVariables(String caseExecutionId, Collection<String> variableNames)
Description copied from interface:CaseService
Pass a collection of names identifying variables to be removed from a case execution.
- Specified by:
removeVariables
in interfaceCaseService
- Parameters:
caseExecutionId
- the case execution to remove the variables fromvariableNames
- a collection of names of variables to remove
-
removeVariablesLocal
public void removeVariablesLocal(String caseExecutionId, Collection<String> variableNames)
Description copied from interface:CaseService
Pass a collection of names identifying local variables to be removed from a case execution (not considering parent scopes).
- Specified by:
removeVariablesLocal
in interfaceCaseService
- Parameters:
caseExecutionId
- the case execution to remove the variables fromvariableNames
- a collection of names of variables to remove
-
removeVariable
public void removeVariable(String caseExecutionId, String variableName)
Description copied from interface:CaseService
Pass a name of a variable to be removed from a case execution.
- Specified by:
removeVariable
in interfaceCaseService
- Parameters:
caseExecutionId
- the case execution to remove the variable fromvariableName
- the name of the variable to remove
-
removeVariableLocal
public void removeVariableLocal(String caseExecutionId, String variableName)
Description copied from interface:CaseService
Pass a variable name of a local variable to be removed from a case execution (not considering parent scopes).
- Specified by:
removeVariableLocal
in interfaceCaseService
- Parameters:
caseExecutionId
- the case execution to remove the variable fromvariableName
- the name of a variable to remove
-
createCaseInstanceByKey
public CaseInstance createCaseInstanceByKey(String caseDefinitionKey)
Description copied from interface:CaseService
Creates a new
CaseInstance
of the latest version of the case definition with the given key. The new case instance will be in theACTIVE
state.- Specified by:
createCaseInstanceByKey
in interfaceCaseService
- Parameters:
caseDefinitionKey
- the key of the case definition to instantiate
-
createCaseInstanceByKey
public CaseInstance createCaseInstanceByKey(String caseDefinitionKey, String businessKey)
Description copied from interface:CaseService
Creates a new
CaseInstance
of the latest version of the case definition with the given key. The new case instance will be in theACTIVE
state.A business key can be provided to associate the case instance with a certain identifier that has a clear business meaning. This business key can then be used to easily look up that case instance, see
CaseInstanceQuery.caseInstanceBusinessKey(String)
. Providing such a business key is definitely a best practice.Note that a business key MUST be unique for the given case definition WHEN you have added a database constraint for it. In this case, only case instance from different case definition are allowed to have the same business key and the combination of caseDefinitionKey-businessKey must be unique.
- Specified by:
createCaseInstanceByKey
in interfaceCaseService
- Parameters:
caseDefinitionKey
- the key of the case definition to instantiatebusinessKey
- a key that uniquely identifies the case instance in the context of the given case definition.
-
createCaseInstanceByKey
public CaseInstance createCaseInstanceByKey(String caseDefinitionKey, Map<String,Object> variables)
Description copied from interface:CaseService
Creates a new
CaseInstance
of the latest version of the case definition with the given key. The new case instance will be in theACTIVE
state.- Specified by:
createCaseInstanceByKey
in interfaceCaseService
- Parameters:
caseDefinitionKey
- the key of the case definition to instantiatevariables
- variables to be set on the new case instance
-
createCaseInstanceByKey
public CaseInstance createCaseInstanceByKey(String caseDefinitionKey, String businessKey, Map<String,Object> variables)
Description copied from interface:CaseService
Creates a new
CaseInstance
of the latest version of the case definition with the given key. The new case instance will be in theACTIVE
state.A business key can be provided to associate the case instance with a certain identifier that has a clear business meaning. This business key can then be used to easily look up that case instance, see
CaseInstanceQuery.caseInstanceBusinessKey(String)
. Providing such a business key is definitely a best practice.Note that a business key MUST be unique for the given case definition WHEN you have added a database constraint for it. In this case, only case instance from different case definition are allowed to have the same business key and the combination of caseDefinitionKey-businessKey must be unique.
- Specified by:
createCaseInstanceByKey
in interfaceCaseService
- Parameters:
caseDefinitionKey
- the key of the case definition to instantiate.businessKey
- a key that uniquely identifies the case instance in the context of the given case definition.variables
- variables to be set on the new case instance.
-
createCaseInstanceById
public CaseInstance createCaseInstanceById(String caseDefinitionId)
Description copied from interface:CaseService
Creates a new
CaseInstance
in the exactly specified version identify by the provided process definition id. The new case instance will be in theACTIVE
state.- Specified by:
createCaseInstanceById
in interfaceCaseService
- Parameters:
caseDefinitionId
- the id of the case definition to instantiate
-
createCaseInstanceById
public CaseInstance createCaseInstanceById(String caseDefinitionId, String businessKey)
Description copied from interface:CaseService
Creates a new
CaseInstance
in the exactly specified version identify by the provided process definition id. The new case instance will be in theACTIVE
state.A business key can be provided to associate the case instance with a certain identifier that has a clear business meaning. This business key can then be used to easily look up that case instance, see
CaseInstanceQuery.caseInstanceBusinessKey(String)
. Providing such a business key is definitely a best practice.Note that a business key MUST be unique for the given case definition WHEN you have added a database constraint for it. In this case, only case instance from different case definition are allowed to have the same business key and the combination of caseDefinitionKey-businessKey must be unique.
- Specified by:
createCaseInstanceById
in interfaceCaseService
- Parameters:
caseDefinitionId
- the id of the case definition to instantiatebusinessKey
- a key that uniquely identifies the case instance in the context of the given case definition.
-
createCaseInstanceById
public CaseInstance createCaseInstanceById(String caseDefinitionId, Map<String,Object> variables)
Description copied from interface:CaseService
Creates a new
CaseInstance
in the exactly specified version identify by the provided process definition id. The new case instance will be in theACTIVE
state.- Specified by:
createCaseInstanceById
in interfaceCaseService
- Parameters:
caseDefinitionId
- the id of the case definition to instantiatevariables
- variables to be set on the new case instance.
-
createCaseInstanceById
public CaseInstance createCaseInstanceById(String caseDefinitionId, String businessKey, Map<String,Object> variables)
Description copied from interface:CaseService
Creates a new
CaseInstance
in the exactly specified version identify by the provided process definition id. The new case instance will be in theACTIVE
state.A business key can be provided to associate the case instance with a certain identifier that has a clear business meaning. This business key can then be used to easily look up that case instance, see
CaseInstanceQuery.caseInstanceBusinessKey(String)
. Providing such a business key is definitely a best practice.Note that a business key MUST be unique for the given case definition WHEN you have added a database constraint for it. In this case, only case instance from different case definition are allowed to have the same business key and the combination of caseDefinitionKey-businessKey must be unique.
- Specified by:
createCaseInstanceById
in interfaceCaseService
- Parameters:
caseDefinitionId
- the id of the case definition to instantiatebusinessKey
- a key that uniquely identifies the case instance in the context of the given case definition.variables
- variables to be set on the new case instance.
-
manuallyStartCaseExecution
public void manuallyStartCaseExecution(String caseExecutionId)
Description copied from interface:CaseService
Starts the case execution identified by the given id manually. Performs the transition from state
ENABLED
to stateACTIVE
.According to CMMN 1.0 specification, the state
ACTIVE
means that theStage
orTask
related to the case execution does the following:Task
: thetask
is completed immediatelyHumanTask
: a newuser task
is instantiatedProcessTask
: a newprocess instance
is instantiatedCaseTask
: a newcase instance
is instantiated
- Specified by:
manuallyStartCaseExecution
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of the case execution to manually start
-
manuallyStartCaseExecution
public void manuallyStartCaseExecution(String caseExecutionId, Map<String,Object> variables)
Description copied from interface:CaseService
Starts the case execution identified by the given id manually. Performs a transition from state
ENABLED
to stateACTIVE
.According to CMMN 1.0 specification, the state
ACTIVE
means that theStage
orTask
related to the case execution does the following:Task
: thetask
is completed immediatelyHumanTask
: a newuser task
is instantiatedProcessTask
: a newprocess instance
is instantiatedCaseTask
: a newcase instance
is instantiated
- Specified by:
manuallyStartCaseExecution
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of the case execution to manually startvariables
- variables to be set on the case execution
-
disableCaseExecution
public void disableCaseExecution(String caseExecutionId)
Description copied from interface:CaseService
Disables the case execution identified by the given id. Performs a transition from state
ENABLED
to stateDISABLED
.According to CMMN 1.0 specification, the state
DISABLED
means that theStage
orTask
related to the case execution should not be executed in this case instance.If the given case execution has a parent case execution, that parent case execution will be notified that the given case execution has been disabled. This can lead to a completion of the parent case execution if the completion criteria are fulfilled.
- Specified by:
disableCaseExecution
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of the case execution to disable
-
disableCaseExecution
public void disableCaseExecution(String caseExecutionId, Map<String,Object> variables)
Description copied from interface:CaseService
Disables the case execution identified by the given id. Performs a transition from state
ENABLED
to stateDISABLED
.According to CMMN 1.0 specification, the state
DISABLED
means that theStage
orTask
related to the case execution should not be executed in this case instance.If the given case execution has a parent case execution, that parent case execution will be notified that the given case execution has been disabled. This can lead to a completion of the parent case execution if the completion criteria are fulfilled.
- Specified by:
disableCaseExecution
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of the case execution to disablevariables
- variables to be set on the case execution
-
reenableCaseExecution
public void reenableCaseExecution(String caseExecutionId)
Description copied from interface:CaseService
Re-enables the case execution identified by the given id. Performs a transition from state
DISABLED
to stateENABLED
.According to CMMN 1.0 specification, the state
DISABLED
means that theStage
orTask
related to the case execution pends for a decision to becomeACTIVE
orDISABLED
.- Specified by:
reenableCaseExecution
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of the case execution to re-enable
-
reenableCaseExecution
public void reenableCaseExecution(String caseExecutionId, Map<String,Object> variables)
Description copied from interface:CaseService
Re-enables the case execution identified by the given id. Performs a transition from state
DISABLED
to stateENABLED
.According to CMMN 1.0 specification, the state
DISABLED
means that theStage
orTask
related to the case execution pends for a decision to becomeACTIVE
orDISABLED
.- Specified by:
reenableCaseExecution
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of the case execution to re-enablevariables
- variables to be set on the case execution
-
completeCaseExecution
public void completeCaseExecution(String caseExecutionId)
Description copied from interface:CaseService
Completes the case execution identified by the given id. Performs a transition from state
ACTIVE
to stateCOMPLETED
.It is only possible to complete a case execution which is associated with a
Stage
orTask
.In case of a
Stage
, the completion can only be performed when the following criteria are fulfilled:
- there are no children in the state
ACTIVE
For a
Task
instance, this means its purpose has been accomplished:
HumanTask
has been completed by human.
If the given case execution has a parent case execution, that parent case execution will be notified that the given case execution has been completed. This can lead to a completion of the parent case execution if the completion criteria are fulfilled.
- Specified by:
completeCaseExecution
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of the case execution to complete
- there are no children in the state
-
completeCaseExecution
public void completeCaseExecution(String caseExecutionId, Map<String,Object> variables)
Description copied from interface:CaseService
Completes the case execution identified by the given id. Performs a transition from state
ACTIVE
to stateCOMPLETED
.It is only possible to complete a case execution which is associated with a
Stage
orTask
.In case of a
Stage
, the completion can only be performed when the following criteria are fulfilled:
- there are no children in the state
ACTIVE
For a
Task
instance, this means its purpose has been accomplished:
HumanTask
has been completed by human.
If the given case execution has a parent case execution, that parent case execution will be notified that the given case execution has been completed. This can lead to a completion of the parent case execution if the completion criteria are fulfilled.
- Specified by:
completeCaseExecution
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of the case execution to completevariables
- variables to be set on the case execution
- there are no children in the state
-
closeCaseInstance
public void closeCaseInstance(String caseInstanceId)
Description copied from interface:CaseService
Closes the case instance the execution identified by the given id belongs to. Once closed, no further work or modifications are allowed for the case instance. Performs a transition from state
COMPLETED
to stateCLOSED
.- Specified by:
closeCaseInstance
in interfaceCaseService
- Parameters:
caseInstanceId
- the id of the case execution to close the case instance for
-
terminateCaseExecution
public void terminateCaseExecution(String caseExecutionId)
Description copied from interface:CaseService
Terminates the case execution identified by the given id. Performs the transition from
ACTIVE
to stateTERMINATED
if the case execution belongs to a case model or a task or a stage. Performs the transition fromAVAILABLE
to stateTERMINATED
if the case execution belongs to a milestone.- Specified by:
terminateCaseExecution
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of the case execution to be terminated
-
terminateCaseExecution
public void terminateCaseExecution(String caseExecutionId, Map<String,Object> variables)
Description copied from interface:CaseService
Terminates the case execution identified by the given id. Performs the transition from
ACTIVE
to stateTERMINATED
if the case execution belongs to either a case model or a task or a stage. Performs the transition fromAVAILABLE
to stateTERMINATED
if the case execution belongs to a milestone.- Specified by:
terminateCaseExecution
in interfaceCaseService
- Parameters:
caseExecutionId
- the id of the case execution to terminatevariables
- variables to be set on the case execution
-
-