The CPM Procedure

PROJECT Statement

  • PROJECT variable / options;

  • PARENT variables / options;

The PROJECT statement specifies the variable in the Activity data set that identifies the project to which an activity belongs. This variable must be of the same type and length as the variable defined in the ACTIVITY statement. A project can also be treated as an activity with precedence and time constraints. In other words, any value of the PROJECT variable can appear as a value of the ACTIVITY variable, and it can have specifications for the DURATION, ALIGNDATE, ALIGNTYPE, ACTUAL, RESOURCE, and SUCCESSOR variables. However, some of the interpretations of these variables for a project (or supertask) may be different from the corresponding interpretation for an activity at the lowest level. See the section Multiproject Scheduling for an explanation.

The following options can be specified in the PROJECT statement after a slash (/).

AGGREGATEPARENTRES
AGGREGATEP_RES
AGGREGPR

indicates that the resource requirements for all supertasks are to be used only for aggregation purposes and not for resource-constrained scheduling.

DESCENDING
DESC

indicates that, in addition to the ascending sort variables (ES_ASC, LS_ASC, and SS_ASC) that are requested by the ESORDER, LSORDER, and SSORDER options, the corresponding descending sort variables (ES_DESC, LS_DESC, and SS_DESC, respectively) are also to be added to the Schedule output data set.

ESORDER
ESO

indicates that a variable named ES_ASC is to be added to the Schedule output data set; this variable can be used to order the activities in such a way that the activities within each subproject are in increasing order of the early start time. This order is not necessarily the same as the one that would be obtained by sorting all the activities in the Schedule data set by E_START.

IGNOREPARENTRES
IGNOREP_RES
IGNOREPR

indicates that the resource requirements for all supertasks are to be ignored.

LSORDER
LSO

indicates that a variable named LS_ASC is to be added to the Schedule output data set; this variable can be used to order the activities in such a way that the activities within each subproject are in increasing order of the late start time.

ORDERALL
ALL

is equivalent to specifying the ESORDER and LSORDER options (and the SSORDER option when resource constrained scheduling is performed).

RSCHEDORDER
RSCHDORD
RSORDER

indicates that the order variables that are included in the Schedule output data set are also to be included in the Resource Schedule output data set.

RSCHEDWBS
RSCHDWBS
RSWBS

indicates that the WBS code is also to be included in the Resource Schedule data set.

SEPCRIT

computes individual critical paths for each project. By default, the master project’s early finish time is treated as the starting point for the calculation of the backward pass (which calculates the late start schedule). The late finish time for each subproject is then determined during the backward pass on the basis of the precedence constraints. If a time constraint is placed on the finish time of a subproject (using the ALIGNDATE and ALIGNTYPE variables), the late finish time of the subproject is further constrained by this value.

The SEPCRIT option, on the other hand, requires the late finish time of each subproject to be less than or equal to the early finish time of the subproject. Thus, if you have a set of independent, parallel projects, the SEPCRIT option enables you to compute separate critical paths for each of the subprojects.

SSORDER
SSO

indicates that a variable named SS_ASC is to be added to the Schedule output data set; this variable can be used to order the activities in such a way that the activities within each subproject are in increasing order of the resource-constrained start time.

USEPROJDUR
USEPROJDURSPEC
USESPECDUR

uses the specified subproject duration to compute the maximum allowed late finish for each subproject. This is similar to the SEPCRIT option, except that the specified project duration is used to set an upper bound on each subproject’s late finish time instead of the project span as computed from the span of all the subtasks of the project. In other words, if E_START and E_FINISH are the early start and finish times of the subproject under consideration, and the subproject duration is PROJ_DUR, where

 PROJ_DUR = E_FINISH - E_START

then the SEPCRIT option sets

 L_FINISH $\leq $ E_START + PROJ_DUR

while the USEPROJDUR option sets

 L_FINISH $\leq $ E_START + DUR

where DUR is the duration specified for the subproject in the Activity data set.

WBSCODE
WBS
ADDWBS

indicates that the CPM procedure is to compute a WBS code for the activities in the project using the project hierarchy structure specified. This code is computed for each activity and stored in the variable WBS_CODE in the Schedule output data set.