Interface TaskService
-
- All Known Implementing Classes:
TaskServiceImpl
public interface TaskService
Service which provides access toTask
and form related operations.- Author:
- Tom Baeyens, Joram Barrez, Thorben Lindhauer
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description void
addCandidateGroup(String taskId, String groupId)
Convenience shorthand foraddGroupIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
void
addCandidateUser(String taskId, String userId)
Convenience shorthand foraddUserIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
void
addComment(String taskId, String processInstanceId, String message)
Deprecated.UsecreateComment(String, String, String)
insteadvoid
addGroupIdentityLink(String taskId, String groupId, String identityLinkType)
Involves a group with a task.void
addUserIdentityLink(String taskId, String userId, String identityLinkType)
Involves a user with a task.void
claim(String taskId, String userId)
Claim responsibility for a task: the given user is madeassignee
for the task.void
complete(String taskId)
Marks a task as done and continues process execution.void
complete(String taskId, Map<String,Object> variables)
Marks a task as done and continues process execution.VariableMap
completeWithVariablesInReturn(String taskId, Map<String,Object> variables, boolean deserializeValues)
Marks a task as done and continues process execution.Attachment
createAttachment(String attachmentType, String taskId, String processInstanceId, String attachmentName, String attachmentDescription, InputStream content)
Add a new attachment to a task and/or a process instance and use an input stream to provide the content please use method in runtime service to operate on process instance.Attachment
createAttachment(String attachmentType, String taskId, String processInstanceId, String attachmentName, String attachmentDescription, String url)
Add a new attachment to a task and/or a process instance and use an url as the content please use method in runtime service to operate on process instance Either taskId or processInstanceId has to be providedComment
createComment(String taskId, String processInstanceId, String message)
Creates a comment to a task and/or process instance and returns the comment.NativeTaskQuery
createNativeTaskQuery()
Returns a newTaskQuery
createTaskQuery()
Returns a newTaskQuery
that can be used to dynamically query tasks.TaskReport
createTaskReport()
Instantiate a task reportvoid
delegateTask(String taskId, String userId)
Delegates the task to another user.void
deleteAttachment(String attachmentId)
Delete an attachmentvoid
deleteCandidateGroup(String taskId, String groupId)
Convenience shorthand fordeleteGroupIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
void
deleteCandidateUser(String taskId, String userId)
Convenience shorthand fordeleteUserIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
void
deleteGroupIdentityLink(String taskId, String groupId, String identityLinkType)
Removes the association between a group and a task for the given identityLinkType.void
deleteTask(String taskId)
Deletes the given task, not deleting historic information that is related to this task.void
deleteTask(String taskId, boolean cascade)
Deletes the given task.void
deleteTask(String taskId, String deleteReason)
Deletes the given task, not deleting historic information that is related to this task.void
deleteTaskAttachment(String taskId, String attachmentId)
Delete an attachment to the given task id and attachment idvoid
deleteTasks(Collection<String> taskIds)
Deletes all tasks of the given collection, not deleting historic information that is related to these tasks.void
deleteTasks(Collection<String> taskIds, boolean cascade)
Deletes all tasks of the given collection.void
deleteTasks(Collection<String> taskIds, String deleteReason)
Deletes all tasks of the given collection, not deleting historic information that is related to these tasks.void
deleteUserIdentityLink(String taskId, String userId, String identityLinkType)
Removes the association between a user and a task for the given identityLinkType.Attachment
getAttachment(String attachmentId)
Retrieve a particular attachmentInputStream
getAttachmentContent(String attachmentId)
Retrieve stream content of a particular attachmentList<IdentityLink>
getIdentityLinksForTask(String taskId)
Retrieves theIdentityLink
s associated with the given task.List<Attachment>
getProcessInstanceAttachments(String processInstanceId)
The list of attachments associated to a process instanceList<Comment>
getProcessInstanceComments(String processInstanceId)
The comments related to the given process instance.List<Task>
getSubTasks(String parentTaskId)
The list of subtasks for this parent taskAttachment
getTaskAttachment(String taskId, String attachmentId)
Retrieve a particular attachment to the given task id and attachment idInputStream
getTaskAttachmentContent(String taskId, String attachmentId)
Retrieve stream content of a particular attachment to the given task id and attachment idList<Attachment>
getTaskAttachments(String taskId)
The list of attachments associated to a taskComment
getTaskComment(String taskId, String commentId)
Retrieve a particular task commentList<Comment>
getTaskComments(String taskId)
The comments related to the given task.List<Event>
getTaskEvents(String taskId)
Deprecated.This method has been deprecated as of Camunda Platform 7.1.Object
getVariable(String taskId, String variableName)
Get a variables and search in the task scope and if available also the execution scopes.Object
getVariableLocal(String taskId, String variableName)
Get a variables and only search in the task scope.<T extends TypedValue>
TgetVariableLocalTyped(String taskId, String variableName)
Get a variables and only search in the task scope.<T extends TypedValue>
TgetVariableLocalTyped(String taskId, String variableName, boolean deserializeValue)
Get a variables and only search in the task scope.Map<String,Object>
getVariables(String taskId)
Get all variables and search in the task scope and if available also the execution scopes.Map<String,Object>
getVariables(String taskId, Collection<String> variableNames)
Get values for all given variableNamesMap<String,Object>
getVariablesLocal(String taskId)
Get all variables and search only in the task scope.Map<String,Object>
getVariablesLocal(String taskId, Collection<String> variableNames)
Get a variable on a taskVariableMap
getVariablesLocalTyped(String taskId)
Get all variables and search only in the task scope.VariableMap
getVariablesLocalTyped(String taskId, boolean deserializeValues)
Get all variables and search only in the task scope.VariableMap
getVariablesLocalTyped(String taskId, Collection<String> variableNames, boolean deserializeValues)
Get values for all given variableName.VariableMap
getVariablesTyped(String taskId)
Get all variables and search in the task scope and if available also the execution scopes.VariableMap
getVariablesTyped(String taskId, boolean deserializeValues)
Get all variables and search in the task scope and if available also the execution scopes.VariableMap
getVariablesTyped(String taskId, Collection<String> variableNames, boolean deserializeValues)
Get values for all given variableName<T extends TypedValue>
TgetVariableTyped(String taskId, String variableName)
Get a variables and search in the task scope and if available also the execution scopes.<T extends TypedValue>
TgetVariableTyped(String taskId, String variableName, boolean deserializeValue)
Get a variables and search in the task scope and if available also the execution scopes.void
handleBpmnError(String taskId, String errorCode)
Signals that a business error appears, which should be handled by the process engine.void
handleBpmnError(String taskId, String errorCode, String errorMessage)
void
handleBpmnError(String taskId, String errorCode, String errorMessage, Map<String,Object> variables)
void
handleEscalation(String taskId, String escalationCode)
Signals that an escalation appears, which should be handled by the process engine.void
handleEscalation(String taskId, String escalationCode, Map<String,Object> variables)
Signals that an escalation appears, which should be handled by the process engine.Task
newTask()
Creates a new task that is not related to any process instance.Task
newTask(String taskId)
create a new task with a user defined task idvoid
removeVariable(String taskId, String variableName)
Removes the variable from the task.void
removeVariableLocal(String taskId, String variableName)
Removes the variable from the task (not considering parent scopes).void
removeVariables(String taskId, Collection<String> variableNames)
Removes all variables in the given collection from the task.void
removeVariablesLocal(String taskId, Collection<String> variableNames)
Removes all variables in the given collection from the task (not considering parent scopes).void
resolveTask(String taskId)
void
resolveTask(String taskId, Map<String,Object> variables)
void
saveAttachment(Attachment attachment)
Update the name and decription of an attachmentvoid
saveTask(Task task)
Saves the given task to the persistent data store.void
setAssignee(String taskId, String userId)
Changes the assignee of the given task to the given userId.void
setOwner(String taskId, String userId)
Transfers ownership of this task to another user.void
setPriority(String taskId, int priority)
Changes the priority of the task.void
setVariable(String taskId, String variableName, Object value)
Set variable on a task.void
setVariableLocal(String taskId, String variableName, Object value)
Set variable on a task.void
setVariables(String taskId, Map<String,? extends Object> variables)
Set variables on a task.void
setVariablesLocal(String taskId, Map<String,? extends Object> variables)
Set variables on a task.
-
-
-
Method Detail
-
newTask
Task newTask()
Creates a new task that is not related to any process instance. The returned task is transient and must be saved withsaveTask(Task)
'manually'.- Throws:
AuthorizationException
- if the user has noPermissions.CREATE
permission onResources.TASK
.
-
saveTask
void saveTask(Task task)
Saves the given task to the persistent data store. If the task is already present in the persistent store, it is updated. After a new task has been saved, the task instance passed into this method is updated with the id of the newly created task.- Parameters:
task
- the task, cannot be null.- Throws:
AuthorizationException
- If the task is already present and the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
. Or if the task is not present and the user has noPermissions.CREATE
permission onResources.TASK
.
-
deleteTask
void deleteTask(String taskId)
Deletes the given task, not deleting historic information that is related to this task.- Parameters:
taskId
- The id of the task that will be deleted, cannot be null. If no task exists with the given taskId, the operation is ignored.- Throws:
ProcessEngineException
- when an error occurs while deleting the task or in case the task is part of a running process or case instance.AuthorizationException
- If the user has noPermissions.DELETE
permission onResources.TASK
.
-
deleteTasks
void deleteTasks(Collection<String> taskIds)
Deletes all tasks of the given collection, not deleting historic information that is related to these tasks.- Parameters:
taskIds
- The id's of the tasks that will be deleted, cannot be null. All id's in the list that don't have an existing task will be ignored.- Throws:
ProcessEngineException
- when an error occurs while deleting the tasks or in case one of the tasks is part of a running process or case instance.AuthorizationException
- If the user has noPermissions.DELETE
permission onResources.TASK
.
-
deleteTask
void deleteTask(String taskId, boolean cascade)
Deletes the given task.- Parameters:
taskId
- The id of the task that will be deleted, cannot be null. If no task exists with the given taskId, the operation is ignored.cascade
- If cascade is true, also the historic information related to this task is deleted.- Throws:
ProcessEngineException
- when an error occurs while deleting the task or in case the task is part of a running process or case instance.AuthorizationException
- If the user has noPermissions.DELETE
permission onResources.TASK
.
-
deleteTasks
void deleteTasks(Collection<String> taskIds, boolean cascade)
Deletes all tasks of the given collection.- Parameters:
taskIds
- The id's of the tasks that will be deleted, cannot be null. All id's in the list that don't have an existing task will be ignored.cascade
- If cascade is true, also the historic information related to this task is deleted.- Throws:
ProcessEngineException
- when an error occurs while deleting the tasks or in case one of the tasks is part of a running process or case instance.AuthorizationException
- If the user has noPermissions.DELETE
permission onResources.TASK
.
-
deleteTask
void deleteTask(String taskId, String deleteReason)
Deletes the given task, not deleting historic information that is related to this task.- Parameters:
taskId
- The id of the task that will be deleted, cannot be null. If no task exists with the given taskId, the operation is ignored.deleteReason
- reason the task is deleted. Is recorded in history, if enabled.- Throws:
ProcessEngineException
- when an error occurs while deleting the task or in case the task is part of a running process or case instance.AuthorizationException
- If the user has noPermissions.DELETE
permission onResources.TASK
.
-
deleteTasks
void deleteTasks(Collection<String> taskIds, String deleteReason)
Deletes all tasks of the given collection, not deleting historic information that is related to these tasks.- Parameters:
taskIds
- The id's of the tasks that will be deleted, cannot be null. All id's in the list that don't have an existing task will be ignored.deleteReason
- reason the task is deleted. Is recorded in history, if enabled.- Throws:
ProcessEngineException
- when an error occurs while deleting the tasks or in case one of the tasks is part of a running process or case instance.AuthorizationException
- If the user has noPermissions.DELETE
permission onResources.TASK
.
-
claim
void claim(String taskId, String userId)
Claim responsibility for a task: the given user is madeassignee
for the task. The difference withsetAssignee(String, String)
is that here a check is done if the task already has a user assigned to it. No check is done whether the user is known by the identity component.- Parameters:
taskId
- task to claim, cannot be null.userId
- user that claims the task. When userId is null the task is unclaimed, assigned to no one.- Throws:
ProcessEngineException
- when the task doesn't exist or when the task is already claimed by another user.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
complete
void complete(String taskId)
Marks a task as done and continues process execution. This method is typically called by a task list user interface after a task form has been submitted by theassignee
.- Parameters:
taskId
- the id of the task to complete, cannot be null.- Throws:
ProcessEngineException
- when no task exists with the given id or when this task isDelegationState.PENDING
delegation.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
delegateTask
void delegateTask(String taskId, String userId)
Delegates the task to another user. This means that theassignee
is set and thedelegation state
is set toDelegationState.PENDING
. If no owner is set on the task, the owner is set to the currentassignee
of the task. The new assignee must useresolveTask(String)
to report back to the owner. Only the owner cancomplete
the task.- Parameters:
taskId
- The id of the task that will be delegated.userId
- The id of the user that will be set as assignee.- Throws:
ProcessEngineException
- when no task exists with the given id.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
resolveTask
void resolveTask(String taskId)
Marks that theassignee
is done with the taskdelegated
to her and that it can be sent back to theowner
. Can only be called when this task isDelegationState.PENDING
delegation. After this method returns, thedelegation state
is set toDelegationState.RESOLVED
and the task can becompleted
.- Parameters:
taskId
- the id of the task to resolve, cannot be null.- Throws:
ProcessEngineException
- when no task exists with the given id.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
resolveTask
void resolveTask(String taskId, Map<String,Object> variables)
Marks that theassignee
is done with the taskdelegated
to her and that it can be sent back to theowner
with the provided variables. Can only be called when this task isDelegationState.PENDING
delegation. After this method returns, thedelegation state
is set toDelegationState.RESOLVED
and the task can becompleted
.- Parameters:
taskId
-variables
-- Throws:
ProcessEngineException
- when no task exists with the given id.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
complete
void complete(String taskId, Map<String,Object> variables)
Marks a task as done and continues process execution. This method is typically called by a task list user interface after a task form has been submitted by theassignee
and the required task parameters have been provided.- Parameters:
taskId
- the id of the task to complete, cannot be null.variables
- task parameters. May be null or empty.- Throws:
ProcessEngineException
- when no task exists with the given id.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
completeWithVariablesInReturn
VariableMap completeWithVariablesInReturn(String taskId, Map<String,Object> variables, boolean deserializeValues)
Marks a task as done and continues process execution. This method is typically called by a task list user interface after a task form has been submitted by theassignee
and the required task parameters have been provided.- Parameters:
taskId
- the id of the task to complete, cannot be null.variables
- task parameters. May be null or empty.deserializeValues
- if false, returnedSerializableValue
s will not be deserialized (unless they are passed into this method as a deserialized value or if the BPMN process triggers deserialization)- Returns:
- All task variables with their current value
- Throws:
ProcessEngineException
- when no task exists with the given id.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
setAssignee
void setAssignee(String taskId, String userId)
Changes the assignee of the given task to the given userId. No check is done whether the user is known by the identity component.- Parameters:
taskId
- id of the task, cannot be null.userId
- id of the user to use as assignee.- Throws:
ProcessEngineException
- when the task or user doesn't exist.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
setOwner
void setOwner(String taskId, String userId)
Transfers ownership of this task to another user. No check is done whether the user is known by the identity component.- Parameters:
taskId
- id of the task, cannot be null.userId
- of the person that is receiving ownership.- Throws:
ProcessEngineException
- when the task or user doesn't exist.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
getIdentityLinksForTask
List<IdentityLink> getIdentityLinksForTask(String taskId)
Retrieves theIdentityLink
s associated with the given task. Such anIdentityLink
informs how a certain identity (eg. group or user) is associated with a certain task (eg. as candidate, assignee, etc.)- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
- If the user has noPermissions.READ
permission onResources.TASK
or noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
addCandidateUser
void addCandidateUser(String taskId, String userId)
Convenience shorthand foraddUserIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
- Parameters:
taskId
- id of the task, cannot be null.userId
- id of the user to use as candidate, cannot be null.- Throws:
ProcessEngineException
- when the task or user doesn't exist.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
addCandidateGroup
void addCandidateGroup(String taskId, String groupId)
Convenience shorthand foraddGroupIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
- Parameters:
taskId
- id of the task, cannot be null.groupId
- id of the group to use as candidate, cannot be null.- Throws:
ProcessEngineException
- when the task or group doesn't exist.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
addUserIdentityLink
void addUserIdentityLink(String taskId, String userId, String identityLinkType)
Involves a user with a task. The type of identity link is defined by the given identityLinkType.- Parameters:
taskId
- id of the task, cannot be null.userId
- id of the user involve, cannot be null.identityLinkType
- type of identityLink, cannot be null (@seeIdentityLinkType
).- Throws:
ProcessEngineException
- when the task or user doesn't exist.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
addGroupIdentityLink
void addGroupIdentityLink(String taskId, String groupId, String identityLinkType)
Involves a group with a task. The type of identityLink is defined by the given identityLink.- Parameters:
taskId
- id of the task, cannot be null.groupId
- id of the group to involve, cannot be null.identityLinkType
- type of identity, cannot be null (@seeIdentityLinkType
).- Throws:
ProcessEngineException
- when the task or group doesn't exist.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
deleteCandidateUser
void deleteCandidateUser(String taskId, String userId)
Convenience shorthand fordeleteUserIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
- Parameters:
taskId
- id of the task, cannot be null.userId
- id of the user to use as candidate, cannot be null.- Throws:
ProcessEngineException
- when the task or user doesn't exist.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
deleteCandidateGroup
void deleteCandidateGroup(String taskId, String groupId)
Convenience shorthand fordeleteGroupIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
- Parameters:
taskId
- id of the task, cannot be null.groupId
- id of the group to use as candidate, cannot be null.- Throws:
ProcessEngineException
- when the task or group doesn't exist.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
deleteUserIdentityLink
void deleteUserIdentityLink(String taskId, String userId, String identityLinkType)
Removes the association between a user and a task for the given identityLinkType.- Parameters:
taskId
- id of the task, cannot be null.userId
- id of the user involve, cannot be null.identityLinkType
- type of identityLink, cannot be null (@seeIdentityLinkType
).- Throws:
ProcessEngineException
- when the task or user doesn't exist.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
deleteGroupIdentityLink
void deleteGroupIdentityLink(String taskId, String groupId, String identityLinkType)
Removes the association between a group and a task for the given identityLinkType.- Parameters:
taskId
- id of the task, cannot be null.groupId
- id of the group to involve, cannot be null.identityLinkType
- type of identity, cannot be null (@seeIdentityLinkType
).- Throws:
ProcessEngineException
- when the task or group doesn't exist.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
setPriority
void setPriority(String taskId, int priority)
Changes the priority of the task. Authorization: actual owner / business admin- Parameters:
taskId
- id of the task, cannot be null.priority
- the new priority for the task.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
- If the user has noPermissions.UPDATE
permission onResources.TASK
or noPermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
(if the task is part of a running process instance).
-
createTaskQuery
TaskQuery createTaskQuery()
Returns a newTaskQuery
that can be used to dynamically query tasks.
-
createNativeTaskQuery
NativeTaskQuery createNativeTaskQuery()
Returns a new
-
setVariable
void setVariable(String taskId, String variableName, Object value)
Set variable on a task. If the variable is not already existing, it will be created in the most outer scope. This means the process instance in case this task is related to an execution.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
- If the user has none of the following:TaskPermissions.UPDATE_VARIABLE
permission onResources.TASK
Permissions.UPDATE
permission onResources.TASK
- or if the task is part of a running process instance:
-
setVariables
void setVariables(String taskId, Map<String,? extends Object> variables)
Set variables on a task. If the variable is not already existing, it will be created in the most outer scope. This means the process instance in case this task is related to an execution.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
- If the user has none of the following:TaskPermissions.UPDATE_VARIABLE
permission onResources.TASK
Permissions.UPDATE
permission onResources.TASK
- or if the task is part of a running process instance:
-
setVariableLocal
void setVariableLocal(String taskId, String variableName, Object value)
Set variable on a task. If the variable is not already existing, it will be created in the task.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
- If the user has none of the following:TaskPermissions.UPDATE_VARIABLE
permission onResources.TASK
Permissions.UPDATE
permission onResources.TASK
- or if the task is part of a running process instance:
-
setVariablesLocal
void setVariablesLocal(String taskId, Map<String,? extends Object> variables)
Set variables on a task. If the variable is not already existing, it will be created in the task.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
- If the user has none of the following:TaskPermissions.UPDATE_VARIABLE
permission onResources.TASK
Permissions.UPDATE
permission onResources.TASK
- or if the task is part of a running process instance:
-
getVariable
Object getVariable(String taskId, String variableName)
Get a variables and search in the task scope and if available also the execution scopes.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
-
-
getVariableTyped
<T extends TypedValue> T getVariableTyped(String taskId, String variableName)
Get a variables and search in the task scope and if available also the execution scopes.- Parameters:
taskId
- the id of the taskvariableName
- the name of the variable to fetch- Returns:
- the TypedValue for the variable or 'null' in case no such variable exists.
- Throws:
ClassCastException
- in case the value is not of the requested typeProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
- Since:
- 7.2
-
-
getVariableTyped
<T extends TypedValue> T getVariableTyped(String taskId, String variableName, boolean deserializeValue)
Get a variables and search in the task scope and if available also the execution scopes.- Parameters:
taskId
- the id of the taskvariableName
- the name of the variable to fetchdeserializeValue
- if false a,SerializableValue
will not be deserialized.- Returns:
- the TypedValue for the variable or 'null' in case no such variable exists.
- Throws:
ClassCastException
- in case the value is not of the requested typeProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
- Since:
- 7.2
-
getVariableLocal
Object getVariableLocal(String taskId, String variableName)
Get a variables and only search in the task scope.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
-
getVariableLocalTyped
<T extends TypedValue> T getVariableLocalTyped(String taskId, String variableName)
Get a variables and only search in the task scope.- Parameters:
taskId
- the id of the taskvariableName
- the name of the variable to fetch- Returns:
- the TypedValue for the variable or 'null' in case no such variable exists.
- Throws:
ClassCastException
- in case the value is not of the requested typeProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
- Since:
- 7.2
-
getVariableLocalTyped
<T extends TypedValue> T getVariableLocalTyped(String taskId, String variableName, boolean deserializeValue)
Get a variables and only search in the task scope.- Parameters:
taskId
- the id of the taskvariableName
- the name of the variable to fetchdeserializeValue
- if false a,SerializableValue
will not be deserialized.- Returns:
- the TypedValue for the variable or 'null' in case no such variable exists.
- Throws:
ClassCastException
- in case the value is not of the requested typeProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
- Since:
- 7.2
-
getVariables
Map<String,Object> getVariables(String taskId)
Get all variables and search in the task scope and if available also the execution scopes. If you have many variables and you only need a few, consider usinggetVariables(String, Collection)
for better performance.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
-
getVariablesTyped
VariableMap getVariablesTyped(String taskId)
Get all variables and search in the task scope and if available also the execution scopes. If you have many variables and you only need a few, consider usinggetVariables(String, Collection)
for better performance.- Parameters:
taskId
- the id of the task- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
- Since:
- 7.2
-
getVariablesTyped
VariableMap getVariablesTyped(String taskId, boolean deserializeValues)
Get all variables and search in the task scope and if available also the execution scopes. If you have many variables and you only need a few, consider usinggetVariables(String, Collection)
for better performance.- Parameters:
taskId
- the id of the taskdeserializeValues
- if false,SerializableValues
will not be deserialized.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
- Since:
- 7.2
-
getVariablesLocal
Map<String,Object> getVariablesLocal(String taskId)
Get all variables and search only in the task scope. If you have many task local variables and you only need a few, consider usinggetVariablesLocal(String, Collection)
for better performance.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
-
getVariablesLocalTyped
VariableMap getVariablesLocalTyped(String taskId)
Get all variables and search only in the task scope. If you have many task local variables and you only need a few, consider usinggetVariablesLocal(String, Collection)
for better performance.- Parameters:
taskId
- the id of the taskdeserializeValues
- if false,SerializableValues
will not be deserialized.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
- Since:
- 7.2
-
getVariablesLocalTyped
VariableMap getVariablesLocalTyped(String taskId, boolean deserializeValues)
Get all variables and search only in the task scope. If you have many task local variables and you only need a few, consider usinggetVariablesLocal(String, Collection)
for better performance.- Parameters:
taskId
- the id of the taskdeserializeValues
- if false,SerializableValues
will not be deserialized.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
- Since:
- 7.2
-
getVariables
Map<String,Object> getVariables(String taskId, Collection<String> variableNames)
Get values for all given variableNames- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
-
getVariablesTyped
VariableMap getVariablesTyped(String taskId, Collection<String> variableNames, boolean deserializeValues)
Get values for all given variableName- Parameters:
taskId
- the id of the taskvariableNames
- only fetch variables whose names are in the collection.deserializeValues
- if false,SerializableValues
will not be deserialized.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
- Since:
- 7.2
-
getVariablesLocal
Map<String,Object> getVariablesLocal(String taskId, Collection<String> variableNames)
Get a variable on a task- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
-
getVariablesLocalTyped
VariableMap getVariablesLocalTyped(String taskId, Collection<String> variableNames, boolean deserializeValues)
Get values for all given variableName. Only search in the local task scope.- Parameters:
taskId
- the id of the taskvariableNames
- only fetch variables whose names are in the collection.deserializeValues
- if false,SerializableValues
will not be deserialized.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
-In case of standalone tasks:
- if the user has no
Permissions.READ
permission onResources.TASK
or- if
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
In case the task is part of a running process instance:
- if the user has no
- if the user has no
Permissions.READ
permission onResources.TASK
and noPermissions.READ_TASK
permission onResources.PROCESS_DEFINITION
- in case
this
configuration is enabled and the user has noTaskPermissions.READ_VARIABLE
permission onResources.TASK
and noProcessDefinitionPermissions.READ_TASK_VARIABLE
permission onResources.PROCESS_DEFINITION
- Since:
- 7.2
-
removeVariable
void removeVariable(String taskId, String variableName)
Removes the variable from the task. When the variable does not exist, nothing happens.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
- If the user has none of the following:TaskPermissions.UPDATE_VARIABLE
permission onResources.TASK
Permissions.UPDATE
permission onResources.TASK
- or if the task is part of a running process instance:
-
removeVariableLocal
void removeVariableLocal(String taskId, String variableName)
Removes the variable from the task (not considering parent scopes). When the variable does not exist, nothing happens.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
- If the user has none of the following:TaskPermissions.UPDATE_VARIABLE
permission onResources.TASK
Permissions.UPDATE
permission onResources.TASK
- or if the task is part of a running process instance:
-
removeVariables
void removeVariables(String taskId, Collection<String> variableNames)
Removes all variables in the given collection from the task. Non existing variable names are simply ignored.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
- If the user has none of the following:TaskPermissions.UPDATE_VARIABLE
permission onResources.TASK
Permissions.UPDATE
permission onResources.TASK
- or if the task is part of a running process instance:
-
removeVariablesLocal
void removeVariablesLocal(String taskId, Collection<String> variableNames)
Removes all variables in the given collection from the task (not considering parent scopes). Non existing variable names are simply ignored.- Throws:
ProcessEngineException
- when the task doesn't exist.AuthorizationException
- If the user has none of the following:TaskPermissions.UPDATE_VARIABLE
permission onResources.TASK
Permissions.UPDATE
permission onResources.TASK
- or if the task is part of a running process instance:
-
addComment
@Deprecated void addComment(String taskId, String processInstanceId, String message)
Deprecated.UsecreateComment(String, String, String)
insteadAdd a comment to a task and/or process instance.
-
createComment
Comment createComment(String taskId, String processInstanceId, String message)
Creates a comment to a task and/or process instance and returns the comment.
-
getTaskComments
List<Comment> getTaskComments(String taskId)
The comments related to the given task.
-
getTaskComment
Comment getTaskComment(String taskId, String commentId)
Retrieve a particular task comment
-
getTaskEvents
@Deprecated List<Event> getTaskEvents(String taskId)
Deprecated.This method has been deprecated as of Camunda Platform 7.1. It has been replaced with the operation log. SeeUserOperationLogEntry
andUserOperationLogQuery
.The all events related to the given task.
As of Camunda Platform 7.4 task events are only written in context of a logged in user. This behavior can be toggled in the process engine configuration using the property
legacyUserOperationLog
(default false). To restore the engine's previous behavior, set the flag totrue
.
-
getProcessInstanceComments
List<Comment> getProcessInstanceComments(String processInstanceId)
The comments related to the given process instance.
-
createAttachment
Attachment createAttachment(String attachmentType, String taskId, String processInstanceId, String attachmentName, String attachmentDescription, InputStream content)
Add a new attachment to a task and/or a process instance and use an input stream to provide the content please use method in runtime service to operate on process instance. Either taskId or processInstanceId has to be provided- Parameters:
taskId
- - task that should have an attachmentprocessInstanceId
- - id of a process to use if task id is nullattachmentType
- - name of the attachment, can be nullattachmentName
- - name of the attachment, can be nullattachmentDescription
- - full text description, can be nullcontent
- - byte array with content of attachment
-
createAttachment
Attachment createAttachment(String attachmentType, String taskId, String processInstanceId, String attachmentName, String attachmentDescription, String url)
Add a new attachment to a task and/or a process instance and use an url as the content please use method in runtime service to operate on process instance Either taskId or processInstanceId has to be provided- Parameters:
taskId
- - task that should have an attachmentprocessInstanceId
- - id of a process to use if task id is nullattachmentType
- - name of the attachment, can be nullattachmentName
- - name of the attachment, can be nullattachmentDescription
- - full text description, can be nullurl
- - url of the attachment, can be null
-
saveAttachment
void saveAttachment(Attachment attachment)
Update the name and decription of an attachment
-
getAttachment
Attachment getAttachment(String attachmentId)
Retrieve a particular attachment
-
getTaskAttachment
Attachment getTaskAttachment(String taskId, String attachmentId)
Retrieve a particular attachment to the given task id and attachment id
-
getAttachmentContent
InputStream getAttachmentContent(String attachmentId)
Retrieve stream content of a particular attachment
-
getTaskAttachmentContent
InputStream getTaskAttachmentContent(String taskId, String attachmentId)
Retrieve stream content of a particular attachment to the given task id and attachment id
-
getTaskAttachments
List<Attachment> getTaskAttachments(String taskId)
The list of attachments associated to a task
-
getProcessInstanceAttachments
List<Attachment> getProcessInstanceAttachments(String processInstanceId)
The list of attachments associated to a process instance
-
deleteAttachment
void deleteAttachment(String attachmentId)
Delete an attachment
-
deleteTaskAttachment
void deleteTaskAttachment(String taskId, String attachmentId)
Delete an attachment to the given task id and attachment id
-
createTaskReport
TaskReport createTaskReport()
Instantiate a task report
-
handleBpmnError
void handleBpmnError(String taskId, String errorCode)
Signals that a business error appears, which should be handled by the process engine.- Parameters:
taskId
- the id of an existing active taskerrorCode
- the error code of the corresponding bmpn error- Throws:
NotFoundException
- if no task with the given id existsBadUserRequestException
- if task id or error code were null or emptySuspendedEntityInteractionException
- if the task is suspendedAuthorizationException
- if the user has none of the following permissions:Permissions.TASK_WORK
permission onResources.TASK
orResources.PROCESS_DEFINITION
resourcePermissions.UPDATE
permission onResources.TASK
resourcePermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
resource
-
handleBpmnError
void handleBpmnError(String taskId, String errorCode, String errorMessage)
- Parameters:
taskId
- the id of an existing active taskerrorCode
- the error code of the corresponding bmpn errorerrorMessage
- the error message of the corresponding bmpn error- See Also:
handleBpmnError(String, String)
-
handleBpmnError
void handleBpmnError(String taskId, String errorCode, String errorMessage, Map<String,Object> variables)
- Parameters:
taskId
- the id of an existing active taskerrorCode
- the error code of the corresponding bmpn errorerrorMessage
- the error message of the corresponding bmpn errorvariables
- the variables to pass to the execution- See Also:
handleBpmnError(String, String)
-
handleEscalation
void handleEscalation(String taskId, String escalationCode)
Signals that an escalation appears, which should be handled by the process engine.- Parameters:
taskId
- the id of an existing active taskescalationCode
- the escalation code of the corresponding escalationvariables
- the variables to pass to the execution- Throws:
NotFoundException
- if no task with the given id existsBadUserRequestException
- if task id or escalation code were null or emptySuspendedEntityInteractionException
- if the task is suspendedAuthorizationException
- if the user has none of the following permissions:Permissions.TASK_WORK
permission onResources.TASK
orResources.PROCESS_DEFINITION
resourcePermissions.UPDATE
permission onResources.TASK
resourcePermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
resource
-
handleEscalation
void handleEscalation(String taskId, String escalationCode, Map<String,Object> variables)
Signals that an escalation appears, which should be handled by the process engine.- Parameters:
taskId
- the id of an existing active taskescalationCode
- the escalation code of the corresponding escalationvariables
- the variables to pass to the execution- Throws:
NotFoundException
- if no task with the given id existsBadUserRequestException
- if task id or escalation code were null or emptySuspendedEntityInteractionException
- if the task is suspendedAuthorizationException
- if the user has none of the following permissions:Permissions.TASK_WORK
permission onResources.TASK
orResources.PROCESS_DEFINITION
resourcePermissions.UPDATE
permission onResources.TASK
resourcePermissions.UPDATE_TASK
permission onResources.PROCESS_DEFINITION
resource