Understanding Activity Constraints

This topic provides overviews of activity constraints and copying activities with constraints.

A constraint is a restriction that you place on an activity to control the activity's start date or end date. You can define flexible, moderately flexible, or inflexible constraints.

  • Flexible constraints work with dependencies to make an activity occur as soon or as late as the dependency will allow.

    For example, the system schedules an activity with an As Soon As Possible constraint and an end-to-start dependency as soon as the predecessor activity ends.

    Flexible constraints are:

    • As Soon As Possible

    • As Late As Possible

  • Moderately flexible constraints work with dependencies to force activities to occur before or after dates that you specify.

    For example, you can establish an end-to-start dependency that assigns the start date of September 13 on an activity with a Start No Later Than constraint for September 14.

    Moderately flexible constraints are:

    • End No Earlier Than

    • Start No Earlier Than

    • Start No Later Than

    • End No Later Than

  • Inflexible constraints force the activity dates to follow the constraint.

    For example, an activity with a Must End On constraint for July 10 and an end-to-start dependency on another activity will always have an end date of July 10 no matter when the predecessor activity's date ends.

    Inflexible constraints are:

    • Must Start On

    • Must End On

Each activity can have only one constraint type, which determines when the activity can start or end. For summary activities, you can select only As Soon As Possible, End No Later Than, or Start No Earlier Than constraint types.

If users try to change detail activities to summary activities, and the detail activities have constraints that are not valid for summary activities, the user must either remove the constraint or leave the activity as a detail activity.

If no constraint type is specified for an activity, users can enter any start and end dates, as long as the dates do no violate any existing dependencies for the activity, and the activity is a detail activity.

On the Project General - Program Management page, you can select a project-level option that requires that activities always honor the constraint. If you select this option:

  • Users cannot manually schedule a start date or end date that falls outside of an activity's constraint.

  • If a schedule change to a predecessor activity causes a successor activity's dates to violate its constraint, the user must either resolve the scheduling conflict or remove the dependency.

  • If a new predecessor activity causes the successor activity to violate its constraint, the start and end dates for the successor activity will still honor the constraint date.

If you do not require activities to honor the constraint, users can change activity start and end dates manually or through dependency relationships. The constraint remains on the activity but the system allows the activity dates to change even if they violate the constraint.

As Soon As Possible Constraint

Use the As Soon As Possible constraint for the system to schedule the activity as early as it can, based on these rules:

  • The system assigns the start date of the activity to the start date of the project.

  • If the activity is a summary activity, the start date is based on the earliest start date of its children.

  • If you establish dependencies on the activity, the system assigns the activity start and end dates based on the dependency.

  • If you remove dependencies from the activity, the system assigns the activity date as the start date of the project.

  • If you delete this constraint, the system does not change the activity start and end dates.

    You can manually modify the activity dates.

  • If you manually modify the activity start date or end date, the system removes this constraint.

  • If you change the activity duration, the system recalculates the end date but does not change the constraint.

Note: You cannot enter an As Soon As Possible constraint if the calculation method is Start Date.

As Late As Possible Constraint

Use the As Late As Possible constraint for the system to schedule the activity as late as it can, based on these rules:

  • The system assigns the end date of the activity to the end date of the project.

  • If you establish dependencies on the activity and you enable the option for activities to always honor constraint dates, the system assigns the activity end date as the end date of the project.

    However, if you disable the option for activities to always honor constraint dates, the system assigns the end date based on the dependencies.

  • If you remove dependencies from the activity, the system assigns the activity end date as the end date of the project.

  • If you delete this constraint, the system assigns the activity start date based on the project start date.

  • If you manually modify the activity end date, the system removes this constraint.

  • If you change the activity duration, the system recalculates the start date but does not change the constraint.

Note: You cannot enter an As Late As Possible constraint if the calculation method is End Date.

End No Earlier Than

