public class TaskServiceImpl extends ServiceImpl implements TaskService
commandExecutor
Constructor and Description |
---|
TaskServiceImpl() |
Modifier and Type | Method and Description |
---|---|
void |
addCandidateGroup(String taskId,
String groupId)
Convenience shorthand for
TaskService.addGroupIdentityLink(String, String, String) ; with type IdentityLinkType.CANDIDATE |
void |
addCandidateUser(String taskId,
String userId)
Convenience shorthand for
TaskService.addUserIdentityLink(String, String, String) ; with type IdentityLinkType.CANDIDATE |
void |
addComment(String taskId,
String processInstance,
String message)
Add a comment to a task and/or process instance.
|
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 |
claim(String taskId,
String userId)
Claim responsibility for a task:
the given user is made
assignee 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.
|
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 provided
|
Comment |
createComment(String taskId,
String processInstance,
String message)
Creates a comment to a task and/or process instance and returns the comment.
|
NativeTaskQuery |
createNativeTaskQuery()
Returns a new
|
TaskQuery |
createTaskQuery()
Returns a new
TaskQuery that can be used to dynamically query tasks. |
TaskReport |
createTaskReport()
Instantiate a task report
|
void |
delegateTask(String taskId,
String userId)
Delegates the task to another user.
|
void |
deleteAttachment(String attachmentId)
Delete an attachment
|
void |
deleteCandidateGroup(String taskId,
String groupId)
Convenience shorthand for
TaskService.deleteGroupIdentityLink(String, String, String) ; with type IdentityLinkType.CANDIDATE |
void |
deleteCandidateUser(String taskId,
String userId)
Convenience shorthand for
TaskService.deleteUserIdentityLink(String, String, String) ; with type IdentityLinkType.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 id
|
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 attachment
|
InputStream |
getAttachmentContent(String attachmentId)
Retrieve stream content of a particular attachment
|
List<IdentityLink> |
getIdentityLinksForTask(String taskId)
Retrieves the
IdentityLink s associated with the given task. |
List<Attachment> |
getProcessInstanceAttachments(String processInstanceId)
The list of attachments associated to a process instance
|
List<Comment> |
getProcessInstanceComments(String processInstanceId)
The comments related to the given process instance.
|
List<Task> |
getSubTasks(String parentTaskId)
The list of subtasks for this parent task
|
Attachment |
getTaskAttachment(String taskId,
String attachmentId)
Retrieve a particular attachment to the given task id and attachment id
|
InputStream |
getTaskAttachmentContent(String taskId,
String attachmentId)
Retrieve stream content of a particular attachment to the given task id and attachment id
|
List<Attachment> |
getTaskAttachments(String taskId)
The list of attachments associated to a task
|
Comment |
getTaskComment(String taskId,
String commentId)
Retrieve a particular task comment
|
List<Comment> |
getTaskComments(String taskId)
The comments related to the given task.
|
List<Event> |
getTaskEvents(String taskId)
The all events related to the given task.
|
Object |
getVariable(String executionId,
String variableName)
Get a variables and search in the task scope and if available also the execution scopes.
|
Object |
getVariableLocal(String executionId,
String variableName)
Get a variables and only search in the task scope.
|
<T extends org.camunda.bpm.engine.variable.value.TypedValue> |
getVariableLocalTyped(String taskId,
String variableName)
Get a variables and only search in the task scope.
|
<T extends org.camunda.bpm.engine.variable.value.TypedValue> |
getVariableLocalTyped(String taskId,
String variableName,
boolean deserializeValue)
Get a variables and only search in the task scope.
|
org.camunda.bpm.engine.variable.VariableMap |
getVariables(String executionId)
Get all variables and search in the task scope and if available also the execution scopes.
|
org.camunda.bpm.engine.variable.VariableMap |
getVariables(String executionId,
Collection<String> variableNames)
Get values for all given variableNames
|
org.camunda.bpm.engine.variable.VariableMap |
getVariablesLocal(String taskId)
Get all variables and search only in the task scope.
|
org.camunda.bpm.engine.variable.VariableMap |
getVariablesLocal(String executionId,
Collection<String> variableNames)
Get a variable on a task
|
org.camunda.bpm.engine.variable.VariableMap |
getVariablesLocalTyped(String taskId)
Get all variables and search only in the task scope.
|
org.camunda.bpm.engine.variable.VariableMap |
getVariablesLocalTyped(String taskId,
boolean deserializeValues)
Get all variables and search only in the task scope.
|
org.camunda.bpm.engine.variable.VariableMap |
getVariablesLocalTyped(String executionId,
Collection<String> variableNames,
boolean deserializeValues)
Get values for all given variableName.
|
org.camunda.bpm.engine.variable.VariableMap |
getVariablesTyped(String executionId)
Get all variables and search in the task scope and if available also the execution scopes.
|
org.camunda.bpm.engine.variable.VariableMap |
getVariablesTyped(String taskId,
boolean deserializeValues)
Get all variables and search in the task scope and if available also the execution scopes.
|
org.camunda.bpm.engine.variable.VariableMap |
getVariablesTyped(String executionId,
Collection<String> variableNames,
boolean deserializeValues)
Get values for all given variableName
|
<T extends org.camunda.bpm.engine.variable.value.TypedValue> |
getVariableTyped(String taskId,
String variableName)
Get a variables and search in the task scope and if available also the execution scopes.
|
<T extends org.camunda.bpm.engine.variable.value.TypedValue> |
getVariableTyped(String taskId,
String variableName,
boolean deserializeValue)
Get a variables and search in the task scope and if available also the execution scopes.
|
protected <T extends org.camunda.bpm.engine.variable.value.TypedValue> |
getVariableTyped(String taskId,
String variableName,
boolean isLocal,
boolean deserializeValue) |
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 id
|
void |
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 attachment
|
void |
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 executionId,
String variableName,
Object value)
Set variable on a task.
|
void |
setVariableLocal(String executionId,
String variableName,
Object value)
Set variable on a task.
|
void |
setVariables(String executionId,
Map<String,? extends Object> variables)
Set variables on a task.
|
protected void |
setVariables(String executionId,
Map<String,? extends Object> variables,
boolean local) |
void |
setVariablesLocal(String executionId,
Map<String,? extends Object> variables)
Set variables on a task.
|
void |
updateVariables(String taskId,
Map<String,? extends Object> modifications,
Collection<String> deletions) |
protected void |
updateVariables(String taskId,
Map<String,? extends Object> modifications,
Collection<String> deletions,
boolean local) |
void |
updateVariablesLocal(String taskId,
Map<String,? extends Object> modifications,
Collection<String> deletions) |
getCommandExecutor, setCommandExecutor
public Task newTask()
TaskService
TaskService.saveTask(Task)
'manually'.newTask
in interface TaskService
public Task newTask(String taskId)
TaskService
newTask
in interface TaskService
public void saveTask(Task task)
TaskService
saveTask
in interface TaskService
task
- the task, cannot be null.public void deleteTask(String taskId)
TaskService
deleteTask
in interface TaskService
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.public void deleteTasks(Collection<String> taskIds)
TaskService
deleteTasks
in interface TaskService
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.public void deleteTask(String taskId, boolean cascade)
TaskService
deleteTask
in interface TaskService
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.public void deleteTasks(Collection<String> taskIds, boolean cascade)
TaskService
deleteTasks
in interface TaskService
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.public void deleteTask(String taskId, String deleteReason)
TaskService
deleteTask
in interface TaskService
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.public void deleteTasks(Collection<String> taskIds, String deleteReason)
TaskService
deleteTasks
in interface TaskService
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.public void setAssignee(String taskId, String userId)
TaskService
setAssignee
in interface TaskService
taskId
- id of the task, cannot be null.userId
- id of the user to use as assignee.public void setOwner(String taskId, String userId)
TaskService
setOwner
in interface TaskService
taskId
- id of the task, cannot be null.userId
- of the person that is receiving ownership.public void addCandidateUser(String taskId, String userId)
TaskService
TaskService.addUserIdentityLink(String, String, String)
; with type IdentityLinkType.CANDIDATE
addCandidateUser
in interface TaskService
taskId
- id of the task, cannot be null.userId
- id of the user to use as candidate, cannot be null.public void addCandidateGroup(String taskId, String groupId)
TaskService
TaskService.addGroupIdentityLink(String, String, String)
; with type IdentityLinkType.CANDIDATE
addCandidateGroup
in interface TaskService
taskId
- id of the task, cannot be null.groupId
- id of the group to use as candidate, cannot be null.public void addUserIdentityLink(String taskId, String userId, String identityLinkType)
TaskService
addUserIdentityLink
in interface TaskService
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
).public void addGroupIdentityLink(String taskId, String groupId, String identityLinkType)
TaskService
addGroupIdentityLink
in interface TaskService
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
).public void deleteCandidateGroup(String taskId, String groupId)
TaskService
TaskService.deleteGroupIdentityLink(String, String, String)
; with type IdentityLinkType.CANDIDATE
deleteCandidateGroup
in interface TaskService
taskId
- id of the task, cannot be null.groupId
- id of the group to use as candidate, cannot be null.public void deleteCandidateUser(String taskId, String userId)
TaskService
TaskService.deleteUserIdentityLink(String, String, String)
; with type IdentityLinkType.CANDIDATE
deleteCandidateUser
in interface TaskService
taskId
- id of the task, cannot be null.userId
- id of the user to use as candidate, cannot be null.public void deleteGroupIdentityLink(String taskId, String groupId, String identityLinkType)
TaskService
deleteGroupIdentityLink
in interface TaskService
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
).public void deleteUserIdentityLink(String taskId, String userId, String identityLinkType)
TaskService
deleteUserIdentityLink
in interface TaskService
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
).public List<IdentityLink> getIdentityLinksForTask(String taskId)
TaskService
IdentityLink
s associated with the given task.
Such an IdentityLink
informs how a certain identity (eg. group or user)
is associated with a certain task (eg. as candidate, assignee, etc.)getIdentityLinksForTask
in interface TaskService
public void claim(String taskId, String userId)
TaskService
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.claim
in interface TaskService
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.public void complete(String taskId)
TaskService
assignee
.complete
in interface TaskService
taskId
- the id of the task to complete, cannot be null.public void complete(String taskId, Map<String,Object> variables)
TaskService
assignee
and the required task parameters have been provided.complete
in interface TaskService
taskId
- the id of the task to complete, cannot be null.variables
- task parameters. May be null or empty.public void delegateTask(String taskId, String userId)
TaskService
assignee
is set
and the delegation state
is set to
DelegationState.PENDING
.
If no owner is set on the task, the owner is set to the current
assignee
of the task.
The new assignee must use TaskService.resolveTask(String)
to report back to the owner.
Only the owner can complete
the task.delegateTask
in interface TaskService
taskId
- The id of the task that will be delegated.userId
- The id of the user that will be set as assignee.public void resolveTask(String taskId)
TaskService
assignee
is done with the task
delegated
to her and that it can be sent back to the owner
.
Can only be called when this task is DelegationState.PENDING
delegation.
After this method returns, the delegation state
is set to DelegationState.RESOLVED
and the task can be
completed
.resolveTask
in interface TaskService
taskId
- the id of the task to resolve, cannot be null.public void resolveTask(String taskId, Map<String,Object> variables)
TaskService
assignee
is done with the task
delegated
to her and that it can be sent back to the owner
with the provided variables.
Can only be called when this task is DelegationState.PENDING
delegation.
After this method returns, the delegation state
is set to DelegationState.RESOLVED
and the task can be
completed
.resolveTask
in interface TaskService
public void setPriority(String taskId, int priority)
TaskService
setPriority
in interface TaskService
taskId
- id of the task, cannot be null.priority
- the new priority for the task.public TaskQuery createTaskQuery()
TaskService
TaskQuery
that can be used to dynamically query tasks.createTaskQuery
in interface TaskService
public NativeTaskQuery createNativeTaskQuery()
TaskService
createNativeTaskQuery
in interface TaskService
public org.camunda.bpm.engine.variable.VariableMap getVariables(String executionId)
TaskService
TaskService.getVariables(String, Collection)
for better performance.getVariables
in interface TaskService
public org.camunda.bpm.engine.variable.VariableMap getVariablesTyped(String executionId)
TaskService
TaskService.getVariables(String, Collection)
for better performance.getVariablesTyped
in interface TaskService
executionId
- the id of the taskpublic org.camunda.bpm.engine.variable.VariableMap getVariablesTyped(String taskId, boolean deserializeValues)
TaskService
TaskService.getVariables(String, Collection)
for better performance.getVariablesTyped
in interface TaskService
taskId
- the id of the taskdeserializeValues
- if false, SerializableValues
will not be deserialized.public org.camunda.bpm.engine.variable.VariableMap getVariablesLocal(String taskId)
TaskService
TaskService.getVariablesLocal(String, Collection)
for better performance.getVariablesLocal
in interface TaskService
public org.camunda.bpm.engine.variable.VariableMap getVariablesLocalTyped(String taskId)
TaskService
TaskService.getVariablesLocal(String, Collection)
for better performance.getVariablesLocalTyped
in interface TaskService
taskId
- the id of the taskpublic org.camunda.bpm.engine.variable.VariableMap getVariablesLocalTyped(String taskId, boolean deserializeValues)
TaskService
TaskService.getVariablesLocal(String, Collection)
for better performance.getVariablesLocalTyped
in interface TaskService
taskId
- the id of the taskdeserializeValues
- if false, SerializableValues
will not be deserialized.public org.camunda.bpm.engine.variable.VariableMap getVariables(String executionId, Collection<String> variableNames)
TaskService
getVariables
in interface TaskService
public org.camunda.bpm.engine.variable.VariableMap getVariablesTyped(String executionId, Collection<String> variableNames, boolean deserializeValues)
TaskService
getVariablesTyped
in interface TaskService
executionId
- the id of the taskvariableNames
- only fetch variables whose names are in the collection.deserializeValues
- if false, SerializableValues
will not be deserialized.public org.camunda.bpm.engine.variable.VariableMap getVariablesLocal(String executionId, Collection<String> variableNames)
TaskService
getVariablesLocal
in interface TaskService
public org.camunda.bpm.engine.variable.VariableMap getVariablesLocalTyped(String executionId, Collection<String> variableNames, boolean deserializeValues)
TaskService
getVariablesLocalTyped
in interface TaskService
executionId
- the id of the taskvariableNames
- only fetch variables whose names are in the collection.deserializeValues
- if false, SerializableValues
will not be deserialized.public Object getVariable(String executionId, String variableName)
TaskService
getVariable
in interface TaskService
public Object getVariableLocal(String executionId, String variableName)
TaskService
getVariableLocal
in interface TaskService
public <T extends org.camunda.bpm.engine.variable.value.TypedValue> T getVariableTyped(String taskId, String variableName)
TaskService
getVariableTyped
in interface TaskService
taskId
- the id of the taskvariableName
- the name of the variable to fetchpublic <T extends org.camunda.bpm.engine.variable.value.TypedValue> T getVariableTyped(String taskId, String variableName, boolean deserializeValue)
TaskService
getVariableTyped
in interface TaskService
taskId
- the id of the taskvariableName
- the name of the variable to fetchdeserializeValue
- if false a, SerializableValue
will not be deserialized.public <T extends org.camunda.bpm.engine.variable.value.TypedValue> T getVariableLocalTyped(String taskId, String variableName)
TaskService
getVariableLocalTyped
in interface TaskService
taskId
- the id of the taskvariableName
- the name of the variable to fetchpublic <T extends org.camunda.bpm.engine.variable.value.TypedValue> T getVariableLocalTyped(String taskId, String variableName, boolean deserializeValue)
TaskService
getVariableLocalTyped
in interface TaskService
taskId
- the id of the taskvariableName
- the name of the variable to fetchdeserializeValue
- if false a, SerializableValue
will not be deserialized.protected <T extends org.camunda.bpm.engine.variable.value.TypedValue> T getVariableTyped(String taskId, String variableName, boolean isLocal, boolean deserializeValue)
public void setVariable(String executionId, String variableName, Object value)
TaskService
setVariable
in interface TaskService
public void setVariableLocal(String executionId, String variableName, Object value)
TaskService
setVariableLocal
in interface TaskService
public void setVariables(String executionId, Map<String,? extends Object> variables)
TaskService
setVariables
in interface TaskService
public void setVariablesLocal(String executionId, Map<String,? extends Object> variables)
TaskService
setVariablesLocal
in interface TaskService
protected void setVariables(String executionId, Map<String,? extends Object> variables, boolean local)
public void updateVariablesLocal(String taskId, Map<String,? extends Object> modifications, Collection<String> deletions)
public void updateVariables(String taskId, Map<String,? extends Object> modifications, Collection<String> deletions)
protected void updateVariables(String taskId, Map<String,? extends Object> modifications, Collection<String> deletions, boolean local)
public void removeVariable(String taskId, String variableName)
TaskService
removeVariable
in interface TaskService
public void removeVariableLocal(String taskId, String variableName)
TaskService
removeVariableLocal
in interface TaskService
public void removeVariables(String taskId, Collection<String> variableNames)
TaskService
removeVariables
in interface TaskService
public void removeVariablesLocal(String taskId, Collection<String> variableNames)
TaskService
removeVariablesLocal
in interface TaskService
public void addComment(String taskId, String processInstance, String message)
TaskService
addComment
in interface TaskService
public Comment createComment(String taskId, String processInstance, String message)
TaskService
createComment
in interface TaskService
public List<Comment> getTaskComments(String taskId)
TaskService
getTaskComments
in interface TaskService
public Comment getTaskComment(String taskId, String commentId)
TaskService
getTaskComment
in interface TaskService
public List<Event> getTaskEvents(String taskId)
TaskService
The all events related to the given task.
As of Camunda BPM 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
.
getTaskEvents
in interface TaskService
HistoryService.createUserOperationLogQuery()
public List<Comment> getProcessInstanceComments(String processInstanceId)
TaskService
getProcessInstanceComments
in interface TaskService
public Attachment createAttachment(String attachmentType, String taskId, String processInstanceId, String attachmentName, String attachmentDescription, InputStream content)
TaskService
createAttachment
in interface TaskService
attachmentType
- - name of the attachment, can be nulltaskId
- - task that should have an attachmentprocessInstanceId
- - id of a process to use if task id is nullattachmentName
- - name of the attachment, can be nullattachmentDescription
- - full text description, can be nullcontent
- - byte array with content of attachmentpublic Attachment createAttachment(String attachmentType, String taskId, String processInstanceId, String attachmentName, String attachmentDescription, String url)
TaskService
createAttachment
in interface TaskService
attachmentType
- - name of the attachment, can be nulltaskId
- - task that should have an attachmentprocessInstanceId
- - id of a process to use if task id is nullattachmentName
- - name of the attachment, can be nullattachmentDescription
- - full text description, can be nullurl
- - url of the attachment, can be nullpublic InputStream getAttachmentContent(String attachmentId)
TaskService
getAttachmentContent
in interface TaskService
public InputStream getTaskAttachmentContent(String taskId, String attachmentId)
TaskService
getTaskAttachmentContent
in interface TaskService
public void deleteAttachment(String attachmentId)
TaskService
deleteAttachment
in interface TaskService
public void deleteTaskAttachment(String taskId, String attachmentId)
TaskService
deleteTaskAttachment
in interface TaskService
public Attachment getAttachment(String attachmentId)
TaskService
getAttachment
in interface TaskService
public Attachment getTaskAttachment(String taskId, String attachmentId)
TaskService
getTaskAttachment
in interface TaskService
public List<Attachment> getTaskAttachments(String taskId)
TaskService
getTaskAttachments
in interface TaskService
public List<Attachment> getProcessInstanceAttachments(String processInstanceId)
TaskService
getProcessInstanceAttachments
in interface TaskService
public void saveAttachment(Attachment attachment)
TaskService
saveAttachment
in interface TaskService
public List<Task> getSubTasks(String parentTaskId)
TaskService
getSubTasks
in interface TaskService
public TaskReport createTaskReport()
TaskService
createTaskReport
in interface TaskService
Copyright © 2019. All rights reserved.