Class TaskServiceImpl

    • Constructor Detail

      • TaskServiceImpl

        public TaskServiceImpl()
    • Method Detail

      • saveTask

        public void saveTask​(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 interface TaskService
        Parameters:
        task - the task, 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 interface TaskService
        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 interface TaskService
        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 interface TaskService
        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 interface TaskService
        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 interface TaskService
        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 interface TaskService
        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 interface TaskService
        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 interface TaskService
        Parameters:
        taskId - id of the task, cannot be null.
        userId - of the person that is receiving ownership.
      • 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 interface TaskService
        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 (@see IdentityLinkType).
      • 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 interface TaskService
        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 (@see IdentityLinkType).
      • 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 interface TaskService
        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 (@see IdentityLinkType).
      • 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 interface TaskService
        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 (@see IdentityLinkType).
      • 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 with TaskService.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 interface TaskService
        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.
      • complete

        public void complete​(String taskId)
        Description copied from interface: TaskService
        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 the assignee.
        Specified by:
        complete in interface TaskService
        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
        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 the assignee and the required task parameters have been provided.
        Specified by:
        complete in interface TaskService
        Parameters:
        taskId - the id of the task to complete, cannot be null.
        variables - task parameters. May be null or empty.
      • completeWithVariablesInReturn

        public VariableMap completeWithVariablesInReturn​(String taskId,
                                                         Map<String,​Object> variables,
                                                         boolean deserializeValues)
        Description copied from interface: TaskService
        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 the assignee and the required task parameters have been provided.
        Specified by:
        completeWithVariablesInReturn in interface TaskService
        Parameters:
        taskId - the id of the task to complete, cannot be null.
        variables - task parameters. May be null or empty.
        deserializeValues - if false, returned SerializableValues 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
      • 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 interface TaskService
        Parameters:
        taskId - id of the task, cannot be null.
        priority - the new priority for the task.
      • getVariablesTyped

        public VariableMap getVariablesTyped​(String taskId,
                                             Collection<String> variableNames,
                                             boolean deserializeValues)
        Description copied from interface: TaskService
        Get values for all given variableName
        Specified by:
        getVariablesTyped in interface TaskService
        Parameters:
        taskId - the id of the task
        variableNames - only fetch variables whose names are in the collection.
        deserializeValues - if false, SerializableValues will not be deserialized.
      • getVariablesLocalTyped

        public VariableMap getVariablesLocalTyped​(String taskId,
                                                  Collection<String> variableNames,
                                                  boolean deserializeValues)
        Description copied from interface: TaskService
        Get values for all given variableName. Only search in the local task scope.
        Specified by:
        getVariablesLocalTyped in interface TaskService
        Parameters:
        taskId - the id of the task
        variableNames - only fetch variables whose names are in the collection.
        deserializeValues - if false, SerializableValues will not be deserialized.
      • 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 interface TaskService
      • getVariableTyped

        public <T extends TypedValue> T getVariableTyped​(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:
        getVariableTyped in interface TaskService
        Parameters:
        taskId - the id of the task
        variableName - the name of the variable to fetch
        Returns:
        the TypedValue for the variable or 'null' in case no such variable exists.
      • getVariableTyped

        public <T extends TypedValue> T getVariableTyped​(String taskId,
                                                         String variableName,
                                                         boolean deserializeValue)
        Description copied from interface: TaskService
        Get a variables and search in the task scope and if available also the execution scopes.
        Specified by:
        getVariableTyped in interface TaskService
        Parameters:
        taskId - the id of the task
        variableName - the name of the variable to fetch
        deserializeValue - if false a, SerializableValue will not be deserialized.
        Returns:
        the TypedValue for the variable or 'null' in case no such variable exists.
      • getVariableLocalTyped

        public <T extends TypedValue> T getVariableLocalTyped​(String taskId,
                                                              String variableName)
        Description copied from interface: TaskService
        Get a variables and only search in the task scope.
        Specified by:
        getVariableLocalTyped in interface TaskService
        Parameters:
        taskId - the id of the task
        variableName - the name of the variable to fetch
        Returns:
        the TypedValue for the variable or 'null' in case no such variable exists.
      • getVariableLocalTyped

        public <T extends TypedValue> T getVariableLocalTyped​(String taskId,
                                                              String variableName,
                                                              boolean deserializeValue)
        Description copied from interface: TaskService
        Get a variables and only search in the task scope.
        Specified by:
        getVariableLocalTyped in interface TaskService
        Parameters:
        taskId - the id of the task
        variableName - the name of the variable to fetch
        deserializeValue - if false a, SerializableValue will not be deserialized.
        Returns:
        the TypedValue for the variable or 'null' in case no such variable exists.
      • getVariableTyped

        protected <T extends TypedValue> T getVariableTyped​(String taskId,
                                                            String variableName,
                                                            boolean isLocal,
                                                            boolean deserializeValue)
      • 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 interface TaskService
      • 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 interface TaskService
      • 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 interface TaskService
      • 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 interface TaskService
      • setVariables

        protected void setVariables​(String taskId,
                                    Map<String,​? extends Object> variables,
                                    boolean local)
      • 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 interface TaskService
      • 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 interface TaskService
      • 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 interface TaskService
      • 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 interface TaskService
      • getTaskEvents

        public List<Event> getTaskEvents​(String taskId)
        Description copied from interface: TaskService

        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 to true.

        Specified by:
        getTaskEvents in interface TaskService
        See Also:
        HistoryService.createUserOperationLogQuery()
      • 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 please use method in runtime service to operate on process instance. Either taskId or processInstanceId has to be provided
        Specified by:
        createAttachment in interface TaskService
        Parameters:
        attachmentType - - name of the attachment, can be null
        taskId - - task that should have an attachment
        processInstanceId - - id of a process to use if task id is null
        attachmentName - - name of the attachment, can be null
        attachmentDescription - - full text description, can be null
        content - - byte array with content of attachment
      • 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 please use method in runtime service to operate on process instance Either taskId or processInstanceId has to be provided
        Specified by:
        createAttachment in interface TaskService
        Parameters:
        attachmentType - - name of the attachment, can be null
        taskId - - task that should have an attachment
        processInstanceId - - id of a process to use if task id is null
        attachmentName - - name of the attachment, can be null
        attachmentDescription - - full text description, can be null
        url - - url of the attachment, can be null
      • handleBpmnError

        public void handleBpmnError​(String taskId,
                                    String errorCode)
        Description copied from interface: TaskService
        Signals that a business error appears, which should be handled by the process engine.
        Specified by:
        handleBpmnError in interface TaskService
        Parameters:
        taskId - the id of an existing active task
        errorCode - the error code of the corresponding bmpn error
      • handleEscalation

        public void handleEscalation​(String taskId,
                                     String escalationCode)
        Description copied from interface: TaskService
        Signals that an escalation appears, which should be handled by the process engine.
        Specified by:
        handleEscalation in interface TaskService
        Parameters:
        taskId - the id of an existing active task
        escalationCode - the escalation code of the corresponding escalation
      • handleEscalation

        public void handleEscalation​(String taskId,
                                     String escalationCode,
                                     Map<String,​Object> variables)
        Description copied from interface: TaskService
        Signals that an escalation appears, which should be handled by the process engine.
        Specified by:
        handleEscalation in interface TaskService
        Parameters:
        taskId - the id of an existing active task
        escalationCode - the escalation code of the corresponding escalation
        variables - the variables to pass to the execution