Use the End No Earlier Than constraint to establish the earliest possible date that an activity could end. The activity cannot finish any time before the date you specify. The system determines the schedule based on these rules:

  • If you assign a constraint date that is the same as or occurs before the activity end date, the system does not change the activity end date.

  • If you modify an activity so that the end date falls after the constraint date, the system does not change the constraint date.

  • When you enable the option for activities to always honor constraint dates:

    • If you set a constraint date to fall after the activity end date, the system updates the activity end date to the constraint date.

    • If you modify an activity end date to a date that is earlier than the constraint date, you violate the constraint and receive an error message that allows you to remove the constraint or preserve the constraint and not change the activity end date.

    • If you establish a dependency on an activity and the dependency relationship is such that it would cause the successor activity end date to occur before the constraint date, the system ignores the dependency and does not change the successor or predecessor dates.

  • When you disable the option for activities to always honor constraint dates:

    • If you assign a constraint date to fall after the activity end date, the system updates the activity end date to the constraint date, unless the activity has dependencies that affect the activity schedule.

      If the activity has dependencies that affect the end date, the system uses the dependency to drive the activity schedule and assigns the end date based on the dependency.

    • If you modify an activity end date to a date earlier than the constraint date, you violate the constraint and receive an error message that allows you to remove the constraint or preserve the constraint and not change the activity end date, unless the activity has dependencies that affect the activity schedule.

      If the activity has dependencies that affect the end date, the system uses the dependency to drive the activity schedule and assigns the end date based on the dependency.

    • If you establish a dependency on an activity and the dependency relationship is such that it would cause the successor activity end date to occur before the constraint date, the system uses the dependency to drive the activity schedule and assigns the end date based on the dependency.

  • If you remove all dependencies from an activity, the system tries to enforce the constraint and assigns the activity end date as the constraint date. However, if the existing dates on the activity conflict with the constraint, which could happen if the option for activities to always honor constraint dates is disabled, the system gives you the option to remove the dependency or remove the constraint.

  • If you delete this constraint and have no dependencies on the activity, the system assigns the activity start date based on the project start date.

Start No Earlier Than

Use the Start No Earlier Than constraint to establish the earliest possible date that an activity can begin. The activity cannot start any time before the date you specify. The system determines the schedule based on these rules:

  • If you assign the constraint date that is the same as or occurs before the activity start date, the system does not change the activity start date.

  • If you modify an activity so that the start date falls after the constraint date, the system does not change the constraint date.

  • When you enable the option for activities to always honor constraint dates:

    • If you set a constraint date to fall after the activity start date, the system updates the activity start date to the constraint date.

    • If you modify an activity start date to a date that is earlier than the constraint date, you violate the constraint and receive an error giving you the option to remove the constraint or preserve the constraint and not change the activity start date.

    • If you establish a dependency on an activity and the dependency relationship is such that it would cause the successor activity start date to occur before the constraint date, the system ignores the dependency and does not change the successor or predecessor dates.

  • When you disable the option for activities to always honor constraint dates:

    • If you assign a constraint date to fall after the activity start date, the system updates the activity start date to the constraint date, unless the activity has dependencies that affect the activity schedule.

      If the activity has dependencies that affect the start date, the system uses the dependency to drive the activity schedule and assigns the start date based on the dependency.

    • If you modify an activity start date to a date earlier than the constraint date, you violate the constraint and receive an error message that allows you to remove the constraint or preserve the constraint and not change the activity end date, unless the activity has dependencies that affect the activity schedule.

      If the activity has dependencies that affect the start date, the system uses the dependency to drive the activity schedule and assigns the start date based on the dependency.

    • If you establish a dependency on an activity and the dependency relationship is such that it would cause the successor activity start date to occur before the constraint date, the system uses the dependency to drive the activity schedule and assigns the start date based on the dependency.

  • If you remove all dependencies from an activity, the system tries to enforce the constraint and assigns the activity start date as the constraint date. However, if the existing dates on the activity conflict with the constraint, which could happen if the option for activities to always honor constraint dates is disabled, the system gives you the option to remove the dependency or remove the constraint.

  • If you delete this constraint and have no dependencies on the activity, the system assigns the activity start date based on the project start date.

Start No Later Than

