The PM Procedure

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 4: The CPM Procedure, for details. Some minor differences that pertain to the Schedule Data set and ALIGNTYPE statement are explained in the following sections.

Schedule Data Set

The Schedule data set produced by PROC PM is very similar to the Schedule data set produced by PROC CPM. See OUT= Schedule Data Set.

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 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.

ALIGNTYPE Statement

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.

RESOURCE Statement

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.