Title | Added | Status | Last reviewed |
---|---|---|---|
Tasklist Service |
v2.0.0 |
Active |
2018-11-14 |
Manages Task Instances.
- addTask(task:
TaskDetailsModel
):Observable
<
TaskDetailsModel
>
Adds a subtask (ie, a checklist task) to a parent task.- task:
TaskDetailsModel
- The task to add - Returns
Observable
<
TaskDetailsModel
>
- The subtask that was added
- task:
- assignTask(taskId:
string
, requestNode:any
):Observable
<
TaskDetailsModel
>
Assigns a task to a user or group.- taskId:
string
- The task to assign - requestNode:
any
- User or group to assign the task to - Returns
Observable
<
TaskDetailsModel
>
- Details of the assigned task
- taskId:
- assignTaskByUserId(taskId:
string
, userId:string
):Observable
<
TaskDetailsModel
>
Assigns a task to a user.- taskId:
string
- ID of the task to assign - userId:
string
- ID of the user to assign the task to - Returns
Observable
<
TaskDetailsModel
>
- Details of the assigned task
- taskId:
- attachFormToATask(taskId:
string
, formId:number
):Observable
<any>
Attaches a form to a task.- taskId:
string
- ID of the target task - formId:
number
- ID of the form to add - Returns
Observable
<any>
- Null response notifying when the operation is complete
- taskId:
- claimTask(taskId:
string
):Observable
<
TaskDetailsModel
>
Claims a task for the current user.- taskId:
string
- ID of the task to claim - Returns
Observable
<
TaskDetailsModel
>
- Details of the claimed task
- taskId:
- completeTask(taskId:
string
):Observable
<any>
Gives completed status to a task.- taskId:
string
- ID of the target task - Returns
Observable
<any>
- Null response notifying when the operation is complete
- taskId:
- createNewTask(task:
TaskDetailsModel
):Observable
<
TaskDetailsModel
>
Creates a new standalone task.- task:
TaskDetailsModel
- Details of the new task - Returns
Observable
<
TaskDetailsModel
>
- Details of the newly created task
- task:
- deleteForm(taskId:
string
):Observable
<
TaskDetailsModel
>
Deletes a form from a task.- taskId:
string
- Task id related to form - Returns
Observable
<
TaskDetailsModel
>
- Null response notifying when the operation is complete
- taskId:
- deleteTask(taskId:
string
):Observable
<
TaskDetailsModel
>
Deletes a subtask (ie, a checklist task) from a parent task.- taskId:
string
- The task to delete - Returns
Observable
<
TaskDetailsModel
>
- Null response notifying when the operation is complete
- taskId:
- fetchTaskAuditJsonById(taskId:
string
):Observable
<any>
Fetch the Task Audit information in JSON format- taskId:
string
- ID of the target task - Returns
Observable
<any>
- JSON data
- taskId:
- fetchTaskAuditPdfById(taskId:
string
):Observable
<
Blob
>
Fetches the Task Audit information in PDF format.- taskId:
string
- ID of the target task - Returns
Observable
<
Blob
>
- Binary PDF data
- taskId:
- findAllTaskByState(requestNode:
TaskQueryRequestRepresentationModel
, state?:string
):Observable
<
TaskListModel
>
Gets all tasks matching a query and state value.- requestNode:
TaskQueryRequestRepresentationModel
- Query to search for tasks. - state:
string
- (Optional) Task state. Can be "open" or "completed". - Returns
Observable
<
TaskListModel
>
- List of tasks
- requestNode:
- findAllTasksWithoutState(requestNode:
TaskQueryRequestRepresentationModel
):Observable
<
TaskListModel
>
Gets all tasks matching the supplied query but ignoring the task state.- requestNode:
TaskQueryRequestRepresentationModel
- Query to search for tasks - Returns
Observable
<
TaskListModel
>
- List of tasks
- requestNode:
- findTasksByState(requestNode:
TaskQueryRequestRepresentationModel
, state?:string
):Observable
<
TaskListModel
>
Gets tasks matching a query and state value.- requestNode:
TaskQueryRequestRepresentationModel
- Query to search for tasks - state:
string
- (Optional) Task state. Can be "open" or "completed". - Returns
Observable
<
TaskListModel
>
- List of tasks
- requestNode:
- getFilterForTaskById(taskId:
string
, filterList:FilterRepresentationModel
[]
):Observable
<
FilterRepresentationModel
>
Gets all the filters in the list that belong to a task.- taskId:
string
- ID of the target task - filterList:
FilterRepresentationModel
[]
- List of filters to search through - Returns
Observable
<
FilterRepresentationModel
>
- Filters belonging to the task
- taskId:
- getFormList():
Observable
<
Form
[]>
Gets all available reusable forms.- Returns
Observable
<
Form
[]>
- Array of form details
- Returns
- getTaskChecklist(id:
string
):Observable
<
TaskDetailsModel
[]>
Gets the checklist for a task.- id:
string
- ID of the target task - Returns
Observable
<
TaskDetailsModel
[]>
- Array of checklist task details
- id:
- getTaskDetails(taskId:
string
):Observable
<
TaskDetailsModel
>
Gets details for a task.- taskId:
string
- ID of the target task. - Returns
Observable
<
TaskDetailsModel
>
- Task details
- taskId:
- getTasks(requestNode:
TaskQueryRequestRepresentationModel
):Observable
<
TaskListModel
>
Gets all the tasks matching the supplied query.- requestNode:
TaskQueryRequestRepresentationModel
- Query to search for tasks - Returns
Observable
<
TaskListModel
>
- List of tasks
- requestNode:
- getTotalTasks(requestNode:
TaskQueryRequestRepresentationModel
):Observable
<any>
Gets the total number of the tasks found by a query.- requestNode:
TaskQueryRequestRepresentationModel
- Query to search for tasks - Returns
Observable
<any>
- Number of tasks
- requestNode:
- isTaskRelatedToFilter(taskId:
string
, filterModel:FilterRepresentationModel
):Observable
<
FilterRepresentationModel
>
Checks if a taskId is filtered with the given filter.- taskId:
string
- ID of the target task - filterModel:
FilterRepresentationModel
- The filter you want to check - Returns
Observable
<
FilterRepresentationModel
>
- The filter if it is related or null otherwise
- taskId:
- unclaimTask(taskId:
string
):Observable
<
TaskDetailsModel
>
Un-claims a task for the current user.- taskId:
string
- ID of the task to unclaim - Returns
Observable
<
TaskDetailsModel
>
- Null response notifying when the operation is complete
- taskId:
- updateTask(taskId:
string
, updated:TaskUpdateRepresentation
):Observable
<
TaskDetailsModel
>
Updates the details (name, description, due date) for a task.- taskId:
string
- ID of the task to update - updated:
TaskUpdateRepresentation
- Data to update the task (as aTaskUpdateRepresentation
instance). - Returns
Observable
<
TaskDetailsModel
>
- Updated task details
- taskId:
Several of the methods return one or more TaskDetailsModel
instances corresponding
to tasks or subtasks matched by a query of some kind. For example, getTaskDetails
could be used as shown below:
const taskInstanceId = '15303';
this.tasklistService.getTaskDetails(taskInstanceId).subscribe( (taskInstance: TaskDetailsModel) => {
console.log('TaskInstance: ', taskInstance);
}, error => {
console.log('Error: ', error);
});
The resulting TaskDetailsModel
object contains information like the following:
adhocTaskCanBeReassigned: false
assignee: UserProcessModel {pictureId: null, id: 1, email: "[email protected]", firstName: null, lastName: "Administrator"}
category: null
created: Wed Oct 11 2017 09:07:14 GMT+0100 (BST) {}
description: null
dueDate: null
duration: null
endDate: null
executionId: "11337"
formKey: "9"
id: "15303"
initiatorCanCompleteTask: false
involvedPeople: []
managerOfCandidateGroup: false
memberOfCandidateGroup: false
memberOfCandidateUsers: false
name: "Clarify Invoice - Invoice-20302.pdf"
parentTaskId: null
parentTaskName: null
priority: 50
processDefinitionCategory: "http://www.activiti.org/processdef"
processDefinitionDeploymentId: "18"
processDefinitionDescription: "This is a simple invoice approval process that allows a person to assign a dedicated approver for the the invoice. It will then be routed to the Accounting department for payment preparation. Once payment is prepared the invoice will be stored in a specific folder and an email notification will be sent."
processDefinitionId: "InvoiceApprovalProcess:2:21"
processDefinitionKey: "InvoiceApprovalProcess"
processDefinitionName: "Invoice Approval Process"
processDefinitionVersion: 2
processInstanceId: "11337"
processInstanceName: null
processInstanceStartUserId: "1"
taskDefinitionKey: "clarifyInvoice"
Some of the methods run a search query contained in a TaskQueryRequestRepresentationModel
and
return the matched tasks. Below is an example of how you might run a query using getTasks
:
const taskQuery: TaskQueryRequestRepresentationModel = {
appDefinitionId: '2',
processInstanceId: null,
processDefinitionId: null,
text: null,
assignment: null,
state: 'open',
sort: 'created_asc',
page: 0,
size: 5,
start: null
};
this.tasklistService.getTasks(taskQuery).subscribe( (taskListModel: TaskListModel) => {
console.log('Task List Model: ', taskListModel);
}, error => {
console.log('Error: ', error);
});
In this example, the query specifies all Task Instances for the process app with
ID 2. Setting the size
property to 5 ensures the query will return no more than
five task instances in the results.
You can use various query parameters to narrow down the scope of the results.
If you are only interested in task instances related to a specific process instance,
then you can set the processInstanceId
accordingly. If you want all tasks related to
a type of process then you can use processDefinitionId
.
Use the state
property to indicate that you want only "completed" or "open" tasks (this
defaults to "open" if you leave it undefined).
The assignment
property filters tasks based on how they are assigned (or not assigned yet).
Use assignee
if you are interested in tasks that are assigned to a user. If you want to see
pooled tasks (i.e. tasks that needs to be claimed by a user), then use candidate
.
A successful query returns a TaskListModel
with the data
property set to an array of
TaskDetailsModel
:
data:
0: {id: "75010", name: "Approve Invoice - Invoice-10202.pdf", description: null, category: null, assignee: {…}, …}
1: {id: "74746", name: "Verify with the person that did the purchase", description: null, category: "2", assignee: {…}, …}
2: {id: "74745", name: "Double check invoice amount", description: null, category: "2", assignee: {…}, …}
3: {id: "20686", name: "Sample checklist task 1", description: null, category: "2", assignee: {…}, …}
4: {id: "15303", name: "Clarify Invoice - Invoice-20302.pdf", description: null, category: null, assignee: {…}, …}
length: 5
size: 5
start: 0
total: 10
The total
property indicates that actual number of tasks that were found, but the size
property
limited the found set to five items.
import { TaskListService, TaskDetailsModel, TaskQueryRequestRepresentationModel, TaskListModel, Form } from '@alfresco/adf-process-services';
import { TaskUpdateRepresentation } from '@alfresco/js-api';
export class SomePageComponent implements OnInit {
constructor(private tasklistService: TaskListService) {
}