Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
The CPM Procedure

PROC CPM Statement

PROC CPM options ;

The following options can appear in the PROC CPM statement.

ADDACT
ADDALLACT
EXPAND
indicates that an observation is to be added to the Schedule output data set (and the Resource Schedule output data set) for each activity that appears as a value of the variables specified in the SUCCESSOR or PROJECT statements without appearing as a value of the variable specified in the ACTIVITY statement. If the PROJECT statement is used, and the activities do not have a single common parent, an observation is also added to the Schedule data set containing information for a single common parent defined by the procedure.

CALEDATA=SAS-data-set
CALENDAR=SAS-data-set
identifies a SAS data set that specifies the work pattern during a standard week for each of the calendars that are to be used in the project. Each observation of this data set (also referred to as the Calendar data set) contains the name or the number of the calendar being defined in that observation, the names of the shifts or work patterns used each day, and, optionally, a standard workday length in hours. For details on the structure of this data set, see the "Multiple Calendars" section. The work shifts referred to in the Calendar data set are defined in the Workday data set. The calendars defined in the Calendar data set can be identified with different activities in the project.

COLLAPSE
creates only one observation per activity in the output data set when the input data set for a network in AON format contains multiple observations for the same activity. Note that this option is allowed only if the network is in AON format.

Often, the input data set may have more than one observation per activity (especially if the activity has several successors). If you are interested only in the schedule information about the activity, there is no need for multiple observations in the output data set for this activity. Use the COLLAPSE option in this case.

DATA=SAS-data-set
names the SAS data set that contains the network specification and activity information. If the DATA= option is omitted, the most recently created SAS data set is used. This data set (also referred to in this chapter as the Activity data set) contains all of the information that is associated with each activity in the network.

DATE=date
specifies the SAS date, time, or datetime that is to be used as an alignment date for the project. If neither the FINISHBEFORE option nor any other alignment options are specified, then the CPM procedure schedules the project to start on date. If date is a SAS time value, the value of the INTERVAL= parameter should be HOUR, MINUTE, or SECOND; if it is a SAS date value, interval should be DAY, WEEKDAY, WORKDAY, WEEK, MONTH, QTR, or YEAR; and if it is a SAS datetime value, interval should be DTWRKDAY, DTDAY, DTHOUR, DTMINUTE, DTSECOND, DTWEEK, DTMONTH, DTQTR, or DTYEAR.

DAYLENGTH=daylength
specifies the length of the workday. On each day, work is scheduled starting at the beginning of the day as specified in the DAYSTART= option and ending daylength hours later. The DAYLENGTH= value should be a SAS time value. The default value of daylength is 24 if the INTERVAL= option is specified as DTDAY, DTHOUR, DTMINUTE, or DTSECOND, and the default value of daylength is 8 if the INTERVAL= option is specified as WORKDAY or DTWRKDAY. If INTERVAL= DAY or WEEKDAY and the value of daylength is less than 24, then the schedule produced is in SAS datetime values. For other values of the INTERVAL= option, the DAYLENGTH= option is ignored.

DAYSTART=daystart
specifies the start of the workday. The DAYSTART= value should be a SAS time value. This parameter should be specified only when interval is one of the following: DTDAY, WORKDAY, DTWRKDAY, DTHOUR, DTMINUTE, or DTSECOND; in other words, this parameter should be specified only if the schedule produced by the CPM procedure is in SAS datetime values. The default value of daystart is 9 a.m. if INTERVAL is WORKDAY; otherwise, the value of daystart is equal to the time part of the SAS datetime value specifed for the DATE= option.

FBDATE=fbdate
specifies a finish-before date that can be specified in addition to the DATE= option. If the FBDATE= option is not given but the FINISHBEFORE option is specified, then fbdate = date. Otherwise, fbdate is equal to the project completion date. If fbdate is given in addition to the DATE= and FINISHBEFORE options, then the minimum of the two dates is used as the required project completion date. See the "Scheduling Subject to Precedence Constraints" section for details on how the procedure uses the date and fbdate to compute the early and late start schedules.

FINISHBEFORE
specifies that the project be scheduled to complete before the date given in the DATE= option.

FIXFINISH
specifies that all finish tasks are to be constrained by their respective early finish times. In other words, the late finish times of all finish tasks do not float to the project completion time.

HOLIDATA=SAS-data-set
HOLIDAY=SAS-data-set
identifies a SAS data set that specifies holidays. These holidays can be associated with specific calendars that are also identified in the HOLIDATA= data set (also referred to as the Holiday data set). The HOLIDATA= option must be used with a HOLIDAY statement that specifies the variable in the SAS data set that contains the start time of holidays. Optionally, the data set can include a variable that specifies the length of each holiday or a variable that identifies the finish time of each holiday (if the holidays are longer than one day). For projects involving multiple calendars, this data set can also include the variable specified by the CALID statement that identifies the calendar to be associated with each holiday. See the "Multiple Calendars" section for further information regarding holidays and multiple calendars.

INTERVAL=interval
requests that each unit of duration be measured in interval units. Possible values for interval are DAY, WEEK, WEEKDAYS, WORKDAY, MONTH, QTR, YEAR, HOUR, MINUTE, SECOND, DTDAY, DTWRKDAY, DTWEEK, DTMONTH, DTQTR, DTYEAR, DTHOUR, DTMINUTE, and DTSECOND. The default value is based on the format of the DATE= parameter. See the "Using the INTERVAL= Option" section for further information regarding this option.

