Version

Conflict Resolution (xamGantt)

Topic Overview

Purpose

This topic gives describes the xamGantt™ Conflict Resolution.

In this topic

This topic contains the following sections:

xamGantt Conflict Resolution Overview

Conflict overview

Changes to a task often affect the values of other properties on a task as well as properties of related tasks. The Project class exposes properties to control the default response to these actions. The Project class raises events to allow runtime determination of the appropriate response.

The following table summarizes conflicts which can occur:

Conflict Description

Actual Values Lost

Occurs when a change happens to a task which has actual values (e.g. ActualStart, ActualDuration, etc.) that will be lost from the project.

This may happen as a result of removing a task that has been started, changing the actual duration of a started task to 0, clearing the start of a started task, etc.

Conflicting Constraint and Dependency Information

Occurs when it is not possible to enforce the task’s constraint information (i.e. ConstraintType and ConstraintDate) and its dependencies (i.e. Predecessors and/or Successors) because one or more would be violated.

For example, if TaskB has TaskA as its Predecessor with a FinishToStart relationship and the ConstraintType of TaskB is set to MustStartOn with a ConstraintDate prior to the EarlyStart calculated for Task B.

If the change is allowed to continue the AlwaysHonorTaskConstraintDates of the ProjectSettings determines which information takes priority.

Constraint Warnings

Invoked when a constraint of a task is about to change or when constraint information cannot be honored. The types of warnings which can occur are presented in the ProjectTaskConstraintWarningType enumeration.

Delete Project Root Task

Occurs when the Delete method of the Project’s RootTask is invoked such as when the end user has selected the root task and presses the Delete key.

Delete Summary Task

Occurs when the Delete method of a ProjectTask whose IsSummary is true is invoked.

Note
Note

This is not invoked when attempting to delete the RootTask of a Project. For that the DeleteRootTask warning above will occur.

Dependency Circularity Warnings

Occurs when the Predecessors or Successors of a task is changed such that it contains circular references such as a reference to the same task, a descendant/ancestor task or a task that directly or indirectly depends upon that original task.

Missing Resource Warning

Occurs when the AutoAddNewResources ProjectSettings property is false and the end user types a name into a Resources cell that does not match the DisplayName of a ProjectResource in the ResourceItems collection.

Task Start or Finish Set To NonWorking Day

Occurs when the Start or Finish of the task is set to be within a non-working day.

In this situation, the value can either be shifted to the adjacent working day or a ProjectCalendarException can be created to define working hours for the containing day or the operation may be cancelled.

Task Violates Project Bounds

Occurs when the constraint or dependency information for a task is set such that the start is before the Project Start for a project scheduled from the start or the finish is after the Project’s Finish for a project scheduled from the finish.

For example, this may happen when a task has its ConstraintType set to MustStartOn/StartNoLaterThan and the Start value is set to a date prior to the Start of the Project and the IsScheduledFromStart is true.

Default actions

The table below lists the conflicts and the properties that determine the default actions taken when the conflict occurs.

Events

The table below lists the events being raised when conflict occurs.

Conflict Event

Actual Values Lost

Conflicting Constraint and Dependency Information

Type= ConstraintOrDependencyCannotBeEnforced

Constraint Warnings

TaskConstraintWarning

Delete Project Root Task

Type= DeleteRootTask

Delete Summary Task

Type= DeleteSummaryTask

Dependency Circularity Warnings

Missing Resource Warning

Task Start or Finish Set To Nonworking Day

Task Violates Project Bounds

Type= TaskMovedAfterProjectFinish or TaskMovedBeforeProjectStart

The following topics provide additional information related to this topic.

Topic Purpose

Certain invalid task values, project settings or rescheduling operations can cause conflicts. xamGantt resolve those conflicts and display notification to users. This topic describes the available user notifications which occur at conflict resolution.