Summary of Differences
The computation of the schedule, the resource-constrained scheduling
algorithm, the resource usage information, and all other aspects of the
scheduling engine for PROC PM are the same as the ones for PROC CPM.
Refer to Chapter 2, "The CPM Procedure," for details. Some minor differences that pertain to the Schedule Data set and ALIGNTYPE statement are explained in the following sections.
The Schedule data set produced by PROC PM is very similar to the
Schedule data set produced by PROC CPM. See the
OUT= Schedule Data Set section in the PROC CPM
chapter.
However, unlike PROC CPM, the PM procedure is interactive in nature;
it enables you to add activities, set precedence constraints, reorder
the activities, and so on. Thus, the output data set produced by PROC
PM is designed to capture the original project data as well as all the
changes that are made to the project in the course of the interactive
session.
There are several differences between the forms of the Schedule
output data sets produced by the PM and CPM procedures:
- The PM procedure automatically includes all relevant variables
that are needed to define the project. Thus, the ACTIVITY, SUCCESSOR,
LAG, DURATION, ALIGNDATE, and ALIGNTYPE variables are included in
the output data set by default. If the RESOURCE statement is used, all
the resource variables are also included. Likewise, if actual progress
is entered for the project during the course of the interactive session,
all the progress-related variables are added to the output data set.
- The PM procedure contains three sets of observations, identified by three
different values of a new variable, OBS_TYPE.
The first set of observations contains one observation for every activity
in the project. The value of the OBS_TYPE variable for these observations
is 'SCHEDULE.' These observations contain all the activity information such
as the duration, the start and finish times and the resource requirements.
The second set of observations contains one observation for every precedence
constraint in the project. The value of the OBS_TYPE variable for these
observations is 'LOGIC.' These observations contain all the precedence
information such as the activity, successor, and lag information.
The third set of observations is present only if the project has
resource-driven durations. The value of the OBS_TYPE variable for these
observations is 'WORK.' These observations specify the WORK value for each
resource used by each activity in the project.
The order of the activities in the Schedule data set produced by
PROC PM corresponds to the order in which the activities appear in the
Table View at the end of the interactive session. Likewise, when the
procedure is first invoked, the order of the activities in the Table
View corresponds to the order in which the activities are defined in the
Activity input data set. If, during the course of the session, some
of the activities are reordered or deleted, or if some new activities
are added, the Schedule output data set contains all the activities
that are defined in the Table View at the end of the session.
The PM procedure also assigns a numeric identifier for each
activity. These values are assigned by PROC PM consecutively in the order
of the activities in the Table View and are saved in a variable called ACTID
(see the section "Renumbering the Activities"). In
addition to the ACTID variable, the Schedule data set also contains a
numeric variable called SUCCID, which contains the numeric identifier
for the successor activities in the observations for which
OBS_TYPE='LOGIC.' If the PROJECT
statement is used in the invocation of the PM procedure, a numeric
variable called PNTID is added to the Schedule data set; this variable
identifies the parent task for each activity.
Note: If the ACTIVITY variable in the Activity input data set is a character
variable, the ACTID, SUCCID, and PNTID variables are added to the Schedule data
set in addition to the ACTIVITY, SUCCESSOR, and PROJECT variables. On the other
hand, if the ACTIVITY variable in the Activity input data set is numeric, the
new ACTID, SUCCID, and PNTID variables replace the numeric
ACTIVITY, SUCCESSOR,
and PROJECT variables, respectively.
In PROC PM, if an ALIGNTYPE variable is specified but no ALIGNDATE variable is specified, then no error message is generated; PROC PM ignores the ALIGNTYPE variable and generates a schedule. However, in PROC CPM, this results in an error message with no schedule generated.
In PROC CPM, the NORESOURCEVARS option in the RESOURCE statement
requests that the variables specified in the RESOURCE statement be
dropped from the Schedule data set. However in PROC PM, this has no effect.