INTPER=period
requests that each unit of duration be equivalent to period units of duration. The default value is 1.

NACTS=nacts
specifies the number of activities for which memory is allocated in core by the procedure. If the number of activities exceeds nacts, the procedure uses a utility data set for storing the activity array. The default value for nacts is set to nobs, if the network is specified in AOA format, and to nobs×(nsucc+ 1), if the network is specified in AON format, where nobs is the number of observations in the Activity data set and nsucc is the number of variables specified in the SUCCESSOR statement.

NADJ=nadj
specifies the number of precedence constraints (adjacencies) in the project network. If the number of adjacencies exceeds nadj, the procedure uses a utility data set for storing the adjacency array. The default value of nadj is set to nacts if the network is in AON format, and it is set to nacts×2 if the network is in AOA format.

NNODES=nnodes
specifies the size of the symbolic table used to look up the activity names (node names) for the network specification in AON (AOA) format. If the number of distinct names exceeds nnodes, the procedure uses a utility data set for storing the tree used for the table lookup. The default value for nnodes is set to nobs×2 if the network is specified in AOA format and to nobs×(nsucc+ 1) if the network is specified in AON format, where nobs is the number of observations in the Activity data set and nsucc is the number of variables specified in the SUCCESSOR statement.

NRESREQ=nres
specifies the number of distinct resource requirements corresponding to all activities and resources in the project. The default value of nres is set to nobs×nresvar ×0.25, where nobs is the number of observations in the Activity data set, and nresvar is the number of RESOURCE variables in the Activity data set.

OUT=SAS-data-set
specifies a name for the output data set that contains the schedule determined by PROC CPM. This data set (also referred to as the Schedule data set) contains all of the variables that were specified in the Activity data set to define the project. Every observation in the Activity data set has a corresponding observation in this output data set. If PROC CPM is used to determine a schedule that is not subject to any resource constraints, then this output data set contains the early and late start schedules; otherwise, it also contains the resource-constrained schedule. See the "OUT= Schedule Data Set" section for information about the names of the new variables in the data set. If the OUT= option is omitted, the SAS system still creates a data set and names it according to the DATAn naming convention.

RESOURCEIN=SAS-data-set
RESIN=SAS-data-set
RIN=SAS-data-set
RESLEVEL=SAS-data-set
names the SAS data set that contains the levels available for the different resources used by the activities in the project. This data set also contains information about the type of resource (replenishable or consumable), the calendar associated with each resource, the priority for each resource and lists, for each resource, all the alternate resources that can be used as a substitute. In addition, this data set indicates whether the resource rate affects the duration or not. The specification of the RESIN= data set (also referred to as the Resource data set) indicates to PROC CPM that the schedule of the project is to be determined subject to resource constraints. For further information about the format of this data set, see the "RESOURCEIN= Input Data Set" section.

If this option is specified, you must also use the RESOURCE statement to identify the variable names for the resources to be used for resource-constrained scheduling. In addition, you must specify the name of the variable in this data set (using the PERIOD= option in the RESOURCE statement) that contains the dates from which the resource availabilities in each observation are valid. Furthermore, the data set must be sorted in order of increasing values of this period variable.

RESOURCEOUT=SAS-data-set
RESOUT=SAS-data-set
ROUT=SAS-data-set
RESUSAGE=SAS-data-set
names the SAS data set in which you can save resource usage profiles for each of the resources specified in the RESOURCE statement. This data set is also referred to as the Usage data set in the rest of this chapter. In the Usage data set you can save the resource usage by time period for the early start, late start, and resource-constrained schedules and for the surplus level of resources remaining after resource allocation is performed.

By default, it provides the usage profiles for the early and late start schedules if resource allocation is not performed. If resource allocation is performed, this data set also provides usage profiles for the resource-constrained schedule and a profile of the level of remaining resources.

You can control the types of profiles to be saved by using the ESPROFILE (early start usage), LSPROFILE (late start usage), RCPROFILE (resource-constrained usage), or AVPROFILE (resource availability after resource allocation) options in the RESOURCE statement. You can specify any combination of these four options. You can also specify the ALL option to indicate that all four options (ESPROFILE, LSPROFILE, RCPROFILE, AVPROFILE) are to be in effect. For details about variable names and the interpretation of the values in this data set, see the "RESOURCEOUT= Usage Data Set" section.

RESOURCESCHED=SAS-data-set
RESSCHED=SAS-data-set
RSCHEDULE=SAS-data-set
RSCHED=SAS-data-set
names the SAS data set in which you can save the schedules for each resource used by any activity. This option is valid whenever the RESOURCE statement is used to specify any resource requirements. The resulting data set is especially useful when resource-driven durations or resource calendars cause the resources used by an activity to have different schedules.

SUPPRESSOBSWARN
turns off the display of warnings and notes for every observation with invalid or missing specifications.

WORKDATA=SAS-data-set
WORKDAY=SAS-data-set
identifies a SAS data set that defines the work pattern during a standard working day. Each numeric variable in this data set (also referred to as the Workday data set) is assumed to denote a unique shift pattern during one working day. The variables must be formatted as SAS time values and the observations are assumed to specify, alternately, the times when consecutive shifts start and end. See the "Multiple Calendars" section for a description of this data set.

XFERVARS
indicates that all relevant variables are to be copied from the Activity data set to the Schedule data set. This includes all variables used in the ACTUAL statement, the ALIGNDATE and ALIGNTYPE statements, the SUCCESSOR statement, and the RESOURCE statement.

Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Top
Top

Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.