Package org.flowable.engine.impl
Class TaskServiceImpl
- java.lang.Object
-
- org.flowable.common.engine.impl.service.CommonServiceImpl<C>
-
- org.flowable.common.engine.impl.service.CommonEngineServiceImpl<org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl>
-
- org.flowable.engine.impl.TaskServiceImpl
-
- All Implemented Interfaces:
TaskService
public class TaskServiceImpl extends org.flowable.common.engine.impl.service.CommonEngineServiceImpl<org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl> implements TaskService
- Author:
- Tom Baeyens, Joram Barrez
-
-
Constructor Summary
Constructors Constructor Description TaskServiceImpl(org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl processEngineConfiguration)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addCandidateGroup(String taskId, String groupId)
Convenience shorthand forTaskService.addGroupIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
void
addCandidateUser(String taskId, String userId)
Convenience shorthand forTaskService.addUserIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
Comment
addComment(String taskId, String processInstance, String message)
Add a comment to a task and/or process instance.Comment
addComment(String taskId, String processInstance, String type, String message)
Add a comment to a task and/or process instance with a custom type.void
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
bulkSaveTasks(Collection<org.flowable.task.api.Task> taskList)
Saves the given tasks to the persistent data store.void
claim(String taskId, String userId)
Claim responsibility for a task: the given user is made assignee for the task.void
complete(String taskId)
Called when the task is successfully executed.void
complete(String taskId, Map<String,Object> variables)
Called when the task is successfully executed, and the required task parameters are given by the end-user.void
complete(String taskId, Map<String,Object> variables, boolean localScope)
Called when the task is successfully executed, and the required task parameters are given by the end-user.void
complete(String taskId, Map<String,Object> variables, Map<String,Object> transientVariables)
Similar toTaskService.complete(String, Map)
, but allows to set transient variables too.void
completeTaskWithForm(String taskId, String formDefinitionId, String outcome, Map<String,Object> variables)
Called when the task is successfully executed, and the task form has been submitted.void
completeTaskWithForm(String taskId, String formDefinitionId, String outcome, Map<String,Object> variables, boolean localScope)
Called when the task is successfully executed, and the task form has been submitted.void
completeTaskWithForm(String taskId, String formDefinitionId, String outcome, Map<String,Object> variables, Map<String,Object> transientVariables)
Called when the task is successfully executed, and the task form has been submitted.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 contentAttachment
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 contentorg.flowable.task.api.NativeTaskQuery
createNativeTaskQuery()
Returns a newNativeQuery
for tasks.org.flowable.task.api.TaskBuilder
createTaskBuilder()
Create a builder for the taskorg.flowable.task.api.TaskCompletionBuilder
createTaskCompletionBuilder()
Create a completion builder for the taskorg.flowable.task.api.TaskQuery
createTaskQuery()
Returns a newTaskQuery
that can be used to dynamically query tasks.void
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 forTaskService.deleteGroupIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
void
deleteCandidateUser(String taskId, String userId)
Convenience shorthand forTaskService.deleteUserIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
void
deleteComment(String commentId)
Removes an individual comment with the given id.void
deleteComments(String taskId, String processInstanceId)
Removes all comments from the provided task and/or process instancevoid
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
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 attachmentComment
getComment(String commentId)
Returns an individual comment with the given id.List<Comment>
getCommentsByType(String type)
All comments of a given type.DataObject
getDataObject(String taskId, String dataObject)
The DataObject.DataObject
getDataObject(String taskId, String dataObjectName, String locale, boolean withLocalizationFallback)
The DataObject.Map<String,DataObject>
getDataObjects(String taskId)
All DataObjects visible from the given execution scope (including parent scopes).Map<String,DataObject>
getDataObjects(String taskId, String locale, boolean withLocalizationFallback)
All DataObjects visible from the given task scope (including parent scopes).Map<String,DataObject>
getDataObjects(String taskId, Collection<String> dataObjectNames)
The DataObjects for all given dataObjectNames, takes all dataObjects into account which are visible from the given task scope (including parent scopes).Map<String,DataObject>
getDataObjects(String taskId, Collection<String> dataObjectNames, String locale, boolean withLocalizationFallback)
The DataObjects for all given dataObjectNames, takes all dataObjects into account which are visible from the given task scope (including parent scopes).Event
getEvent(String eventId)
Returns an individual event with the given id.List<org.flowable.identitylink.api.IdentityLink>
getIdentityLinksForTask(String taskId)
Retrieves theIdentityLink
s associated with the given task.protected org.flowable.idm.api.IdmIdentityService
getIdmIdentityService()
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<Comment>
getProcessInstanceComments(String processInstanceId, String type)
The comments related to the given process instance.List<org.flowable.task.api.Task>
getSubTasks(String parentTaskId)
The list of subtasks for this parent taskList<Attachment>
getTaskAttachments(String taskId)
The list of attachments associated to a taskList<Comment>
getTaskComments(String taskId)
The comments related to the given task.List<Comment>
getTaskComments(String taskId, String type)
The comments related to the given task of the given type.List<Event>
getTaskEvents(String taskId)
The all events related to the given task.org.flowable.form.api.FormInfo
getTaskFormModel(String taskId)
Gets a Form model instance of the task form of a specific taskorg.flowable.form.api.FormInfo
getTaskFormModel(String taskId, boolean ignoreVariables)
Gets a Form model instance of the task form of a specific task without any variable handlingObject
getVariable(String taskId, String variableName)
get a variables and search in the task scope and if available also the execution scopes.<T> T
getVariable(String taskId, String variableName, Class<T> variableClass)
get a variables and search in the task scope and if available also the execution scopes.org.flowable.variable.api.persistence.entity.VariableInstance
getVariableInstance(String taskId, String variableName)
The variable.org.flowable.variable.api.persistence.entity.VariableInstance
getVariableInstanceLocal(String taskId, String variableName)
The variable for a task.Map<String,org.flowable.variable.api.persistence.entity.VariableInstance>
getVariableInstances(String taskId)
All variables visible from the given task scope (including parent scopes).Map<String,org.flowable.variable.api.persistence.entity.VariableInstance>
getVariableInstances(String taskId, Collection<String> variableNames)
The variable values for all given variableNames, takes all variables into account which are visible from the given task scope (including parent scopes).Map<String,org.flowable.variable.api.persistence.entity.VariableInstance>
getVariableInstancesLocal(String taskId)
All variable values that are defined in the task scope, without taking outer scopes into account.Map<String,org.flowable.variable.api.persistence.entity.VariableInstance>
getVariableInstancesLocal(String taskId, Collection<String> variableNames)
The variable values for all given variableNames that are defined in the given task's scope.List<org.flowable.variable.api.persistence.entity.VariableInstance>
getVariableInstancesLocalByTaskIds(Set<String> taskIds)
get all variables and search only in the task scope.Object
getVariableLocal(String taskId, String variableName)
checks whether or not the task has a variable defined with the given name.<T> T
getVariableLocal(String taskId, String variableName, Class<T> variableClass)
checks whether or not the task has a variable defined with the given name.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 variableNames and search only in the task scope.Map<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 taskboolean
hasVariable(String taskId, String variableName)
checks whether or not the task has a variable defined with the given name, in the task scope and if available also the execution scopes.boolean
hasVariableLocal(String taskId, String variableName)
checks whether or not the task has a variable defined with the given name, local task scope only.org.flowable.task.api.Task
newTask()
Creates a new task that is not related to any process instance.org.flowable.task.api.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)
Marks that the assignee is done with this task and that it can be send back to the owner.void
resolveTask(String taskId, Map<String,Object> variables)
Marks that the assignee is done with this task providing the required variables and that it can be sent back to the owner.void
resolveTask(String taskId, Map<String,Object> variables, Map<String,Object> transientVariables)
Similar toTaskService.resolveTask(String, Map)
, but allows to set transient variables too.void
saveAttachment(Attachment attachment)
Update the name and description of an attachmentvoid
saveComment(Comment comment)
Update a comment to a task and/or process instance.void
saveTask(org.flowable.task.api.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
setDueDate(String taskId, Date dueDate)
Changes the due date of the taskvoid
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.void
unclaim(String taskId)
A shortcut toTaskService.claim(java.lang.String, java.lang.String)
with null user in order to unclaim the task-
Methods inherited from class org.flowable.common.engine.impl.service.CommonEngineServiceImpl
getCommandExecutor, setCommandExecutor
-
-
-
-
Method Detail
-
newTask
public org.flowable.task.api.Task newTask()
Description copied from interface:TaskService
Creates a new task that is not related to any process instance. The returned task is transient and must be saved withTaskService.saveTask(Task)
'manually'.- Specified by:
newTask
in interfaceTaskService
-
newTask
public org.flowable.task.api.Task newTask(String taskId)
Description copied from interface:TaskService
create a new task with a user defined task id- Specified by:
newTask
in interfaceTaskService
-
saveTask
public void saveTask(org.flowable.task.api.Task task)
Description copied from interface:TaskService
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.- Specified by:
saveTask
in interfaceTaskService
- Parameters:
task
- the task, cannot be null.
-
bulkSaveTasks
public void bulkSaveTasks(Collection<org.flowable.task.api.Task> taskList)
Description copied from interface:TaskService
Saves the given tasks to the persistent data store. If the tasks are 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.- Specified by:
bulkSaveTasks
in interfaceTaskService
- Parameters:
taskList
- the list of task instances, cannot be null.
-
deleteTask
public void deleteTask(String taskId)
Description copied from interface:TaskService
Deletes the given task, not deleting historic information that is related to this task.- Specified by:
deleteTask
in interfaceTaskService
- 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.
-
deleteTasks
public void deleteTasks(Collection<String> taskIds)
Description copied from interface:TaskService
Deletes all tasks of the given collection, not deleting historic information that is related to these tasks.- Specified by:
deleteTasks
in interfaceTaskService
- 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.
-
deleteTask
public void deleteTask(String taskId, boolean cascade)
Description copied from interface:TaskService
Deletes the given task.- Specified by:
deleteTask
in interfaceTaskService
- 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.
-
deleteTasks
public void deleteTasks(Collection<String> taskIds, boolean cascade)
Description copied from interface:TaskService
Deletes all tasks of the given collection.- Specified by:
deleteTasks
in interfaceTaskService
- 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.
-
deleteTask
public void deleteTask(String taskId, String deleteReason)
Description copied from interface:TaskService
Deletes the given task, not deleting historic information that is related to this task..- Specified by:
deleteTask
in interfaceTaskService
- 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.
-
deleteTasks
public void deleteTasks(Collection<String> taskIds, String deleteReason)
Description copied from interface:TaskService
Deletes all tasks of the given collection, not deleting historic information that is related to these tasks.- Specified by:
deleteTasks
in interfaceTaskService
- 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.
-
setAssignee
public void setAssignee(String taskId, String userId)
Description copied from interface:TaskService
Changes the assignee of the given task to the given userId. No check is done whether the user is known by the identity component.- Specified by:
setAssignee
in interfaceTaskService
- Parameters:
taskId
- id of the task, cannot be null.userId
- id of the user to use as assignee.
-
setOwner
public void setOwner(String taskId, String userId)
Description copied from interface:TaskService
Transfers ownership of this task to another user. No check is done whether the user is known by the identity component.- Specified by:
setOwner
in interfaceTaskService
- Parameters:
taskId
- id of the task, cannot be null.userId
- of the person that is receiving ownership.
-
addCandidateUser
public void addCandidateUser(String taskId, String userId)
Description copied from interface:TaskService
Convenience shorthand forTaskService.addUserIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
- Specified by:
addCandidateUser
in interfaceTaskService
- Parameters:
taskId
- id of the task, cannot be null.userId
- id of the user to use as candidate, cannot be null.
-
addCandidateGroup
public void addCandidateGroup(String taskId, String groupId)
Description copied from interface:TaskService
Convenience shorthand forTaskService.addGroupIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
- Specified by:
addCandidateGroup
in interfaceTaskService
- Parameters:
taskId
- id of the task, cannot be null.groupId
- id of the group to use as candidate, cannot be null.
-
addUserIdentityLink
public void addUserIdentityLink(String taskId, String userId, String identityLinkType)
Description copied from interface:TaskService
Involves a user with a task. The type of identity link is defined by the given identityLinkType.- Specified by:
addUserIdentityLink
in interfaceTaskService
- 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
).
-
addGroupIdentityLink
public void addGroupIdentityLink(String taskId, String groupId, String identityLinkType)
Description copied from interface:TaskService
Involves a group with a task. The type of identityLink is defined by the given identityLink.- Specified by:
addGroupIdentityLink
in interfaceTaskService
- 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
).
-
deleteCandidateGroup
public void deleteCandidateGroup(String taskId, String groupId)
Description copied from interface:TaskService
Convenience shorthand forTaskService.deleteGroupIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
- Specified by:
deleteCandidateGroup
in interfaceTaskService
- Parameters:
taskId
- id of the task, cannot be null.groupId
- id of the group to use as candidate, cannot be null.
-
deleteCandidateUser
public void deleteCandidateUser(String taskId, String userId)
Description copied from interface:TaskService
Convenience shorthand forTaskService.deleteUserIdentityLink(String, String, String)
; with typeIdentityLinkType.CANDIDATE
- Specified by:
deleteCandidateUser
in interfaceTaskService
- Parameters:
taskId
- id of the task, cannot be null.userId
- id of the user to use as candidate, cannot be null.
-
deleteGroupIdentityLink
public void deleteGroupIdentityLink(String taskId, String groupId, String identityLinkType)
Description copied from interface:TaskService
Removes the association between a group and a task for the given identityLinkType.- Specified by:
deleteGroupIdentityLink
in interfaceTaskService
- 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
).
-
deleteUserIdentityLink
public void deleteUserIdentityLink(String taskId, String userId, String identityLinkType)
Description copied from interface:TaskService
Removes the association between a user and a task for the given identityLinkType.- Specified by:
deleteUserIdentityLink
in interfaceTaskService
- 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
).
-
getIdentityLinksForTask
public List<org.flowable.identitylink.api.IdentityLink> getIdentityLinksForTask(String taskId)
Description copied from interface:TaskService
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.)- Specified by:
getIdentityLinksForTask
in interfaceTaskService
-
claim
public void claim(String taskId, String userId)
Description copied from interface:TaskService
Claim responsibility for a task: the given user is made assignee for the task. The difference withTaskService.setAssignee(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.- Specified by:
claim
in interfaceTaskService
- 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.
-
unclaim
public void unclaim(String taskId)
Description copied from interface:TaskService
A shortcut toTaskService.claim(java.lang.String, java.lang.String)
with null user in order to unclaim the task- Specified by:
unclaim
in interfaceTaskService
- Parameters:
taskId
- task to unclaim, cannot be null.
-
complete
public void complete(String taskId)
Description copied from interface:TaskService
Called when the task is successfully executed.- Specified by:
complete
in interfaceTaskService
- Parameters:
taskId
- the id of the task to complete, cannot be null.
-
complete
public void complete(String taskId, Map<String,Object> variables)
Description copied from interface:TaskService
Called when the task is successfully executed, and the required task parameters are given by the end-user.- Specified by:
complete
in interfaceTaskService
- Parameters:
taskId
- the id of the task to complete, cannot be null.variables
- task parameters. May be null or empty.
-
complete
public void complete(String taskId, Map<String,Object> variables, Map<String,Object> transientVariables)
Description copied from interface:TaskService
Similar toTaskService.complete(String, Map)
, but allows to set transient variables too.- Specified by:
complete
in interfaceTaskService
-
complete
public void complete(String taskId, Map<String,Object> variables, boolean localScope)
Description copied from interface:TaskService
Called when the task is successfully executed, and the required task parameters are given by the end-user.- Specified by:
complete
in interfaceTaskService
- Parameters:
taskId
- the id of the task to complete, cannot be null.variables
- task parameters. May be null or empty.localScope
- If true, the provided variables will be stored task-local, instead of process instance wide (which is the default forTaskService.complete(String, Map)
).
-
completeTaskWithForm
public void completeTaskWithForm(String taskId, String formDefinitionId, String outcome, Map<String,Object> variables)
Description copied from interface:TaskService
Called when the task is successfully executed, and the task form has been submitted.- Specified by:
completeTaskWithForm
in interfaceTaskService
- Parameters:
taskId
- the id of the task to complete, cannot be null.formDefinitionId
- the id of the form definition that is filled-in to complete the task, cannot be null.outcome
- the outcome of the completed form, can be null.variables
- values of the completed form. May be null or empty.
-
completeTaskWithForm
public void completeTaskWithForm(String taskId, String formDefinitionId, String outcome, Map<String,Object> variables, Map<String,Object> transientVariables)
Description copied from interface:TaskService
Called when the task is successfully executed, and the task form has been submitted.- Specified by:
completeTaskWithForm
in interfaceTaskService
- Parameters:
taskId
- the id of the task to complete, cannot be null.formDefinitionId
- the id of the form definition that is filled-in to complete the task, cannot be null.outcome
- the outcome of the completed form, can be null.variables
- values of the completed form. May be null or empty.transientVariables
- additional transient values that need to added to the process instance transient variables. May be null or empty.
-
completeTaskWithForm
public void completeTaskWithForm(String taskId, String formDefinitionId, String outcome, Map<String,Object> variables, boolean localScope)
Description copied from interface:TaskService
Called when the task is successfully executed, and the task form has been submitted.- Specified by:
completeTaskWithForm
in interfaceTaskService
- Parameters:
taskId
- the id of the task to complete, cannot be null.formDefinitionId
- the id of the form definition that is filled-in to complete the task, cannot be null.outcome
- the outcome of the completed form, can be null.variables
- values of the completed form. May be null or empty.localScope
- If true, the provided variables will be stored task-local, instead of process instance wide (which is the default forTaskService.complete(String, Map)
).
-
getTaskFormModel
public org.flowable.form.api.FormInfo getTaskFormModel(String taskId)
Description copied from interface:TaskService
Gets a Form model instance of the task form of a specific task- Specified by:
getTaskFormModel
in interfaceTaskService
- Parameters:
taskId
- id of the task, cannot be null.
-
getTaskFormModel
public org.flowable.form.api.FormInfo getTaskFormModel(String taskId, boolean ignoreVariables)
Description copied from interface:TaskService
Gets a Form model instance of the task form of a specific task without any variable handling- Specified by:
getTaskFormModel
in interfaceTaskService
- Parameters:
taskId
- id of the task, cannot be null.ignoreVariables
- should the variables be ignored when fetching the form model?
-
delegateTask
public void delegateTask(String taskId, String userId)
Description copied from interface:TaskService
Delegates the task to another user. This means that the assignee is set and the delegation state is set toDelegationState.PENDING
. If no owner is set on the task, the owner is set to the current assignee of the task.- Specified by:
delegateTask
in interfaceTaskService
- Parameters:
taskId
- The id of the task that will be delegated.userId
- The id of the user that will be set as assignee.
-
resolveTask
public void resolveTask(String taskId)
Description copied from interface:TaskService
Marks that the assignee is done with this task and that it can be send back to the owner. Can only be called when this task isDelegationState.PENDING
delegation. After this method returns, thedelegationState
is set toDelegationState.RESOLVED
.- Specified by:
resolveTask
in interfaceTaskService
- Parameters:
taskId
- the id of the task to resolve, cannot be null.
-
resolveTask
public void resolveTask(String taskId, Map<String,Object> variables)
Description copied from interface:TaskService
Marks that the assignee is done with this task providing the required variables and that it can be sent back to the owner. Can only be called when this task isDelegationState.PENDING
delegation. After this method returns, thedelegationState
is set toDelegationState.RESOLVED
.- Specified by:
resolveTask
in interfaceTaskService
-
resolveTask
public void resolveTask(String taskId, Map<String,Object> variables, Map<String,Object> transientVariables)
Description copied from interface:TaskService
Similar toTaskService.resolveTask(String, Map)
, but allows to set transient variables too.- Specified by:
resolveTask
in interfaceTaskService
-
setPriority
public void setPriority(String taskId, int priority)
Description copied from interface:TaskService
Changes the priority of the task. Authorization: actual owner / business admin- Specified by:
setPriority
in interfaceTaskService
- Parameters:
taskId
- id of the task, cannot be null.priority
- the new priority for the task.
-
setDueDate
public void setDueDate(String taskId, Date dueDate)
Description copied from interface:TaskService
Changes the due date of the task- Specified by:
setDueDate
in interfaceTaskService
- Parameters:
taskId
- id of the task, cannot be null.dueDate
- the new due date for the task
-
createTaskQuery
public org.flowable.task.api.TaskQuery createTaskQuery()
Description copied from interface:TaskService
Returns a newTaskQuery
that can be used to dynamically query tasks.- Specified by:
createTaskQuery
in interfaceTaskService
-
createNativeTaskQuery
public org.flowable.task.api.NativeTaskQuery createNativeTaskQuery()
Description copied from interface:TaskService
Returns a newNativeQuery
for tasks.- Specified by:
createNativeTaskQuery
in interfaceTaskService
-
getVariables
public Map<String,Object> getVariables(String taskId)
Description copied from interface:TaskService
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 usingTaskService.getVariables(String, Collection)
for better performance.- Specified by:
getVariables
in interfaceTaskService
-
getVariablesLocal
public Map<String,Object> getVariablesLocal(String taskId)
Description copied from interface:TaskService
get all variables and search only in the task scope. If you have many task local variables and you only need a few, consider usingTaskService.getVariablesLocal(String, Collection)
for better performance.- Specified by:
getVariablesLocal
in interfaceTaskService
-
getVariables
public Map<String,Object> getVariables(String taskId, Collection<String> variableNames)
Description copied from interface:TaskService
get values for all given variableNames and search only in the task scope.- Specified by:
getVariables
in interfaceTaskService
-
getVariablesLocal
public Map<String,Object> getVariablesLocal(String taskId, Collection<String> variableNames)
Description copied from interface:TaskService
get a variable on a task- Specified by:
getVariablesLocal
in interfaceTaskService
-
getVariable
public Object getVariable(String taskId, String variableName)
Description copied from interface:TaskService
get a variables and search in the task scope and if available also the execution scopes.- Specified by:
getVariable
in interfaceTaskService
-
getVariable
public <T> T getVariable(String taskId, String variableName, Class<T> variableClass)
Description copied from interface:TaskService
get a variables and search in the task scope and if available also the execution scopes.- Specified by:
getVariable
in interfaceTaskService
-
hasVariable
public boolean hasVariable(String taskId, String variableName)
Description copied from interface:TaskService
checks whether or not the task has a variable defined with the given name, in the task scope and if available also the execution scopes.- Specified by:
hasVariable
in interfaceTaskService
-
getVariableLocal
public Object getVariableLocal(String taskId, String variableName)
Description copied from interface:TaskService
checks whether or not the task has a variable defined with the given name.- Specified by:
getVariableLocal
in interfaceTaskService
-
getVariableLocal
public <T> T getVariableLocal(String taskId, String variableName, Class<T> variableClass)
Description copied from interface:TaskService
checks whether or not the task has a variable defined with the given name.- Specified by:
getVariableLocal
in interfaceTaskService
-
getVariableInstancesLocalByTaskIds
public List<org.flowable.variable.api.persistence.entity.VariableInstance> getVariableInstancesLocalByTaskIds(Set<String> taskIds)
Description copied from interface:TaskService
get all variables and search only in the task scope.- Specified by:
getVariableInstancesLocalByTaskIds
in interfaceTaskService
-
hasVariableLocal
public boolean hasVariableLocal(String taskId, String variableName)
Description copied from interface:TaskService
checks whether or not the task has a variable defined with the given name, local task scope only.- Specified by:
hasVariableLocal
in interfaceTaskService
-
setVariable
public void setVariable(String taskId, String variableName, Object value)
Description copied from interface:TaskService
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.- Specified by:
setVariable
in interfaceTaskService
-
setVariableLocal
public void setVariableLocal(String taskId, String variableName, Object value)
Description copied from interface:TaskService
set variable on a task. If the variable is not already existing, it will be created in the task.- Specified by:
setVariableLocal
in interfaceTaskService
-
setVariables
public void setVariables(String taskId, Map<String,? extends Object> variables)
Description copied from interface:TaskService
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.- Specified by:
setVariables
in interfaceTaskService
-
setVariablesLocal
public void setVariablesLocal(String taskId, Map<String,? extends Object> variables)
Description copied from interface:TaskService
set variables on a task. If the variable is not already existing, it will be created in the task.- Specified by:
setVariablesLocal
in interfaceTaskService
-
removeVariable
public void removeVariable(String taskId, String variableName)
Description copied from interface:TaskService
Removes the variable from the task. When the variable does not exist, nothing happens.- Specified by:
removeVariable
in interfaceTaskService
-
removeVariableLocal
public void removeVariableLocal(String taskId, String variableName)
Description copied from interface:TaskService
Removes the variable from the task (not considering parent scopes). When the variable does not exist, nothing happens.- Specified by:
removeVariableLocal
in interfaceTaskService
-
removeVariables
public void removeVariables(String taskId, Collection<String> variableNames)
Description copied from interface:TaskService
Removes all variables in the given collection from the task. Non existing variable names are simply ignored.- Specified by:
removeVariables
in interfaceTaskService
-
removeVariablesLocal
public void removeVariablesLocal(String taskId, Collection<String> variableNames)
Description copied from interface:TaskService
Removes all variables in the given collection from the task (not considering parent scopes). Non existing variable names are simply ignored.- Specified by:
removeVariablesLocal
in interfaceTaskService
-
addComment
public Comment addComment(String taskId, String processInstance, String message)
Description copied from interface:TaskService
Add a comment to a task and/or process instance.- Specified by:
addComment
in interfaceTaskService
-
addComment
public Comment addComment(String taskId, String processInstance, String type, String message)
Description copied from interface:TaskService
Add a comment to a task and/or process instance with a custom type.- Specified by:
addComment
in interfaceTaskService
-
saveComment
public void saveComment(Comment comment)
Description copied from interface:TaskService
Update a comment to a task and/or process instance.- Specified by:
saveComment
in interfaceTaskService
-
getComment
public Comment getComment(String commentId)
Description copied from interface:TaskService
Returns an individual comment with the given id. Returns null if no comment exists with the given id.- Specified by:
getComment
in interfaceTaskService
-
getEvent
public Event getEvent(String eventId)
Description copied from interface:TaskService
Returns an individual event with the given id. Returns null if no event exists with the given id.- Specified by:
getEvent
in interfaceTaskService
-
getTaskComments
public List<Comment> getTaskComments(String taskId)
Description copied from interface:TaskService
The comments related to the given task.- Specified by:
getTaskComments
in interfaceTaskService
-
getTaskComments
public List<Comment> getTaskComments(String taskId, String type)
Description copied from interface:TaskService
The comments related to the given task of the given type.- Specified by:
getTaskComments
in interfaceTaskService
-
getCommentsByType
public List<Comment> getCommentsByType(String type)
Description copied from interface:TaskService
All comments of a given type.- Specified by:
getCommentsByType
in interfaceTaskService
-
getTaskEvents
public List<Event> getTaskEvents(String taskId)
Description copied from interface:TaskService
The all events related to the given task.- Specified by:
getTaskEvents
in interfaceTaskService
-
getProcessInstanceComments
public List<Comment> getProcessInstanceComments(String processInstanceId)
Description copied from interface:TaskService
The comments related to the given process instance.- Specified by:
getProcessInstanceComments
in interfaceTaskService
-
getProcessInstanceComments
public List<Comment> getProcessInstanceComments(String processInstanceId, String type)
Description copied from interface:TaskService
The comments related to the given process instance.- Specified by:
getProcessInstanceComments
in interfaceTaskService
-
createAttachment
public Attachment createAttachment(String attachmentType, String taskId, String processInstanceId, String attachmentName, String attachmentDescription, InputStream content)
Description copied from interface:TaskService
Add a new attachment to a task and/or a process instance and use an input stream to provide the content- Specified by:
createAttachment
in interfaceTaskService
-
createAttachment
public Attachment createAttachment(String attachmentType, String taskId, String processInstanceId, String attachmentName, String attachmentDescription, String url)
Description copied from interface:TaskService
Add a new attachment to a task and/or a process instance and use an url as the content- Specified by:
createAttachment
in interfaceTaskService
-
getAttachmentContent
public InputStream getAttachmentContent(String attachmentId)
Description copied from interface:TaskService
Retrieve stream content of a particular attachment- Specified by:
getAttachmentContent
in interfaceTaskService
-
deleteAttachment
public void deleteAttachment(String attachmentId)
Description copied from interface:TaskService
Delete an attachment- Specified by:
deleteAttachment
in interfaceTaskService
-
deleteComments
public void deleteComments(String taskId, String processInstanceId)
Description copied from interface:TaskService
Removes all comments from the provided task and/or process instance- Specified by:
deleteComments
in interfaceTaskService
-
deleteComment
public void deleteComment(String commentId)
Description copied from interface:TaskService
Removes an individual comment with the given id.- Specified by:
deleteComment
in interfaceTaskService
-
getAttachment
public Attachment getAttachment(String attachmentId)
Description copied from interface:TaskService
Retrieve a particular attachment- Specified by:
getAttachment
in interfaceTaskService
-
getTaskAttachments
public List<Attachment> getTaskAttachments(String taskId)
Description copied from interface:TaskService
The list of attachments associated to a task- Specified by:
getTaskAttachments
in interfaceTaskService
-
getProcessInstanceAttachments
public List<Attachment> getProcessInstanceAttachments(String processInstanceId)
Description copied from interface:TaskService
The list of attachments associated to a process instance- Specified by:
getProcessInstanceAttachments
in interfaceTaskService
-
saveAttachment
public void saveAttachment(Attachment attachment)
Description copied from interface:TaskService
Update the name and description of an attachment- Specified by:
saveAttachment
in interfaceTaskService
-
getSubTasks
public List<org.flowable.task.api.Task> getSubTasks(String parentTaskId)
Description copied from interface:TaskService
The list of subtasks for this parent task- Specified by:
getSubTasks
in interfaceTaskService
-
getVariableInstance
public org.flowable.variable.api.persistence.entity.VariableInstance getVariableInstance(String taskId, String variableName)
Description copied from interface:TaskService
The variable. Searching for the variable is done in all scopes that are visible to the given task (including parent scopes). Returns null when no variable value is found with the given name.- Specified by:
getVariableInstance
in interfaceTaskService
- Parameters:
taskId
- id of task, cannot be null.variableName
- name of variable, cannot be null.- Returns:
- the variable or null if the variable is undefined.
-
getVariableInstanceLocal
public org.flowable.variable.api.persistence.entity.VariableInstance getVariableInstanceLocal(String taskId, String variableName)
Description copied from interface:TaskService
The variable for a task. Returns the variable when it is set for the task (and not searching parent scopes). Returns null when no variable is found with the given name.- Specified by:
getVariableInstanceLocal
in interfaceTaskService
- Parameters:
taskId
- id of task, cannot be null.variableName
- name of variable, cannot be null.- Returns:
- the variable or null if the variable is undefined.
-
getVariableInstances
public Map<String,org.flowable.variable.api.persistence.entity.VariableInstance> getVariableInstances(String taskId)
Description copied from interface:TaskService
All variables visible from the given task scope (including parent scopes).- Specified by:
getVariableInstances
in interfaceTaskService
- Parameters:
taskId
- id of task, cannot be null.- Returns:
- the variable instances or an empty map if no such variables are found.
-
getVariableInstances
public Map<String,org.flowable.variable.api.persistence.entity.VariableInstance> getVariableInstances(String taskId, Collection<String> variableNames)
Description copied from interface:TaskService
The variable values for all given variableNames, takes all variables into account which are visible from the given task scope (including parent scopes).- Specified by:
getVariableInstances
in interfaceTaskService
- Parameters:
taskId
- id of taskId, cannot be null.variableNames
- the collection of variable names that should be retrieved.- Returns:
- the variables or an empty map if no such variables are found.
-
getVariableInstancesLocal
public Map<String,org.flowable.variable.api.persistence.entity.VariableInstance> getVariableInstancesLocal(String taskId)
Description copied from interface:TaskService
All variable values that are defined in the task scope, without taking outer scopes into account. If you have many task local variables and you only need a few, consider usingTaskService.getVariableInstancesLocal(String, Collection)
for better performance.- Specified by:
getVariableInstancesLocal
in interfaceTaskService
- Parameters:
taskId
- id of task, cannot be null.- Returns:
- the variables or an empty map if no such variables are found.
-
getVariableInstancesLocal
public Map<String,org.flowable.variable.api.persistence.entity.VariableInstance> getVariableInstancesLocal(String taskId, Collection<String> variableNames)
Description copied from interface:TaskService
The variable values for all given variableNames that are defined in the given task's scope. (Does not searching parent scopes).- Specified by:
getVariableInstancesLocal
in interfaceTaskService
- Parameters:
taskId
- id of taskId, cannot be null.variableNames
- the collection of variable names that should be retrieved.- Returns:
- the variables or an empty map if no such variables are found.
-
getDataObjects
public Map<String,DataObject> getDataObjects(String taskId)
Description copied from interface:TaskService
All DataObjects visible from the given execution scope (including parent scopes).- Specified by:
getDataObjects
in interfaceTaskService
- Parameters:
taskId
- id of task, cannot be null.- Returns:
- the DataObjects or an empty map if no such variables are found.
-
getDataObjects
public Map<String,DataObject> getDataObjects(String taskId, String locale, boolean withLocalizationFallback)
Description copied from interface:TaskService
All DataObjects visible from the given task scope (including parent scopes).- Specified by:
getDataObjects
in interfaceTaskService
- Parameters:
taskId
- id of task, cannot be null.locale
- locale the DataObject name and description should be returned in (if available).withLocalizationFallback
- When true localization will fallback to more general locales if the specified locale is not found.- Returns:
- the DataObjects or an empty map if no DataObjects are found.
-
getDataObjects
public Map<String,DataObject> getDataObjects(String taskId, Collection<String> dataObjectNames)
Description copied from interface:TaskService
The DataObjects for all given dataObjectNames, takes all dataObjects into account which are visible from the given task scope (including parent scopes).- Specified by:
getDataObjects
in interfaceTaskService
- Parameters:
taskId
- id of task, cannot be null.dataObjectNames
- the collection of DataObject names that should be retrieved.- Returns:
- the DataObject or an empty map if no DataObjects are found.
-
getDataObjects
public Map<String,DataObject> getDataObjects(String taskId, Collection<String> dataObjectNames, String locale, boolean withLocalizationFallback)
Description copied from interface:TaskService
The DataObjects for all given dataObjectNames, takes all dataObjects into account which are visible from the given task scope (including parent scopes).- Specified by:
getDataObjects
in interfaceTaskService
- Parameters:
taskId
- id of task, cannot be null.dataObjectNames
- the collection of DataObject names that should be retrieved.locale
- locale the DataObject name and description should be returned in (if available).withLocalizationFallback
- When true localization will fallback to more general locales if the specified locale is not found.- Returns:
- the DataObjects or an empty map if no such dataObjects are found.
-
getDataObject
public DataObject getDataObject(String taskId, String dataObject)
Description copied from interface:TaskService
The DataObject. Searching for the DataObject is done in all scopes that are visible to the given task (including parent scopes). Returns null when no DataObject value is found with the given name.- Specified by:
getDataObject
in interfaceTaskService
- Parameters:
taskId
- id of task, cannot be null.dataObject
- name of DataObject, cannot be null.- Returns:
- the DataObject or null if the variable is undefined.
-
getDataObject
public DataObject getDataObject(String taskId, String dataObjectName, String locale, boolean withLocalizationFallback)
Description copied from interface:TaskService
The DataObject. Searching for the DataObject is done in all scopes that are visible to the given task (including parent scopes). Returns null when no DataObject value is found with the given name.- Specified by:
getDataObject
in interfaceTaskService
- Parameters:
taskId
- id of task, cannot be null.dataObjectName
- name of DataObject, cannot be null.locale
- locale the DataObject name and description should be returned in (if available).withLocalizationFallback
- When true localization will fallback to more general locales including the default locale of the JVM if the specified locale is not found.- Returns:
- the DataObject or null if the DataObject is undefined.
-
createTaskBuilder
public org.flowable.task.api.TaskBuilder createTaskBuilder()
Description copied from interface:TaskService
Create a builder for the task- Specified by:
createTaskBuilder
in interfaceTaskService
- Returns:
- task builder
-
getIdmIdentityService
protected org.flowable.idm.api.IdmIdentityService getIdmIdentityService()
-
createTaskCompletionBuilder
public org.flowable.task.api.TaskCompletionBuilder createTaskCompletionBuilder()
Description copied from interface:TaskService
Create a completion builder for the task- Specified by:
createTaskCompletionBuilder
in interfaceTaskService
- Returns:
- task completion builder
-
-