# GetTaskStatusNodes Method

## Overloads

| [GetTaskStatusNodes(List<TaskStatusNodeRequest>, TaskStatusFilter, TaskStatusScope)](https://help.qlik.com/en-US/qlikview-developer/September2026/Subsystems/QMSAPIref/Content/PIX.Services.V12.Api8.IQMS8.GetTaskStatusNodes.htm#PIX_Services_V12_Api8_IQMS8_GetTaskStatusNodes_System_Collections_Generic_List_PIX_QMSAPI_DataObjects_TaskStatusNodeRequest__PIX_QMSAPI_DataObjects_TaskStatusFilter_PIX_QMSAPI_DataObjects_TaskStatusScope_) |  | Gets the task status nodes. |
| --- | --- | --- |

[](https://help.qlik.com/en-US/qlikview-developer/Subsystems/QMSAPIref/Content/PIX.Services.V12.Api8.IQMS8.GetTaskStatusNodes.htm) [](https://help.qlik.com/en-US/qlikview-developer/Subsystems/QMSAPIref/Content/PIX.Services.V12.Api8.IQMS8.GetTaskStatusNodes.htm)

## GetTaskStatusNodes(List&lt;TaskStatusNodeRequest&gt;, TaskStatusFilter, TaskStatusScope)

Gets the task status nodes.

### Declaration

```

          List<TaskStatusNode> GetTaskStatusNodes(List<TaskStatusNodeRequest> taskStatusNodeRequests, TaskStatusFilter filter, TaskStatusScope scope)
    
  
```

### Parameters

| Type | Name | Description |
| --- | --- | --- |
| System.Collections.Generic.List&lt;[TaskStatusNodeRequest](https://help.qlik.com/en-US/qlikview-developer/September2026/Subsystems/QMSAPIref/Content/PIX.QMSAPI.DataObjects.TaskStatusNodeRequest.htm)&gt; | taskStatusNodeRequests | The task status node requests. |
| [TaskStatusFilter](https://help.qlik.com/en-US/qlikview-developer/September2026/Subsystems/QMSAPIref/Content/PIX.QMSAPI.DataObjects.TaskStatusFilter.htm) | filter | The filter to be used |
| [TaskStatusScope](https://help.qlik.com/en-US/qlikview-developer/September2026/Subsystems/QMSAPIref/Content/PIX.QMSAPI.DataObjects.TaskStatusScope.htm) | scope | The scope. |

### Returns

| Type | Description |
| --- | --- |
| System.Collections.Generic.List&lt;[TaskStatusNode](https://help.qlik.com/en-US/qlikview-developer/September2026/Subsystems/QMSAPIref/Content/PIX.QMSAPI.DataObjects.TaskStatusNode.htm)&gt; | A list of matching TaskStatusNodes |

### Remarks

Return a type depending on whether or not QDS ID and/or category name is specified, but never return a type that is higher up in the type chain than the root type; QDS &gt; Category &gt; Task &gt; Dependent Task

Using DependentTask as root type in the request list will produce an error since it is implicitly a child element.

| QDS IDspecified | Category namespecified<br>Task IDspecified<br>Root type:QDS<br>Root type:Category<br>Root type:Task |
| --- | --- |
| No | NoNoQDSCategoryTask |
| Yes | NoNoCategoryCategoryTask |
| No | YesNo---TaskTask |
| Yes | YesNoTaskTaskTask |
| No | NoYes------Dep.Task |
| Yes | NoYes------Dep.Task |
| No | YesYes---Dep.TaskDep.Task |
| Yes | YesYesDep.TaskDep.TaskDep.Task |

##### security

Requires membership of local group *QlikView Management API* and the role *Document Folder Administrator*.

### Examples

The following code example shows how to make a GetTaskStatusNodes service call. It starts by adding a new task status node request array. We also need to populate the array with an object or any attempt to traverse the array will end in an exception.

Next a filter is created which says that only failed document tasks.

Finally it retrieves the task status nodes for this object. It will produce a list of the categories at the root level of that specific QDS.

The service key injection is assumed to be handled behind the scenes. For an example of how to inject the service key, see Samples.

```
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using QMSAPI;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            // create a QMS API client
            IQMS apiClient = new QMSClient();

            //retrieve a time limited service key
            ServiceKeyClientMessageInspector.ServiceKey = apiClient.GetTimeLimitedServiceKey();

            Guid qdsId = new Guid("c7c66836-f00b-47c4-8099-23ff7f178423"); // The originating QDS ID.
            List<TaskStatusNodeRequest> taskStatusNodeRequests = new List<TaskStatusNodeRequest>(); // Creating a new task status node request array.
            TaskStatusNodeRequest taskStatusNodeRequest = new TaskStatusNodeRequest(); // Populating the array with a new object.
            taskStatusNodeRequest.RootType = TaskStatusNodeType.QDS;
            taskStatusNodeRequest.QDSID = qdsId;
            taskStatusNodeRequests.Add(taskStatusNodeRequest);

            TaskStatusFilter taskStatusFilter = new TaskStatusFilter();
            taskStatusFilter.TaskStatuses.Add(TaskStatusValue.Failed);
            taskStatusFilter.TaskTypes.Add(TaskType.DocumentTask);

            List<TaskStatusNode> statusNodes = apiClient.GetTaskStatusNodes(taskStatusNodeRequests, taskStatusFilter, TaskStatusScope.All); // A service call using the array and a scope.
            foreach(TaskStatusNode node in statusNodes) {
                Console.WriteLine(node.Name + "\\t" + node.Status);
            }

        }
        catch (Exception ex)
        {
            Console.WriteLine("An exception occurred: " + ex.Message);
        }
        // wait for user to press any key
        Console.ReadLine();
    }
}
```

### See Also

[GetTaskStatuses(TaskStatusFilter, TaskStatusScope)](https://help.qlik.com/en-US/qlikview-developer/September2026/Subsystems/QMSAPIref/Content/PIX.Services.V12.Api8.IQMS8.GetTaskStatuses.htm#PIX_Services_V12_Api8_IQMS8_GetTaskStatuses_PIX_QMSAPI_DataObjects_TaskStatusFilter_PIX_QMSAPI_DataObjects_TaskStatusScope_)

[GetTaskStatus(Guid, TaskStatusScope)](https://help.qlik.com/en-US/qlikview-developer/September2026/Subsystems/QMSAPIref/Content/PIX.Services.V12.Api8.IQMS8.GetTaskStatus.htm#PIX_Services_V12_Api8_IQMS8_GetTaskStatus_System_Guid_PIX_QMSAPI_DataObjects_TaskStatusScope_)

[Ping()](https://help.qlik.com/en-US/qlikview-developer/September2026/Subsystems/QMSAPIref/Content/PIX.Services.V12.Api8.IQMS8.Ping.htm#PIX_Services_V12_Api8_IQMS8_Ping)