Constraining tasks to specific dates
A task's start and finish dates are determined by its duration and the way in which tasks are linked together. However, this only simulates the internal constraints within a project. Other events outside your control, such as authorisations, the release of design documents and immovable deadlines, may also affect the dates on which tasks can start or finish. You should include these external constraints in your plans if possible.
In Asta Powerproject you can specify that a task should start or finish on, before or after a specific date. You do this by setting a start or finish flag on the task. These flags override the internal logic of a project and show the effect of outside influences on your plan.
A finish flag is sometimes known as a required date, because it sets the date by when you require a task to be finished.

When you set a task to start or finish on a specific date, the task is not moved when you reschedule the project, even if the internal logic of the plan dictates that the task could be moved earlier or later. Predecessor or successor tasks may be moved to allow the task to remain on its start or finish date.
In this example, the second task is constrained to a start date although link logic shows it could otherwise start as soon as the first task has finished. Following a reschedule, the first task has float as the second task cannot be moved:
|
|
Before the reschedule |
After the reschedule |
In this example, the second task is constrained to a finish date although link logic shows it should otherwise start as soon as the first task has finished. Following a reschedule, the first task is moved back to an earlier start date as the second task cannot be moved:
|
|
Before the reschedule |
After the reschedule |

When you set a task to finish by a specific date, the task can be moved to an earlier date but cannot be moved to a later date when you reschedule the project. Predecessor tasks may be moved to allow the task to remain on its finish date.
In this example, the second task must finish on or before its current finish date, although link logic shows it could start as soon as the first task has finished. Following a reschedule, the second task is moved to an earlier start date although the flag remains at its original date:
|
|
Before the reschedule |
After the reschedule |

When you set a task to start on or after a specific date, the task can be moved to a later date but cannot be moved to an earlier date when you reschedule the project. Successor tasks may be moved to as a result of the task moving to a later date.
In this example, the second task must start on or after its current start date, although link logic shows it should start as soon as the first task has finished. Following a reschedule, the second task is moved to a later start date although the flag remains at its original date:
|
|
Before the reschedule |
After the reschedule |

When you set a task to start and finish on specific dates (a work between constraint), the task becomes critical as it cannot be moved at all, so it cannot be delayed. Following a reschedule, the task is not moved at all. If you change the duration of a task with a work between constraint, the flags remain at their original dates and the task is given float or negative float, depending on whether you increase or reduce its duration.
In this example, the second task must start and finish on specific dates. Following a reschedule, the first and third tasks are moved to enable the second task to remain at its original date:
|
|
Before the reschedule |
After the reschedule |

You can set your reschedule options to choose whether finish flags are hard or soft, in other words whether you want to force tasks to finish by their flag date, or allow tasks to slip beyond their flag date.
If you apply a Deadline flag to a task, the task is always able to slip beyond the flag date, in the same way that tasks can slip beyond finish flags if you have specified that finish flags are soft. Deadline flags point in the opposite direction to other finish flags. They appear as blue, unless the task slips beyond them, in which case they appear shaded with diagonal stripes.
In this example, the first task must start on a specific date and a deadline has been applied to the second task. Following a reschedule, the second task is moved beyond the deadline, turning the deadline flag shaded:
|
|
Before the reschedule |
After the reschedule |

If you apply a Holding Pin to a task, the task can be moved to a later date but cannot be moved to an earlier date when you reschedule the project, and if the task is moved, the pin moves with the task. The main purpose of the Holding Pin constraint is to hold unlinked tasks in place in a schedule.
The Holding Pin constraint is similar to the Start On or After constraint. The two types of constraint differ in the following ways:
- When a task to which a Start On or After constraint has been applied is moved, the Start On or After flag itself is not moved; when a task to which a Holding Pin constraint has been applied is moved, the Holding Pin itself is moved with the task to the task's new start date.
- You can apply one other type of constraint to tasks with a Holding Pin, in addition to the Holding Pin.
- You can only apply Holding Pins to tasks; you cannot apply them to milestones, summary tasks, expanded tasks or hammocks.
Holding pins are applied automatically to tasks that you move by clicking and dragging in a Line of Balance graph.
Although the main purpose of the Holding Pin constraint is to hold unlinked tasks in place, it is easier to show the Holding Pin in action in an example in which tasks are linked. In this example, the second task must start on or after its current start date, although link logic shows it should start as soon as the first task has finished. Following a reschedule, the second task is moved to a later start date and the Holding Pin flag is moved to this new date:
|
|
Before the reschedule |
After the reschedule |