Use the Start No Later Than constraint to establish the latest possible date that an activity could start. The activity can start anytime on or before the date that you specify. The system determines the schedule based on these rules:

  • If you assign a constraint date that is the same as or falls after the activity start date, the system does not change the activity start date.

  • If you modify an activity so that the start date occurs before the constraint date, the system does not change the constraint date.

  • When you enable the option for activities to always honor constraint dates:

    • If you set a constraint date to occur before the activity start date, the system updates the activity start date to the constraint date.

    • If you modify an activity start date to a date that is later than the constraint date, you violate the constraint and receive an error message that allows you to remove the constraint or preserve the constraint and not change the activity start date.

    • If you establish a dependency on an activity and the dependency relationship is such that it would cause the successor activity start date to occur after the constraint date, the system ignores the dependency and does not change the successor or predecessor dates.

  • When you disable the option for activities to always honor constraint dates:

    • If you assign a constraint date to occur before the activity start date, the system updates the activity start date to the constraint date, unless the activity has dependencies that affect the activity schedule.

      If the activity has dependencies that affect the start date, the system uses the dependency to drive the activity schedule and assigns the start date based on the dependency.

    • If you modify an activity start date to a occur later than the constraint date, you violate the constraint and receive an error message that allows you to remove the constraint or preserve the constraint and not change the activity end date, unless the activity has dependencies that affect the activity schedule.

      If the activity has dependencies that affect the start date, the system uses the dependency to drive the activity schedule and assigns the start date based on the dependency.

    • If you establish a dependency on an activity and the dependency relationship is such that it would cause the successor activity start date to occur after the constraint date, the system uses the dependency to drive the activity schedule and assigns the start date based on the dependency.

  • If you remove all dependencies from an activity, the system tries to enforce the constraint and assigns the activity start date as the constraint date. However, if the existing dates on the activity conflict with the constraint, which could happen if the option for activities to always honor constraint dates is disabled, the system gives you the option to remove the dependency or remove the constraint.

  • If you delete this constraint and have no dependencies on the activity, the system assigns the activity start date based on the project start date.

End No Later Than

Use the End No Later Than constraint to establish the earliest possible date that an activity could end. The activity can end on or before the date you specify. The system determines the schedule based on these rules:

  • If you assign the constraint date that is the same as or occurs after the activity end date, the system does not change the activity end date.

  • If you modify an activity so that the end date occurs before the constraint date, the system does not change the constraint date.

  • When you enable the option for activities to always honor constraint dates:

    • If you set a constraint date to occur before the activity end date, the system updates the activity end date to the constraint date.

    • If you modify an activity end date to later date than the constraint date, you violate the constraint and receive an error giving you the option to remove the constraint or preserve the constraint and not change the activity end date.

    • If you establish a dependency on an activity and the dependency relationship is such that it would cause the successor activity end date to occur after the constraint date, the system ignores the dependency and does not change the successor or predecessor dates.

  • When you disable the option for activities to always honor constraint dates:

    • If you assign a constraint date to occur before the activity end date, the system updates the activity end date to the constraint date, unless the activity has dependencies that affect the activity schedule.

      If the activity has dependencies that affect the end date, the system uses the dependency to drive the activity schedule and assigns the end date based on the dependency.

    • If you modify an activity end date to a later date than the constraint date, you violate the constraint and receive an error message that allows you to remove the constraint or preserve the constraint and not change the activity end date, unless the activity has dependencies that affect the activity schedule.

      If the activity has dependencies that affect the end date, the system uses the dependency to drive the activity schedule and assigns the end date based on the dependency.

    • If you establish a dependency on an activity and the dependency relationship is such that it would cause the successor activity end date to occur after the constraint date, the system uses the dependency to drive the activity schedule and assigns the end date based on the dependency.

  • If you remove all dependencies from an activity, the system tries to enforce the constraint and assigns the activity end date as the constraint date. However, if the existing dates on the activity conflict with the constraint, which could happen if the option for activities to always honor constraint dates is disabled, the system gives you the option to remove the dependency or remove the constraint.

  • If you delete this constraint and have no dependencies on the activity, the system assigns the activity start date based on the project start date.

