The CPM Procedure |
Once a project has been defined with all of its activities and their relationships, the durations, the resources needed, and so on, it is often useful to monitor its progress periodically. During resource-constrained scheduling, it is useful to schedule only activities that have not yet started, taking into consideration the activities that have already been completed or scheduled and the resources that have already been used by them or allotted for them. The ACTUAL statement is used in PROC CPM to convey information about the current status of a project. As information about the activities becomes available, it can be incorporated into the schedule of the project through the specification of the actual start or finish times or both, the duration that is still remaining for the activity, or the percentage of work that has been completed on an activity. The specification of the progress variables and the options in the ACTUAL statement have been described earlier in this chapter. This section describes how the options work together and how some default values are determined.
The following options are discussed in this section:
The TIMENOW= option is specified in the ACTUAL statement. The value of the TIMENOW= option (often referred to simply as TIMENOW) is used as a reference point to resolve the values of the remaining duration and percent completion times. All actual start and finish times specified are checked to ensure that they are less than TIMENOW. If there is some inconsistency, a warning message is printed to the log.
If the ACTUAL statement is used, at least one of the four progress variables must be specified. PROC CPM uses the nonmissing values for the progress variables in any given observation to determine the information that is to be used for the activity. It is possible that there are some inconsistencies in the specification of the values relating to the progress information. For example, an activity may have valid values for both the A_START and the A_FINISH variables and also have the value of the PCTCOMP variable less than 100. PROC CPM looks at the values in a specific order, resolving inconsistencies in a reasonable manner. Further, PROC CPM determines revised estimates of the durations of the activities on the basis of the actual information.
Suppose that for a given activity, as is the actual start, af is the actual finish, remdur is the remaining duration, pctc is the percent complete, and dur is the duration of the activity as specified by the values of the corresponding variables in the Activity data set. (If a particular variable is not specified, assume that the corresponding value is missing.)
The elapsed duration of an activity in progress is the time lapse between its actual start and TIMENOW; the revised duration of the activity is the updated duration of the activity that is used to calculate the projected finish time for activities in progress and the actual duration for activities that are completed. The revised duration is used by PROC CPM to compute the updated schedule as described later in this section. In the discussion that follows, as, af, remdur, and pctc refer to the actual start time, actual finish time, remaining duration, and percent completed, respectively, for the activity in the Activity data set, while A_START, A_FINISH, and A_DUR refer to the values calculated by PROC CPM for the corresponding new variables added to the Schedule data set.
The following is a list of some of the conventions used by PROC CPM in calculating the revised duration:
Using the preceding rules, PROC CPM attempts to determine actual start and finish times for as many activities as possible using the information given for each activity. The next question is: What about activities that have missing values for the actual start and finish times? Suppose a given activity has a valid value for A_START and is currently in progress. It seems logical for successors of this activity to have missing values for A_START. But how about predecessors of the activity? If they have missing values for A_START and A_FINISH, does it mean that there was an error in the input of the actual dates or an error in the precedence constraints? The AUTOUPDT and NOAUTOUPDT options enable you to control the answer to this question. AUTOUPDT instructs CPM to automatically fill in appropriate A_START and A_FINISH values for all activities that precede activities which have already started. NOAUTOUPDT implies that only those activities that have explicit progress information confirming their status are assumed to be in progress or completed; all other activities are assumed to have an implicit start date that is greater than or equal to TIMENOW. In other words, NOAUTOUPDT assumes that the precedence constraints may be overridden by the actual data. The default option is AUTOUPDT.
The scheduling algorithm treats the actual start and finish times as follows:
Note: The resources required by activities that are completed or in progress are accounted for and the corresponding changes are made to the resource availability profile before starting the constrained scheduling process at TIMENOW.
The Schedule data set contains the actual start times (A_START) for all activities that are in progress or completed and the actual finish times (A_FINISH) and the actual duration times (A_DUR) for all activities that are completed. Some of these values may have been derived from the percent completion or remaining duration times in the Activity data set or may have been implicitly determined through the AUTOUPDT option. Also included in the Schedule data set is a variable named STATUS describing the status of each activity. The possible values are Completed, In Progress, Infeasible, and Pending; the interpretations are self-evident.
If the ESTPCTC option is specified, the Schedule
data set also contains a variable
named PCT_COMP that contains the percent completion time for each
activity in the project.
Copyright © 2008 by SAS Institute Inc., Cary, NC, USA. All rights reserved.