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.