Must Start On

Use the Must Start On constraint to specify the exact date when an activity must start. The system determines the schedule based on these rules:

  • The system assigns the start date of the activity to equal the constraint date.

  • When you enable the option for activities to always honor constraint dates:

    • If you modify the constraint date, the system updates the activity start date to the constraint date.

    • If you modify an activity start date to a different date than the constraint date, you violate the constraint and receive an error giving you the option to remove the constraint or preserve the constraint and not change the activity start date.

    • If you establish a dependency on an activity and the dependency relationship is such that it would cause the successor activity start date and the constraint date to differ, the system does not change the activity start date. The system allows you to set the dependency, but it does not enforce the dependency.

  • When you disable the option for activities to always honor constraint dates:

    • If you modify the constraint date, the system updates the activity start date to match the constraint date, unless the activity has dependencies that affect the activity schedule.

      If the activity has dependencies that affect the start date, the system uses the dependency to drive the activity schedule and assigns the start date based on the dependency.

    • If you modify an activity start date to a different date than the constraint date, you violate the constraint and receive an error message that allows you to remove the constraint or preserve the constraint and not change the activity end date, unless the activity has dependencies that affect the activity schedule.

      If the activity has dependencies that affect the start date, the system uses the dependency to drive the activity schedule and assigns the end start based on the dependency.

    • If you establish a dependency on an activity and the dependency relationship is such that it would cause the successor activity start date to differ from the constraint date, the system uses the dependency to drive the activity schedule and updates the successor activity's start date based on the dependency.

  • If you remove all dependencies from an activity, the system tries to enforce the constraint and assigns the activity start date as the constraint date. However, if the existing dates on the activity conflict with the constraint, which could happen if the option for activities to always honor constraint dates is disabled, the system gives you the option to remove the dependency or remove the constraint.

  • If you delete this constraint and have no dependencies on the activity, the system assigns the activity start date based on the project start date.

Must End On

Use the Must End On constraint to specify the exact date for which the activity must be completed. The system determines the schedule based on these rules:

  • The system assigns the end date of the activity equal to the constraint date.

  • When you enable the option for activities to always honor constraint dates:

    • If you modify the constraint date, the system updates the activity end date to the constraint date.

    • If you modify an activity end date to a different date than the constraint date, you violate the constraint and receive an error message that allows you to remove the constraint or preserve the constraint and not change the activity end date.

    • If you establish a dependency on an activity and the dependency relationship is such that it would cause the successor activity end date to differ from the constraint date, the system does not change the activity end date. The system allows you to define the dependency, but if does not enforce the dependency.

  • When you disable the option for activities to always honor constraint dates:

    • If you modify the constraint date, the system updates the activity end date to the constraint date, unless the activity has dependencies that affect the activity schedule.

      If the activity has dependencies that affect the end date, the system uses the dependency to drive the activity schedule and assigns the end date based on the dependency.

    • If you modify an activity end date to a date different than the constraint date, you violate the constraint and receive an error message that allows you to remove the constraint or preserve the constraint and not change the activity end date, unless the activity has dependencies that affect the activity schedule.

      If the activity has dependencies that affect the end date, the system uses the dependency to drive the activity schedule and assigns the end date based on the dependency.

    • If you establish a dependency on an activity and the dependency relationship is such that it would cause the successor activity end date to differ from the constraint date, the system uses the dependency to drive the activity schedule and updates the successor activity's end date based on the dependency.

  • If you remove all dependencies from an activity, the system tries to enforce the constraint and assigns the activity end date as the constraint date. However, if the existing dates on the activity conflict with the constraint, which could happen if the option for activities to always honor constraint dates is disabled, the system gives you the option to remove the dependency or remove the constraint.

  • If you delete this constraint and have no dependencies on the activity, the system assigns the activity start date based on the project start date.

If you create a project activity from a copy of an existing activity, the system copies the constraint on that activity to the target activity. However, if you create a project activity from a template, the constraint on that activity does not copy to the target activity.