ProjectDataSet.TaskRow.TASK_OUTLINE_LEVEL property
Indicates the level of a task by number (such as 1, 2, or 3) in the project outline hierarchy.
Namespace: WebSvcStatusing
Assembly: ProjectServerServices (in ProjectServerServices.dll)
Syntax
'Declaration
Public Property TASK_OUTLINE_LEVEL As Integer
Get
Set
'Usage
Dim instance As ProjectDataSet.TaskRow
Dim value As Integer
value = instance.TASK_OUTLINE_LEVEL
instance.TASK_OUTLINE_LEVEL = value
public int TASK_OUTLINE_LEVEL { get; set; }
Property value
Type: System.Int32
Remarks
When you insert a new task, it is created as a subtask if the outline level number is greater than the outline level of the task that is identified by AddAfterTaskUID. If you omit the TASK_OUTLINE_LEVEL property, the new task is created at the same level as the previous task. Tasks that are created at the top or bottom of the project are created at level 1.
The following table shows some fields of the TaskDataTable in a ProjectDataSet for four TaskRow items in a project named TaskTest. The task with TASK_ID=0 is the project summary task. Task t1 is a summary task for t1sub1 and t1sub2.
TASK_NAME |
TASK_ID |
TASK_OUTLINE_LEVEL |
TASK_OUTLINE_NUM |
---|---|---|---|
TaskTest |
0 |
0 |
0 |
t1 |
1 |
1 |
1 |
t1sub1 |
2 |
2 |
1.1 |
t1sub2 |
3 |
2 |
1.2 |
t2 |
4 |
1 |
2 |
If you try to change the TASK_OUTLINE_LEVEL by using QueueUpdateProject, you can get a ProjectSchedulingEngineException error from the Project Server Queuing Service. The error contents include exception="Microsoft.Office.Project.Scheduling.SchedulingCycleException: Cycle detected …. . The Project Server scheduling engine does not handle bulk edits where you change the TASK_OUTLINE_LEVEL or change a task with a Start-to-Finish (SF) link into a summary task. A workaround is to check the Project Server Queue and handle the specific value in the QueueStatusDataSet.Status table. For example, return a message to use Project Professional to change the TASK_OUTLINE_LEVEL.