0% found this document useful (0 votes)
5 views51 pages

Chap 6

Chapter 6 discusses the PM Procedure, an interactive tool for project planning, control, and monitoring, which shares similar syntax with the CPM procedure but includes additional options and a different default behavior. The PM Window allows users to view and edit project data through Table and Gantt Views, facilitating project management tasks. The chapter also outlines the procedure's syntax, options, and user interface features, emphasizing its integration into project management applications.

Uploaded by

Milin Desai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views51 pages

Chap 6

Chapter 6 discusses the PM Procedure, an interactive tool for project planning, control, and monitoring, which shares similar syntax with the CPM procedure but includes additional options and a different default behavior. The PM Window allows users to view and edit project data through Table and Gantt Views, facilitating project management tasks. The chapter also outlines the procedure's syntax, options, and user interface features, emphasizing its integration into project management applications.

Uploaded by

Milin Desai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 51

Chapter 6

The PM Procedure

Chapter Table of Contents

OVERVIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
GETTING STARTED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
SYNTAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
PROC PM Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
PM WINDOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
User Interface Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
Project Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
Table View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
Gantt View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
Creating and Editing Projects . . . . . . . . . . . . . . . . . . . . . . . . . . 650
Setting Activity Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
Saving and Restoring Preferences . . . . . . . . . . . . . . . . . . . . . . . 654
Sorting Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
Setting the Project Font . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656
Renumbering the Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . 656
Printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656
DETAILS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
Schedule Data Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
Project Data Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659
TIMENOW Macro Variable . . . . . . . . . . . . . . . . . . . . . . . . . . 660
MDBTOPM Macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
EXAMPLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
Example 6.1 Defining a New project . . . . . . . . . . . . . . . . . . . . . . 661
Example 6.2 Adding Subtasks to a Project . . . . . . . . . . . . . . . . . . . 666
Example 6.3 Saving and Comparing Baseline Schedules . . . . . . . . . . . 668
Example 6.4 Effect of Calendars . . . . . . . . . . . . . . . . . . . . . . . . 671
Example 6.5 Defining Resources . . . . . . . . . . . . . . . . . . . . . . . . 674
Example 6.6 Editing Progress . . . . . . . . . . . . . . . . . . . . . . . . . 678
634  Chapter 6. The PM Procedure

SAS OnlineDoc: Version 8


Chapter 6
The PM Procedure
Overview
The PM procedure is an interactive procedure that can be used for planning, control-
ling, and monitoring a project. The syntax and the scheduling features of PROC PM
are virtually the same as those of the CPM procedure. However, since the PM pro-
cedure is interactive, there are a few extra options that are available and a few other
options that have a default behavior that is different from the CPM procedure. These
differences are noted in the “Syntax” section on page 637 section. One major differ-
ence is that only the Activity-On-Node representation of the project is supported in
PROC PM. In other words, TAILNODE and HEADNODE statements are not sup-
ported.
For a complete description of the syntax and the scheduling algorithm for the CPM
procedure, refer to Chapter 2, “The CPM Procedure.”
When PROC PM is invoked with the activity network representation, an interactive
window is opened that displays a Table View of the project on the left and a Gantt
View of the project on the right. You can add activities and edit the project data
using the Table View. You can also use the Gantt View to move activities, change
the durations of the activities, and add precedence constraints between the activities.
These features are described in the “PM Window” section on page 639.
The PM procedure is designed to facilitate its inclusion in a Project Management ap-
plication, such as PROJMAN. Any changes that are made to the activity network or
to the activity durations, resource requirements, alignment specifications, and other
activity information need to be saved in the resulting Schedule Output data set. Fur-
ther, you should be able to use this output data set as input to a future invocation
of PROC PM and continue to manage the project. Thus, there are some differences
in the design of the Schedule Output data set (defined in PROC CPM) to allow the
integration of PROC PM into a Project Management application. The differences
between the Schedule data sets in the two procedures are described in the “Schedule
Data Set” section on page 658.

Getting Started
Consider the simple Software Development Project described in the "Getting Started"
section of Chapter 2, “The CPM Procedure.” Recall that the Activity data set, SOFT-
WARE, contains the activity descriptions, durations, and precedence constraints. The
following statements (identical to the PROC CPM invocation) initialize the project
data and invoke the PM procedure.
636  Chapter 6. The PM Procedure

data software;
input Descrpt $char20.
Duration 23-24
Activity $ 27-34
Succesr1 $ 37-44
Succesr2 $ 47-54;
datalines;
Initial Testing 20 TESTING RECODE
Prel. Documentation 15 PRELDOC DOCEDREV QATEST
Meet Marketing 1 MEETMKT RECODE
Recoding 5 RECODE DOCEDREV QATEST
QA Test Approve 10 QATEST PROD
Doc. Edit and Revise 10 DOCEDREV PROD
Production 1 PROD
;

proc pm data=software
out=intro1
interval=day
date=’01mar99’d;
id descrpt;
activity activity;
duration duration;
successor succesr1 succesr2;
run;

When you invoke the PM procedure, the PM Window appears (see Figure 6.1), con-
sisting of the Table View and the Gantt View of the project. The activities are listed
in the order in which they are defined in the Activity data set. The two views are
separated by a dividing line that can be dragged to the left or right, controlling the
size of the two views. Further, the two views scroll together in the vertical direction
but can scroll independently in the horizontal direction.
The Table View contains several editable columns (in white) that can be used to edit
the project data as well as add new activites to the project. Some of the columns (in
gray), such as the Schedule times, are not editable. The Gantt View contains a Gantt
chart of the project and displays the precedence relationships between the activities.
You can use the Gantt View to add or delete precedence constraints between activities
and to change the durations or alignment constraints of the activities by dragging the
schedule bars. Details of the interface are described in the “PM Window” section on
page 639.

SAS OnlineDoc: Version 8


PROC PM Statement  637

Figure 6.1. Software Development Project

Syntax
The syntax for PROC PM is virtually identical to that for PROC CPM. The main dif-
ference is that you replace the PROC CPM statement with the PROC PM statement.
Note also that the TAILNODE and HEADNODE statements are not supported in
PROC PM.
The form of the PROC PM statement is

PROC PM options ;

PROC PM Statement
PROC PM options ;
All the options that are available in the PROC CPM statement can also be specified in
the PROC PM statement. However, there are a few additional options available with
PROC PM, and some of the other PROC CPM options are not needed as they are the
default behavior in PROC PM.
Options Specific to PROC PM
The following options can be specified on the PROC PM statement.
NODISPLAY
invokes the procedure in a noninteractive mode. The schedule for the project is still
computed and the requested output data sets are created and saved. However, the

SAS OnlineDoc: Version 8


638  Chapter 6. The PM Procedure

PM Window is not displayed. This option is useful for scheduling large projects
that do not need to be updated interactively. Note that invoking PROC PM with the
NODISPLAY option is similar to invoking PROC CPM; however, since the format of
the Schedule Output data set is different for the two procedures, you may see some
differences in the order and content of the observations. See the “Schedule Data Set”
section on page 658 for details.
PROJECT=SAS-data-set
identifies a SAS data set that can be used to save and restore preferences that control
the project view. For example, preferences such as the font, column order, column
widths, filters, and so forth, can be saved from one invocation to another. See the
“Project Data Set” section on page 659 for more details about this data set and the
preferences that can be saved in it.
PROJECTNAME=’string’
PROJNAME=’string’
NAME=’string’
specifies a descriptive string identifying the name of the project. This string is used
to label the PM Window.
Default Options in PROC PM
The following options are the default in PROC PM.
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. This option is the
default in PROC PM. In other words, the Schedule output data set produced by PROC
PM contains one observation for every activity that appears as a value of the ACTIV-
ITY, SUCCESSOR, or PROJECT variables (as long as it has not been deleted in the
current invocation of the procedure). It also contains an observation for every activity
that is added to the project via the graphical user interface.
AUTOUPDT
requests that the procedure should assume automatic completion (or start) of activities
that are predecessors to activities already completed (or in progress). This option is
the default in PROC PM.
ESTIMATEPCTC
ESTPCTC
ESTPCTCOMP
ESTPROG
indicates that a variable named PCT– COMP is to be added to the Schedule output
data set (and the Resource Schedule output data set) that contains the percent com-
pletion time for each activity (for each resource used by each activity) in the project.
This option is the default in PROC PM.

SAS OnlineDoc: Version 8


User Interface Features  639

SHOWFLOAT
indicates that activities that are completed or in progress should have nonzero float.
This option is the default in PROC PM.
XFERVARS
indicates that all relevant variables are to be copied from the Activity data set to the
Schedule data set. This option is the default in PROC PM. The procedure carries
over to the output data set all the relevant variables from the input data set. Thus,
the Schedule output data set contains all the project information that is necessary to
schedule it.

PM Window

Figure 6.2. LAN Selection Project

The PM Window provides the standard editing and viewing functions of a typical
project management tool. It can be displayed by invoking the PM procedure or via
the Activities Window in the PROJMAN application. For an existing project, the PM
Window is populated with the activities in the project. For a new project, the PM
window is empty. Figure 6.2 displays the PM Window for one of the sample projects
included with the PROJMAN application.
After you have finished editing the project, you can close the PM Window to save the
new project data in the Schedule output data set that was specified in the invocation
of the PM procedure.

SAS OnlineDoc: Version 8


640  Chapter 6. The PM Procedure

User Interface Features


This section describes some of the typical features of the PM Window’s graphical
user interface. The PM Window provides both a Gantt View and a Table View of the
project. The size of each view can be changed by pointing the cursor at the dividing
line between the two views until it changes to a double arrow and dragging it to the
right or left.
Only part of the project may be visible in the PM Window; horizontal and verti-
cal scrollbars are provided that enable you to scroll the project data in both direc-
tions. Note that the Gantt and the Table Views are attached to each other so that they
scroll together vertically. Each view can be scrolled horizontally, independently of
the other.
The pull-down menu at the top of the PM Window provides access to several project
management functions under the Edit, View, and Project menus. For example, the
“Project” pull-down menu is shown in Figure 6.3. The commands available via the
pull-down menus are described in detail in the appropriate sections.

Figure 6.3. Project Pull-down Menu

In addition to the pull-down menus, context sensitive pop-up menus are available in
the Table and Gantt Views, the Time axis, along the arcs, and from select columns
in the Table View. Pop-up menus are displayed by positioning the cursor over a
particular object and clicking the right mouse button. For example, clicking the right
mouse button on an arc in the Gantt View displays the arc pop-up menu shown in
Figure 6.4.

Figure 6.4. Arc Pop-up Menu

In some situations, the pop-up menu selection can lead to a dialog box that requires
you to type in a value in one or more of the fields in the box. For example, selecting
“Edit Lag...” from the arc pop-up menu leads to the dialog box displayed in Figure
6.5. (See the “Create Nonstandard Precedence Relationships” section on page 652
for a discussion of nonstandard precedence constraints.)

SAS OnlineDoc: Version 8


Project Hierarchy  641

Figure 6.5. Edit Lag Dialog Box

The Table View displays project data in a tabular format. Some of the columns are
editable (white background) while other columns, which are computed by the proce-
dure, are not editable (gray background). The Gantt View always displays the early
start schedule of the project. In addition, it also displays the resource-constrained
schedule (if resources are present), the actual schedule (if the project has started and
is in progress), and the baseline schedule (if a baseline schedule is saved for the
project.) The display of all the schedule bars (except the Early Schedule bar) can be
toggled on or off using the pop-up menu from the Gantt View.
Note that each row of the combined Table View and Gantt View represents one ac-
tivity (also referred to as task in this chapter). Any change in data or movement of a
row in one view is also reflected in the other.
In addition to the pull-down and pop-up menu actions, several drag-and-drop type of
actions are available within the PM Window. You can move the columns and rows
of the Table View by selecting a row or column and dragging to the desired position.
You can also change the width of the columns by dragging the column dividers in the
Table header region.
You can manipulate the durations of the tasks by changing the length of the Early
Schedule bar in the Gantt View. You can also move the task in time by dragging
the Early Schedule bar over to a new position. This affects the Target Date for the
associated task.
Any of the preceding tasks may result in a change to the project schedule that is
immediately reflected in the Table and Gantt Views. All editing abilities and the cor-
responding changes to the schedule are described in detail in the following sections.

Project Hierarchy
The PM procedure displays a hierarchical project structure if it is invoked with the
PROJECT statement. If the procedure is invoked without a PROJECT statement, the
supertask and subtask relationship is not supported, and all the activities are consid-
ered to be at the same level, belonging to a single project. Note that, in the PROJMAN
application, the PM procedure is always invoked with the PROJECT statement.
If the PROJECT statement is used, then a task’s level in the project hierarchy is
indicated in the Table View by using small square boxes to the left of the activity
number in the Job Nbr column. Empty boxes indicate that the activity does not have

SAS OnlineDoc: Version 8


642  Chapter 6. The PM Procedure

any subtasks (it is a leaf activity), while filled boxes indicate that the activity is a
supertask. Further, a Project Summary task is included to represent the root task (or
Summary Task) of the project. This task is positioned at the top of the list of activities,
and its display can be toggled on or off by selecting “Display Summary Task” from
the “View” pull-down menu (see Figure 6.6).

Figure 6.6. View Pull-down Menu

In the Gantt View, supertasks are indicated by vertical cones at the end of their corre-
sponding schedule bars.
Note that the durations of the supertasks are determined by the overall duration of
their subtasks. Thus, you cannot change the duration of a supertask.
If there is no PROJECT statement, all menu selections that correspond to the multi-
project structure are grayed out and are unavailable for selection. For example, the
“Display Summary Task” selection in Figure 6.6 will be grayed out.

Table View
The Table View displays information about a project in tabular form. It displays activ-
ities along with their descriptions, various activity schedules, resource requirements,
calendars, and target dates. The hierarchical information about an activity is provided
in the Job Nbr column by a number of small square boxes to the left of the activity
number. The number of square boxes corresponds to the level of the activity in the
project hierarchy. Empty boxes indicate that the activity does not have any subtasks
or that it is a leaf activity, while filled boxes indicate that the activity is a supertask.
Some columns in the Table View are editable while others are write-protected. The
editable columns are lighter in color than the noneditable ones. In general, a user can
type into all columns that provide input to the project while all other columns that
contain output values from PROC PM are write-protected. For example, in Figure
6.2, the WBS Code column cannot be edited while the activity and Duration columns
can be edited.

SAS OnlineDoc: Version 8


Table View  643

In the Table View you can add or delete activities, add subtasks, change the order of
the columns or the activities, edit activity information, and so on. These tasks are
described in the following sections.
Add/Copy/Delete Tasks
Clicking with the right mouse button on any task in the Table View displays the pop-
up menu shown in Figure 6.7. From this pop-up menu, you can Add/Copy/Delete
the selected task. If the “Add Task” menu item is selected, the new task is added
immediately following the selected task. If the PM procedure is invoked with the
PROJECT statement (as is always the case if you use PROJMAN), you can also add
a subtask to the selected task. If the “Copy Task” menu item is selected, a copy of
the selected task is added to the bottom of the Table View. The new task has the same
duration and calendar as the selected task. If the selected task is a supertask, all its
subtasks (and any internal precedence constraints) are copied as well.

Figure 6.7. Table View Pop-up Menu

Change Column Width


The width of a column in the Table View can be increased or decreased by dragging
(with the left mouse button) the column dividers in the Table Header region of the
Table View. When the cursor is positioned on the column divider, it changes to a
double arrow. Dragging it to the right or left increases or decreases the width of the
column.
Change the Order of the Columns

Figure 6.8. Move Columns Pull-down Menu

The display order of columns in the Table View can be changed in several ways:

 Drag the column in the header row and drop it to the destination.
 Select “View” from the pull-down menu and then choose “Move Columns to
Left” (see Figure 6.8). Choosing any of the available options moves the corre-
sponding columns to the leftmost portion of the Table View.

SAS OnlineDoc: Version 8


644  Chapter 6. The PM Procedure

Edit Durations
To change the duration of an activity, edit the Duration column in the Table View.
Note that changing an activity’s duration to 0 changes the activity into a Milestone.
Activity durations can also be changed in the Gantt View.
Edit Alignment Constraints
Scroll to columns named Target Date and Target Type. Enter one of either SGE, SLE,
MS, MF, FGE or FLE in the Target Type column. You can either type the values or
select them from the pop-up menu displayed by pressing the right mouse button in
the Target Type column (see Figure 6.9). Enter the appropriate date in the Target
Date column. You can also view these columns by selecting View->Move Columns
to Left->Target Dates from the pull-down menu (Figure 6.8). You can also change an
activity’s alignment constraints in the Gantt View.

Figure 6.9. Target Type Pop-up Menu

Edit Calendars
To change an activity’s calendar, you can enter the calendar number in the Activity
Calendar column or the calendar description in the Calendar Name column. Note
that the calendars that can be assigned to an activity are predefined in the Calendar
data set. To see a list of the calendars, you can click in one of the calendar columns
with the right mouse button. This will pop up a list of calendars, from which you can
select the activity’s calendar. See Figure 6.10 for an example of a calendar pop-up
menu with two calendars.

Figure 6.10. Calendar Pop-up Menu

Edit Resource Requirements


You can change the amount of resources required for an activity by editing the Re-
source columns in the Table View. Changing the resource requirement causes the
project to be rescheduled using the new resource specifications. See the “Edit Re-
source Requirements” section on page 653.
Edit Progress Information
You can edit the Actual Start, Actual Finish, Percent Complete or Remaining Dura-
tion for an activity by editing one of the Progress Information columns in the Table

SAS OnlineDoc: Version 8


Gantt View  645

View. Note that by changing one of these columns, all the other related progress
columns may also be affected. For example, entering 100 in the Percent Complete
column for an activity that is in progress updates the Remaining Duration column to
0, and the Actual Finish column is filled in appropriately. You can also modify the
progress information of an activity in the Gantt View.
Expand/Collapse Supertasks
Double clicking on a supertask in the Table View toggles the expand/collapse switch.
This action enables you to either view or hide all the subtasks of the supertask.
Hide Tasks
An individual task can be hidden by clicking the right mouse button over the task
in the Table View and choosing “Hide” from the menu shown in Figure 6.7. Tasks
can also be hidden from view using several filters described in the “Setting Activity
Filters” section on page 654.
Move Tasks
Drag with the left mouse button anywhere in the row corresponding to an activity you
want to move and drop it to the destination.

Gantt View
In the Gantt View, activity schedules are pictorially depicted by horizontal bars. There
is one bar for each of the early, resource, actual, and baseline schedules. For the Early
Schedule bar, critical activities are marked in different colors than the noncritical
activities. Weekends are marked by shaded vertical rectangles running through the
chart. Supertasks are differentiated from leaf activities by anchoring vertical cones at
the ends of their Early Schedule bars.
The Gantt View is displayed with a rectangular grid that can be turned on or off by
selecting “Grid” from the pop-up menu (see Figure 6.11) that is displayed by clicking
anywhere in the Gantt View with the right mouse button.

Figure 6.11. Gantt View Pop-up Menu

The pop-up menu in the Gantt View also enables you to toggle the display of the
Actual, Resource, or Baseline Schedule bars. Note that these bars can be displayed
in the Gantt View only if the project data contain the actual, resource-constrained, or
baseline schedules, respectively.
In addition to displaying the activity schedules in an easy-to-view format, the Gantt
View in the PM Window can also be used to change the durations of the activities, add
or delete precedence constraints, set activity alignment constraints, or set progress
information.

SAS OnlineDoc: Version 8


646  Chapter 6. The PM Procedure

You can also change several of the display attributes of the Gantt View by using the
Time Axis pop-up menu (see Figure 6.12) to set the scale of the axis, format the time
axis labels, set the units of display, and so forth. All of these tasks are described in
the following sections.

Figure 6.12. Time Axis Pop-up Menu

Change the Format of the Time Axis


The format of the major axis can be changed by clicking with the right mouse button
on the header row of the Gantt View and choosing “Format” for the major axis. For
the minor axis, choose “Format Minor.” The selections available for the formats are
shown in Figure 6.13 and Figure 6.14. In addition to the formats explicitly listed for
the major axis, you can specify any valid numeric format by selecting “Other...” and
filling in the appropriate fields in the dialog box that is opened as a result.

Figure 6.13. Major Axis Format Pop-up Menu

Figure 6.14. Minor Axis Format Pop-up Menu

Change Increments
Increments in the Gantt View define the number of tick marks on the minor axis per
tick mark on the major axis. They can be changed by clicking with the right mouse
button on the header area and choosing “Increment” from the pop-up menu. The
available selections are shown in Figure 6.15.

SAS OnlineDoc: Version 8


Gantt View  647

Figure 6.15. Increment Pop-up Menu

Change the Scale of the Time Axis


Point the mouse to a tick mark on the major axis in Gantt View. The cursor changes
to a double arrow. Drag the tick mark horizontally to change the scale. You can also
change the scale using the “Scale” pop-up menu (see Figure 6.16) from the Time
Axis pop-up menu.

Figure 6.16. Scale Pop-up Menu

Change Units
The Time Axis Units in the Gantt View can be changed by clicking with the right
mouse button on the header bar in the Gantt View and selecting “Units” (see Figure
6.17). The default value of the units used for display is based on the specification of
the INTERVAL= parameter in the invocation of the PM procedure.

Figure 6.17. Units Pop-up Menu


Display/Hide Selected Schedules
A display/hide switch for a given schedule can be toggled by clicking with the right
mouse button in the main panel of the Gantt View and choosing the desired schedule
(see Figure 6.18).

SAS OnlineDoc: Version 8


648  Chapter 6. The PM Procedure

Figure 6.18. Gantt View Pop-up Menu

Modify Activity Alignment Constraints


An activity’s Early Schedule bar can be moved using the left mouse button. When
the mouse is positioned over the activity bar, the cursor changes to a cross hair type.
You can then drag the bar horizontally and move it to a new position. This sets an
alignment constraint of type ‘SGE’ for the selected activity with the align date corre-
sponding to the one at the left edge of the bar’s new position. Other types of align-
ment constraints can be entered by editing the Target Date and Target Type columns
as described in the “Edit Alignment Constraints” section on page 644.
Modify Durations
To change the duration of an activity, point to the right edge of the activity’s Early
Schedule bar with the left mouse button, and drag to the left or the right depending
on whether you want to decrease or increase the duration. You can also edit activity
durations in the Table View.
Modify Precedence Information
You can add precedence constraints by depressing the left mouse button at either end
of the predecessor activity bar and releasing it at either end of the successor activity
bar. The type of constraint (FS, FF, SS, SF) depends on which end of the bars the
constraints are drawn from.
You can delete precedence constraints by clicking on the arc with the right mouse
button and selecting “Delete” (see Figure 6.19).

Figure 6.19. Arc Pop-up Menu

You can modify the type of the precedence constraint or the lag value associated
with the precedence constraint by clicking on the arc with the right mouse button
and selecting “Edit Lag.” The ensuing dialog box is shown in Figure 6.20. Enter the
value of the lag duration in the first field and the type of the lag in the second field.
Valid values of lag are Finish-to-Start (FS), Start-to-Start (SS), Start-to-Finish (SF),
and Finish-to-Finish (FF).

SAS OnlineDoc: Version 8


Gantt View  649

Figure 6.20. Edit Lag Dialog Box

If calendars are defined in the project, the “Edit Lag” dialog includes the lag calendar
associated with the selected precedence constraint. You can change the lag calendar
by selecting from the list of available calendars that is displayed within the Edit Lag
dialog shown in Figure 6.21.

Figure 6.21. Edit Lag Dialog Box (Multiple Calendars)

SAS OnlineDoc: Version 8


650  Chapter 6. The PM Procedure

Modify Progress Information


To modify the Progress using the Gantt View, you must include the Actual Schedule
in the view. You can drag the actual schedule bar for the activity to change the amount
of progress on the activity; you can also move the activity’s actual bar to change the
Actual Start of the activity.
When the project contains progress information, a Timenow line is drawn in the Gantt
View, indicating the TIMENOW date. You can move the Timenow line by dragging
it. When you change the value of TIMENOW, the progress information changes for
all the activities. A confirmation window requires you to confirm that you do want
to change the progress information for all the activities. (See also the “TIMENOW
Macro Variable” section on page 660.)
You can also edit the progress columns in the Table View.

Creating and Editing Projects


The PM Window provides an easy to use interface to enter basic project information
such as a list of activities, their durations, order of precedence, resource requirements,
and so forth. You can also use the “Edit” pull-down menu (see Figure 6.22) to add or
delete progress, baseline, and other information. All these functions are described in
the following sections.

Figure 6.22. Edit Pull-down Menu

Add Activities
An activity (or task) can be added to the Project in the PM Window by clicking the
right mouse button in the Table View. If “Add Task” is chosen from the pop-up
menu, then an activity is added at the same level as the selected activity. Subtasks of
an activity can be added by selecting “Add Subtask.” These actions are also available
from the “Edit” pull-down menu (Figure 6.22) whenever an activity is selected in the
Table View. Note that the selected activity is highlighted.
To add a new task at the topmost level of the project hierarchy, choose “New Task”
from the “Edit” pull-down menu.

SAS OnlineDoc: Version 8


Creating and Editing Projects  651

Add Precedence Constraints


To add precedence constraints, point the cursor at the right edge of the predecessor
activity till it changes to a cross hair and drag it vertically up or down to the left edge
of the successor activity. By starting and dropping at different ends of the activity
bar, you can create nonstandard precedence relationships between the activities.
Add Baseline Information
Baseline information is saved in a project so that the current status of a project can be
measured against some base schedule. The baseline information can be set in several
different ways; most of the actions relating to the Baseline schedule can be performed
using the selections available from the “Edit” pull-down menu (see Figure 6.22).
 If the project data include a Baseline schedule, saved in the variables B– START
and B– FINISH, the PM Window displays the Baseline schedule when it is first
invoked. This schedule can be replaced choosing “Replace Baseline” from
the “Edit” pull-down menu. This selection can be used to reset the Baseline
schedule to a new schedule corresponding to one of the current schedules.
 If the project data do not include a Baseline schedule, it can be set in the PM
Window by selecting “Set Baseline” from the “Edit” pull-down menu (see Ex-
ample 6.3). This selection can be used to set the Baseline schedule to one of
the current schedules (see Figure 6.23). Thus, selecting “Resource” from the
pull-down menu sets the baseline schedule to the current resource-constrained
schedule. By saving the current resource-constrained schedule, you can per-
form some what-if analysis by changing some of the resource requirements or
other parameters of the project and comparing the resulting schedule with the
saved baseline schedule.

Figure 6.23. Set Baseline Pull-down Menu


 The individual Baseline values can also be edited in the Table View by chang-
ing the values in the Baseline Start and Baseline Finish columns.
 If new activities are added to the project, the Baseline values for the new tasks
are missing. These can be set to correspond to the current schedule values by
selecting “Fill Missing Baseline” from the “Edit” pull-down menu.

SAS OnlineDoc: Version 8


652  Chapter 6. The PM Procedure

 If you want to delete the Baseline information from the project data, you can
select “Delete Baseline” from the “Edit” pull-down menu.

Add Progress Information


Progress information can be included by using the ACTUAL statement, which is sim-
ilar to the one for PROC CPM. If the PM Window is invoked without the ACTUAL
statement, then Progress Information can be added to the Project from the “Edit”
pull-down menu (Figure 6.22) by choosing “Add Progress.”
Progress Information is updated by dragging the actual schedule bars horizontally (in
a manner similar to the one for changing durations) in the Gantt View or by modifying
the values in the Progress columns in the Table View. See the “Modify Progress
Information” section on page 650 and the “Edit Progress Information” section on
page 644.
For details on how the progress information is used to update the project schedule, see
the “Progress Updating” section on page 103 in Chapter 2, “The CPM Procedure.”
See also Example 6.6.
Change Duration
The duration of an activity can be changed either by typing in the Duration column
of the Table View or by dragging the activity bar at the right edge by using the left
mouse button in the Gantt View.
Copy Activities
An activity (or task) can be copied in the PM Window by clicking the right mouse
button in the Table View. If “Copy Task” is chosen from the pop-up menu, then a
copy of the selected activity is added at the end of the activities listed in the Table
View. The new task has the same duration and calendar as the selected task. If the
selected task is a supertask, all its subtasks (and any internal precedence constraints)
are copied as well.
Create Milestones
Milestones can be created by adding an activity and assigning it zero duration.
Create Nonstandard Precedence Relationships
A Finish-to-Start relationship between two activities is considered to be a standard
precedence constraint. It is created when the precedence constraint is drawn by drag-
ging the cursor from the right end of the predecessor activity bar to the left end of
the successor activity bar. Nonstandard precedence constraints are created by starting
and ending at different ends of the two activity bars. For example, a Start-to-Finish
relationship is created by dragging the cursor from the left end of the predecessor
activity bar to the right end of the successor activity bar.
In addition to specifying the type of the precedence constraint, you can also specify
a lag or lead time between the two activities. This lag value can be edited from the
Gantt View. See the “Modify Precedence Information” section on page 648.
Create Subtasks
Subtasks can be created only if the PM procedure is invoked with the PROJECT
statement or from the PROJMAN application. To create a subtask, click the right

SAS OnlineDoc: Version 8


Creating and Editing Projects  653

mouse button on the parent activity in the Table View. Then choose “Add Subtask”
from the background menu. The newly created subtask has one more little square box
than the parent task in the Job Nbr column in the Table View. The empty square boxes
denote that it is a leaf activity (a task with no subtasks). The number of boxes denote
a task’s level in the project hierarchy starting with level 0 for the Project Summary
task.
Delete Activities
An activity can be deleted in the Table View by clicking the right mouse button any-
where in the task row and choosing “Delete Task.” If the selected task is a supertask,
all its subtasks are deleted as well. Note that, in this case, a Confirmation Dialog
confirms the “Delete Supertask” action.
Delete Precedence Constraints
To delete a precedence constraint, click anywhere on the arc with the right mouse
button and choose “Delete” from the pop-up menu.
Edit Activity Alignment Constraints
Activity alignment constraints can be added/modified as described in the “Edit Align-
ment Constraints” section on page 644 and in the “Modify Activity Alignment
Constraints” section on page 648.
Edit Baseline Information
To edit the baseline schedule, scroll to the Baseline Start and Baseline Finish
columns, and type in the new values of the baseline start and finish times. Note
that you cannot change the baseline values by moving the Baseline Schedule bars.
See the “Add Baseline Information” section on page 651.
Edit Calendar Specifications
Calendars are defined by the CALEDATA= option in the PROC PM statement. This
option is similar to the corresponding option in PROC CPM. Once calendars are
defined in the Project, an activity’s calendar can be changed or set in the Table View
by editing the Activity Calendar or Calendar Name columns. You can either type
the values or select them from the pull-down menu displayed by pressing the right
mouse button in either of the Calendar columns. See the “Edit Calendars” section on
page 644.
Edit Resource Requirements
The resource requirement information for an activity can be edited in the Table View.
A column for a resource is created in the Table View when it is specified in the
RESOURCE statement.
The resource requirement information for each activity is displayed and can be edited
in the Table View. A column for a resource is created in the Table View when it is
specified in the RESOURCE statement of the PROC PM invocation, or it is created
by the Resource Manager of PROJMAN. For details about the RESOURCE state-
ment, the Resource data set, and Resource Allocation, see Chapter 2, “The CPM
Procedure.” Changing the resource requirement causes the project to be rescheduled
using the new resources.

SAS OnlineDoc: Version 8


654  Chapter 6. The PM Procedure

Setting Activity Filters


Activity filters can be set by using the project hierarchy or by selecting from a list of
activity attributes, as described in this section.

Figure 6.24. View Pull-down Menu

Activities at different levels in the hierarchy can be viewed by selecting “View” from
the pull-down menu (Figure 6.24 and choosing the appropriate level of the project
hierarchy to filter out the higher level tasks. For example, selecting “Level 2 Tasks”
displays only the tasks that are at Level 2 or lower. All activities can be viewed by
selecting “Tasks at All Levels” from the “View” pull-down menu.
Activities can also be filtered using different criteria by choosing View->Filters from
the “View” pull-down menu (see Figure 6.24). The available filters are shown in
(Figure 6.25). By default, no filter is in effect (the selection is “None”); you can save
the filter of your choice in the Preference data set (see the “Saving and Restoring
Preferences” section on page 654).

Figure 6.25. Filters Pull-down Menu

Saving and Restoring Preferences


When the PM Window is displayed for the first time for a given project, the order
and width of the columns in the Table View, the font used for the display, the size
of the window, the boundary between the Table and the Gantt Views, and several
other attributes of the display are determined by the procedure. As you add activities
and edit the Table View, you can change some of these attributes according to your

SAS OnlineDoc: Version 8


Sorting Activities  655

preference. You can also choose a different level of display or set some activity filters
(see the “Setting Activity Filters” section on page 654).
PROC PM enables you to save the attributes of the display in an indexed data set
that is specified in the PROC PM statement, using the PROJECT= option. You can
use this data set to save display preferences such as the font, column order, column
widths, filters, and so forth. See the “Project Data Set” section on page 659 for details
regarding the format of this data set.
You can save and restore the preferences from the “Project” pull-down menu, which
contains the Preferences submenu (Figure 6.26). Note that you have to explicitly save
the project preferences using the “Save” selection from this pull-down menu. Closing
the PM Window saves only the activity data of the project; it does not automatically
save the project preferences. When you restore preferences, the state used is the one
that was last saved for the project in the specified preference data set.

Figure 6.26. Preferences Pull-down Menu

Sorting Activities
Activities can be sorted by activity number, early start, late start, and resource start by
choosing Project->Sort from the “Project” pull-down menu (see Figure 6.27). Once
the activities are sorted, the Schedule output data set contains the activities in the new
sorted order. See the “Renumbering the Activities” section on page 656.

Figure 6.27. Sort Pull-down Menu

SAS OnlineDoc: Version 8


656  Chapter 6. The PM Procedure

Setting the Project Font


When the PM Window is first displayed, the font used in all the text areas of the
window is the same as the SAS font used in the Display Manager and other windows.
You can use the “Fonts” selection in the “Project” pull-down menu (Figure 6.28) to
change the font used in the PM Window. You can choose various fonts and their sizes
from the font manager thus obtained. This font can also be saved (and restored) in
the Project data set.

Figure 6.28. Project Pull-down Menu

Renumbering the Activities


When the PM Window is first displayed for the specified project, the activities are
listed in the order in which they are defined in the Activity data set. The activity
numbers displayed in the Job Nbr column correspond to this same order. Even if the
activities are rearranged, either by moving selected activites or by sorting, these num-
bers do not change. Likewise, no renumbering takes place automatically if activities
are deleted from the project.
You can use the “Renumber” selection in the “Project” pull-down menu (Figure 6.28)
to reassign consecutive numbers to the activities, starting from the first activity dis-
played.
When you close the PM Window, saving all the activity information to the Schedule
data set, the activities are numbered according to the order in which they were dis-
played at the end of the editing session. In other words, the “Close” action implicitly
invokes the “Renumber” command on the project activities. These activity numbers
are, in fact, saved as the values of the ACTID variable (see the “Schedule Data Set”
section on page 658).

Printing
The PM Window provides functionality to print the Gantt View, the Table View, or
both, provided that a printer has been selected and the correct information has been
set in the Printer Setup Window. For more information on setting up the printer
options, see the SAS companion for your operating environment or contact the SAS
Support Consultant at your site for further instructions. Print Preview can be used to
view the information before printing, and the printed output can be saved to a file. All
the printing functions are available from the “File” pull-down menu (Figure 6.29).

SAS OnlineDoc: Version 8


Details  657

Figure 6.29. File Pull-down Menu

Preview the Printed Output on the Screen


You can view the printed output on screen before actually printing it by selecting
“Print Preview” from the “File” pull-down menu.
Print Options
Select “Print Options” from the “File” pull-down menu. There are options for se-
lecting time and activity axis range and scaling of the printed output. See Figure
6.30.

Figure 6.30. Print Options Dialog Window


Save the Printed Output to a File
The printed output can be saved to a file by selecting File->Print ->Print to File.

Details
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. A few minor differences in the content of the Schedule Out-
put data set and the Project data set (not available in PROC CPM) are described in
the following sections.

SAS OnlineDoc: Version 8


658  Chapter 6. The PM Procedure

Schedule Data Set


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, enabling
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 main 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 two sets of observations, identified by two 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, the
resource requirements, and so forth. 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 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 activties 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 saved in a variable called ACTID (see the “Renumber-
ing the Activities” section on page 656). In addition to the ACTID variable,
the Schedule data set also contains a numeric variable called SUCCID, which
contains the numeric identifier for the succesor activities in the LOGIC ob-
servations. If the PROJECT statement is used in the invocation of the PM

SAS OnlineDoc: Version 8


TIMENOW Macro Variable  659

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.

Project Data Set


The Project data set is used to save and restore preferences that control the project
view. The following preferences can be saved from one invocation to another:

 text font
 time increment
 time units
 major time axis format
 minor time axis format
 schedule bars displayed (for example, Actual, Baseline, and so forth)
 chart grid
 chart scale
 table column widths
 table column order
 Table View-Gantt View dividing line
 activity filters
 activity level
 project summary
 window dimensions

The Project data set uses three variables to save the preference information:

 PROJATTR – contains a keyword identifying the project attribute; each at-


tribute has either a numeric value or a character value. The length of this vari-
able is 8.
 PRATNVAL – used for numeric data corresponding to the attribute.
 PRATCVAL – used for character data corresponding to the attribute. The
length of this variable is 200.

Note that the Project data set is used internally by the PM procedure and is not de-
signed to be altered or edited directly. Its contents may not be meaningful except to
the PM procedure.

SAS OnlineDoc: Version 8


660  Chapter 6. The PM Procedure

TIMENOW Macro Variable


The PM Window can be used to add and edit progress information to a project. When
progress information is added, the Schedule data set contains all the Progress vari-
ables (see the “Progress Updating” section on page 103 in Chapter 2, “The CPM
Procedure”).
However, all the values of the progress variables are reconciled and revised on the
basis of the value of the TIMENOW parameter. Since the PM procedure enables you
to move the TIMENOW line as well as implicitly change the value of TIMENOW by
updating the Actual Start or Finish times of the activities, the value of TIMENOW at
the end of the editing session is an important parameter of the project. This value is
saved in a macro variable called TIMENOW and can be used in subsequent editing
sessions of the same project. See Example 6.6 for an example of the use of the
TIMENOW macro variable.

MDBTOPM Macro
MDBTOPM is a SAS macro that converts Microsoft Project data saved in MDB
format to a form that is readable by the PM procedure. In the event of a succesful
conversion, the macro proceeds to invoke an instance of the PM procedure using
values for the relevant options that were determined during the course of the data
conversion. Execution of the MDBTOPM macro requires SAS/ACCESS software.
The MDBTOPM macro has two arguments; one that specifies the location of the
.MDB file and another that specifies the location of the directory for storing the SAS
data sets. The following SAS data sets are generated by the MDBTOPM macro:

 Activity data set


 Calendar data set
 Holiday data set
 Workday data set
 Resource data set
 Preferences data set

The MDBTOPM macro converts the hierarchical relationships, precedence relation-


ships, time constraints, resource availabilities, resource requirements, project calen-
dars, resource calendars, holiday information, workshift information, actual start and
finish times, and baseline start and finish times. In addition, the notes and cost fields
are also extracted and stored in the Activity data set.
Note: In order to retain the values of the options used to invoke the PM proce-
dure, you will need to save the preferences by choosing Preferences->Save from the
“Project” pull-down menu.

SAS OnlineDoc: Version 8


Example 6.1. Defining a New project  661

Examples
This section illustrates some of the interactive features of PROC PM using a few
simple examples that lead you through different stages of entering and editing project
data. A simple software development project is used in all the examples. The output
data set from one example is used as input to the next example. Where necessary,
additional data sets are created, or the input data set is modified using simple data
step code.
You could also use PROJMAN to create the software project and then proceed to each
succeeding example using the application to define the calendars, resources, and so
forth. The PROJMAN application automatically manages the required data sets.

Example 6.1. Defining a New project


In this example, a simple software development project is built from scratch, starting
with an empty Activity data set. PROC PM is invoked with an Activity data set that
has no observations and just a few variables that are required to start the procedure. In
addition to the Activity data set, a Project data set is also defined that is used to save
the display attributes of the PM Window to be used between successive invocations of
the procedure. The following program invokes PROC PM and opens a PM Window
that enables you to enter project data. The initial window is shown in Output 6.1.1.
Note that the PROJNAME= option is used in the PROC PM statement. This value
is used to label the PM Window. Also specified in the PROC PM statement is the
PROJECT= option that identifes the project attribute data set. The activities in the
project follow a weekday calendar which is indicated to PROC PM by specifying the
INTERVAL=WEEKDAY option. In the PM Window, the weekends are shaded gray
in the Gantt View.

/* Initialize the Activity data set */


data software;
length activity $20.;
input activity $ actid succid pntid duration;
datalines;
;

data softattr;
length projattr $8. pratcval $200.;
input projattr pratnval pratcval;
datalines;
;

proc pm data=software project=softattr


date=’1mar99’d interval=weekday
projname=’Software Project’
out=softout1;
act actid;
succ succid;
project pntid;
duration duration;

SAS OnlineDoc: Version 8


662  Chapter 6. The PM Procedure

id activity;
run;

Output 6.1.1. Initial PM Window

In the PM Window, enter the following tasks with the corresponding durations in the
Table View:

Design 5
Develop 10
Document 8
Test 8
Ship 0

As each task is entered, the Schedule columns in the Table View are updated with
the early and late start times, and the Early Schedule bars appear in the Gantt View.
Output 6.1.2 shows the PM Window after the five tasks have been entered. To view
the Schedule columns, you can scroll the Table View to the right or use the “View”
pull-down menu (Figure 6.6) to move the Schedule columns to the left.

SAS OnlineDoc: Version 8


Example 6.1. Defining a New project  663

Output 6.1.2. List of Tasks in the Software Project

To enter precedence constraints between two activities, such as ‘Design’ and ‘De-
velop’, draw an arc, using the left mouse button, from the end of the predecessor task
to the beginning of the successor task. Use the Gantt View to enter the following
precedence constraints:

Design --> Develop


Design --> Document
Develop --> Test
Test --> Ship

Output 6.1.3 shows the Software Project as the last precedence constraint is being
drawn. Note that, in this view of the PM Window, the Schedule columns have been
moved to the left, the grid lines in the Gantt View have been turned off (using the
menu in Figure 6.11), and the Gantt View has been scrolled to the right to bring the
end of the schedule bar for ‘Test’ into view.

SAS OnlineDoc: Version 8


664  Chapter 6. The PM Procedure

Output 6.1.3. Drawing Precedence Constraints

To check the overall project status, you can bring the Project Summary task into view
by selecting “Display Summary Task” from the “View” pull-down menu (Figure 6.6).
Note that the project duration is 23 days. The critical activities are shown in black
while the noncritical activities are gray. The Summary Task is indicated by vertical
cones at the end of its schedule bar.
For the next few examples, the units used in the Gantt View are changed to “Weeks”
using the Axis pop-up menu shown in Figure 6.12, the Summary Task is displayed
at the top of the list of activities, and the Activity description columns are shown
in the Table View. The “Project” pull-down menu can be used to save these window
settings in the Project data set. The view of the project corresponding to these settings
is shown in Output 6.1.4. You can end the interactive editing session by closing the
window. All the activity and precedence information is saved in the output data set,
SOFTOUT1, displayed in Output 6.1.5. Note the two sets of observations in this
data set: the first contains all the schedule information for all the activities, and the
second lists all the precedence relationships between activities.

SAS OnlineDoc: Version 8


Example 6.2. Adding Subtasks to a Project  665

Output 6.1.4. Project Schedule

Output 6.1.5. Schedule Data Set

Schedule Data Set

O P P W d a S
B R R B u c U
S O O S S r P t C
_ P J J _ A U a A i C
T N _ _ C C C t R v E
O Y T D L O T C i E i S
b P I U E D I I o N t S
s E D R V E D D n T y R

1 SCHEDULE . 23 0 0 0 . 23 Project Summary


2 SCHEDULE 0 . 1 0.0 1 . 5 Project Summary Design
3 SCHEDULE 0 . 1 0.1 2 . 10 Project Summary Develop
4 SCHEDULE 0 . 1 0.2 3 . 8 Project Summary Document
5 SCHEDULE 0 . 1 0.3 4 . 8 Project Summary Test
6 SCHEDULE 0 . 1 0.4 5 . 0 Project Summary Ship
7 LOGIC . . . 1 2 5 Design Develop
8 LOGIC . . . 1 3 5 Design Document
9 LOGIC . . . 2 4 10 Develop Test
10 LOGIC . . . 4 5 8 Test Ship

A A E L
L L E _ L _ T F E L
G G _ F _ F _ _ E S L S
N N S I S I F F S _ S _
D T T N T N L L _ D _ D
O L A Y A I A I O O A E A E
b A T P R S R S A A S S S S
s G E E T H T H T T C C C C

1 . 01MAR99 31MAR99 01MAR99 31MAR99 0 0 0 0 0 0


2 . 01MAR99 05MAR99 01MAR99 05MAR99 0 0 1 5 1 5
3 . 08MAR99 19MAR99 08MAR99 19MAR99 0 0 2 4 2 4
4 . 08MAR99 17MAR99 22MAR99 31MAR99 10 10 3 3 3 3
5 . 22MAR99 31MAR99 22MAR99 31MAR99 0 0 4 2 4 2
6 . 01APR99 01APR99 01APR99 01APR99 0 0 5 1 5 1
7 . . . . . . . . . . .
8 . . . . . . . . . . .
9 . . . . . . . . . . .
10 . . . . . . . . . . .

SAS OnlineDoc: Version 8


666  Chapter 6. The PM Procedure

Example 6.2. Adding Subtasks to a Project


In this example, the output data set from Example 6.1 is used as input to PROC
PM. The following statements bring up the saved view of the project as shown in
Output 6.2.1. Note that this view is identical to the view saved in Output 6.1.4.

proc pm data=softout1 project=softattr


date=’1mar99’d interval=weekday
projname=’Software Project’
out=softout1;
act actid;
succ succid;
project pntid;
duration duration;
id activity;
run;

Output 6.2.1. Project Schedule

In the invocation of PROC PM, the output data set name is the same as the input data
set. Thus, it is possible to make changes to the Activity data set using PROC PM and
then save the results back to the original data set.
In the current view of the Software Project, you want to add some subtasks to the
‘Design’ and ‘Develop’ tasks. Suppose that these two tasks are broken into two
subtasks each, one for ‘Module 1’ and the other for ‘Module 2’. Further, you want
to remove the precedence constraint between the ‘Design’ and ‘Develop’ phases and
add constraints between the respective modules. You can accomplish these tasks by
making the following editing changes in the PM Window.

SAS OnlineDoc: Version 8


Example 6.2. Adding Subtasks to a Project  667

1. Use the Table View pop-up menu to add the following subtasks to ‘Design’:
Module 1: 5 days
Module 2: 3 days

2. Add a link from ‘Module 1’ to ‘Module 2’.


3. Use the Table View pop-up menu to add the following subtasks to ‘Develop’:
Module 1: 6 days
Module 2: 5 days

4. Add a link from ‘Module 1’ to ‘Module 2’.


5. Remove the link between the supertasks ‘Design’ and ‘Develop’ by clicking
on the arc and selecting “Delete” from the pop-up menu.
6. Add a link from ‘Module 1’ under ‘Design’ to ‘Module 1’ under ‘Develop’.
7. Add a link from ‘Module 2’ under ‘Design’ to ‘Module 2’ under ‘Develop’.

The resulting project schedule is displayed in Output 6.2.2 and saved in the data set
SOFTOUT1. Note that the new project duration is 24 days.
Output 6.2.2. Project Schedule

SAS OnlineDoc: Version 8


668  Chapter 6. The PM Procedure

Example 6.3. Saving and Comparing Baseline Schedules


This example shows you how to save a baseline schedule and use it for comparing
new schedules. Recall that in Example 6.2 the Schedule data are saved in the data
set SOFTOUT1. Thus, the following invocation of PROC PM displays the Software
project in its last saved state (as in Output 6.2.2, but with the WBS codes all filled in).
At the end of the editing session, the schedule is saved in the data set SOFTOUT3.

proc pm data=softout1 project=softattr


date=’1mar99’d interval=weekday
projname=’Software Project’
out=softout3;
act actid;
succ succid;
project pntid;
duration duration;
id activity;
run;

Use the “Set Baseline” pull-down menu (Figure 6.23) to save the current Early Sched-
ule as a Baseline Schedule. The resulting display is shown in Output 6.3.1. Note that
the Gantt View now shows the Baseline schedule, in addition to the Early Schedule.
Also, the activities have been numbered to be sequential in the current view (see the
“Renumbering the Activities” section on page 656).
Output 6.3.1. Using Baseline Schedules

SAS OnlineDoc: Version 8


Example 6.3. Saving and Comparing Baseline Schedules  669

The baseline schedule is useful in determining the effect of changes to the project on
the schedule. For example, suppose there is a directive from the Director of your divi-
sion that all the developers are required to attend a User Interface Standards Meeting
before starting the development of Module 2. This meeting has been scheduled to
start on March 15, 1999 and is expected to take 3 days. What is the effect of this
directive on your project schedule?
To see this, you can make the following changes in the PM Window:

1. Add a new task to the project by selecting “New Task” from the “Edit” pull-
down menu.
2. To edit the newly entered task, you may need to scroll down.
3. Type in the name of the task: ‘UI Meeting’. Set its duration to 3.
4. In the Gantt View, draw a link from this new task to Task 6 (‘Module 2’ under
‘Develop’).
5. Also in the Gantt View, grab the task, ‘UI Meeting’, using the left mouse button
and drag it to the tick mark corresponding to 15Mar99.

The resulting view is shown in Output 6.3.2. Note that the view may differ depending
on the display parameters of your device. It is easy to see that, due to the 3-day
meeting that is mandated, there is a delay in the project schedule (the project duration
is now 26 days).
Output 6.3.2. Effect of UI Meeting on Schedule

SAS OnlineDoc: Version 8


670  Chapter 6. The PM Procedure

You can get a complete picture of the effect on the schedule by examining all the
Schedule columns that are shown in the Table View. Output 6.3.3 shows the Schedule
columns, the Baseline columns, and the Target Date and Type columns in the Table
View. To obtain this view, some of the columns have been moved and the Baseline
Schedule bars (in the Gantt View) have been hidden from the display.
Output 6.3.3. Table View Showing all Schedules

If the project delay resulting from the UI Meeting is of concern, you may want to
schedule the Meeting on an earlier date. Suppose the revised start date of the Meeting
is March 10, 1999. To see the effect of the change, you can do the following:

1. Revert to the saved project preferences so that both the Table and the Gantt
Views are visible.
2. Use the “View” pull-down menu to move the Target Dates columns to the left
in the Table View.
3. Scroll down, if necessary, to bring the task ‘UI Meeting’ into view.
4. Change the Target Date column for this task to ‘10Mar99’.

The resulting view is displayed in Output 6.3.4. Note that, as a result of this change,
all the activities are back on schedule as the new schedule coincides with the saved
baseline schedule. The last activity was defined after the baseline schedule had been
saved in Example 6.2; hence, there is no baseline schedule bar for this activity. You
can use the “Fill Missing Baseline” selection from the pull-down menu shown in
Figure 6.22 to set the baseline schedule for the ‘UI Meeting’ to be the current early
schedule.

SAS OnlineDoc: Version 8


Example 6.4. Effect of Calendars  671

Output 6.3.4. Editing Target Date

Example 6.4. Effect of Calendars


Continuing with the project scenario in the preceding examples, you want to explore
other ways of shortening the project duration. One possible alternative is to work
overtime. As the project manager, you would like to see the effect on the schedule if
you change the calendar for all the Development tasks to a six-day calendar.
Calendars are defined using the Calendar data set, as in the CPM procedure. Al-
ternately, if you are using the PROJMAN application, you can use the Calendars
Window to define a six-day calendar. This example defines a Calendar data set and
invokes PROC PM as follows. Note that, in order to use calendars, the Activity data
set needs to have a CALID variable, which is added in a simple DATA step.

/* Define a Calendar data set identifying */


/* Saturday as a workday */
data calendar;
input calid calname $ _sat_ $;
datalines;
1 Sixday WORKDAY
;

/* Add the CALID variable to the Activity data set */


data softout3;
set softout3;
calid=.;
run;

SAS OnlineDoc: Version 8


672  Chapter 6. The PM Procedure

/* Use softout3 as the Activity data set and specify */


/* the calendar data set defined above. */
proc pm data=softout3 project=softattr
calendar=calendar
date=’1mar99’d interval=weekday
projname=’Software Project’
out=softout4;
act actid;
succ succid;
project pntid;
duration duration;
id activity;
calid calid;
run;

When the PM procedure initializes the PM Window, it attempts to restore all the
display settings using the values in the Project data set, SOFTATTR. However, the
new Activity data set has an extra variable, calid, which leads to two new columns in
the Table View, one for the Activity Calendar (which displays the Calendar ID) and
the other for the Calendar Name. These columns are added at the right end of the
Table View and can be seen by scrolling to the right. The resulting view is displayed
in Output 6.4.1.
Output 6.4.1. Calendar Columns

SAS OnlineDoc: Version 8


Example 6.4. Effect of Calendars  673

By default, all the activities are assumed to follow the standard 5-day calendar. Now,
you want to change the calendar for the supertask ‘Develop’ and all its subtasks to be
the Sixday calendar defined in the data set CALENDAR. Note that, in the calendar
definition, it is sufficient to specify that Saturday is a working day. All the other days
of the week default to the default calendar’s work pattern (see the “Default Calendar”
section on page 97 in Chapter 2, “The CPM Procedure”).
To facilitate the editing of the calendar values and to see the effect on the project
duration, reorder the columns (using the left mouse to drag the columns in the Ta-
ble Header) to display the activity, Activity Calendar, Calendar Name, and Duration
columns in the Table View. You may need to move the dividing line between the
Table and Gantt Views.
You can enter the Calendar values by typing in the number, 1, in the Activity Calendar
column or the value ‘Sixday’ in the Calendar Name column. You can also use the
Calendar pop-up menu in one of the calendar columns to select the desired calendar
(see Output 6.4.2). Note that the project duration has reduced to 22 days as a result
of the 6-day calendar.
Output 6.4.2. Effect of Sixday Calendar

To see the effect on the individual activities, change the units to “Days” in the Gantt
View and enlarge the Gantt View, as shown in Output 6.4.3.

SAS OnlineDoc: Version 8


674  Chapter 6. The PM Procedure

Output 6.4.3. Gantt View of Calendar Effect

Example 6.5. Defining Resources


In all the preceding examples, it was assumed that you had enough resources to work
on the different tasks. Unfortunately, as a project manager you need to schedule your
project using the limited set of resources available to you. In this example, you will
assign some project resources and schedule the project subject to resource constraints.
In order to assign resources to the tasks, you need to add resource variables to the
Activity data set as well as define a resource availability (Resource) data set.
Suppose that the resources that you are interested in are Tester and Programmer. The
following statements set up the project data needed to perform resource constrained
scheduling with PROC PM using the output data produced in Example 6.4.

/* Define a Resource data set specifying */


/* 1 Tester and 1 Programmer as the */
/* available resources */
data resources;
input _date_ date7. Tester Programmer;
datalines;
01jan99 1 1
;

/* Add the resource variables Tester and */


/* Programmer to the Activity data set */
/* (the output data set saved in last example) */
data softout4;
set softout4;

SAS OnlineDoc: Version 8


Example 6.5. Defining Resources  675

Tester=.;
Programmer=.;
run;

/* Use softout4 as the Activity data set and */


/* specify the Resource data set defined above. */
/* Save the schedule in softout5. */
proc pm data=softout4 project=softattr
calendar=calendar
resourcein=resources
date=’1mar99’d interval=weekday
projname=’Software Project’
out=softout5;
act actid;
succ succid;
project pntid;
duration duration;
id activity;
calid calid;
resource Tester Programmer / per=_date_;
run;

Output 6.5.1. Adding Resources to the Project

Output 6.5.1 shows the Table and Gantt Views of the project after rearranging some
of the columns, moving the dividing line to show the resource columns, and bringing
the Resource Schedule bar into display. The Resource Schedule bar is shown be-
tween the Early Schedule bar and the Baseline Schedule bar. Note that the resource
schedule coincides with the early schedule because no resource requirements have
been specified for either of the two resources.

SAS OnlineDoc: Version 8


676  Chapter 6. The PM Procedure

You can now use the Table View to enter the resource requirements for each task. Set
the requirement for the resource Tester to ‘1’ for the tasks ‘Document’ and ‘Test’,
and the requirement for the resource Programmer to ‘1’ for the tasks numbered ‘2’,
‘3’, ‘5’, and ‘6’. The resulting schedule is displayed in Output 6.5.2. In this view, the
baseline schedule is not displayed. You can see that several of the tasks have been
delayed, resulting in lengthening the project duration to 29 weekdays.
Output 6.5.2. Editing Resource Requirements

You can set the resource constrained schedule as a baseline to do some "what-if"
analysis. For example, suppose you would like to determine the effect of adding
another programmer to the project. In order to change the resource availability, you
need to save the current project, edit the Resource availability data set to add another
programmer, and then reinvoke the PM procedure.
First, in the PM Window displayed in Output 6.5.2, do the following:

1. Re-display the Baseline Schedule bar.


2. Use the “Replace Baseline” selection from the “Edit” pull-down menu to select
the Resource Schedule as the new baseline schedule.
3. Save the project preferences.
4. Close the PM Window.

Reinvoke PROC PM after defining a new resource availability:

/* Change the resource availability for Programmer to 2 */


data resources;
input _date_ date7. Tester Programmer;

SAS OnlineDoc: Version 8


Example 6.6. Editing Progress  677

datalines;
01jan99 1 2
;

/* Use softout5 as the Activity data set and specify */


/* the Resource data set defined above. */
/* Save the schedule back to softout5. */
proc pm data=softout5 project=softattr
calendar=calendar
resourcein=resources
date=’1mar99’d interval=weekday
projname=’Software Project’
out=softout5;
act actid;
succ succid;
project pntid;
duration duration;
id activity;
calid calid;
resource Tester Programmer / per=_date_;
run;

Using the new resource availability, you reduced the project duration by 5 days. The
resulting schedule is displayed in Output 6.5.3, which also shows the baseline sched-
ule corresponding to the earlier resource availability data set.
Output 6.5.3. Comparison of Two Resource Schedules

SAS OnlineDoc: Version 8


678  Chapter 6. The PM Procedure

Example 6.6. Editing Progress


Once a project plan has been established and the project is under way, a major part of
a project manager’s responsibility is to monitor the project as it progresses. This ex-
ample uses the PM Window to add progress information to the project and discusses
some of the related editing functions.
In the final window of Example 6.5, do the following:

1. Delete the baseline schedule using the “Edit” pull-down menu.


2. From the “Edit” pull-down menu, select “Add Progress”.

The resulting display is shown in Output 6.6.1. The Gantt View now shows the Actual
Schedule bar between the Early Schedule bar and the Resource Schedule bar. It
also displays a Timenow Line. Since no progress information has been entered, the
Timenow Line is drawn at the beginning of the project and all the Actual Schedule
bars show only a handle that can be used to drag progress for a particular task.
Output 6.6.1. Adding Progress Information to Project

You can enter progress information in several ways:

 Drag the Timenow Line to update progress information for several tasks at
once. The actual start and finish times (until the Timenow date) are set assum-
ing that the tasks follow the resource constrained schedule. (If there are no
resource constraints, the tasks are assumed to follow the early schedule.)

SAS OnlineDoc: Version 8


Example 6.6. Editing Progress  679

 Use the handle on the Actual Schedule bar for a given task to drag the progress
bar using the left mouse button.

 Bring the Progress columns into view in the Table View and edit one of the
Progress columns.

As an example, use the left mouse button to drag the Timenow Line to the tick mark
corresponding to 15MAR99. The resulting window (after reordering and resizing
some columns and scrolling the Gantt View) is shown in Output 6.6.2.
Output 6.6.2. Moving the Timenow Line

Note that some of the activities are completed while others are still in progress. If the
project data are saved at this point, the Schedule data set will have all the Progress
variables (A– START, A– FINISH, PCT– COMP, and REM– DUR). However, for
the PM procedure to be able to recapture the exact state of the schedule as it was
saved, it also needs to know the value of TIMENOW when the project data was last
saved. This value (15Mar99 for the current example) is saved as a macro variable
named TIMENOW (see the “TIMENOW Macro Variable” section on page 660).
To see how the Actual information can be used from one invocation of PROC PM to
the other, save the project as displayed in Output 6.6.2 and then reinvoke PROC PM to
continue editing the progress information. Note that if you are using the PROJMAN
application, the value of TIMENOW is automatically saved by the application and
used in subsequent editing of the project.

SAS OnlineDoc: Version 8


680  Chapter 6. The PM Procedure

Recall from the last invocation of PROC PM that the data are saved in the data set
SOFTOUT5. To use the saved progress information, invoke PROC PM as follows:

/* Use softout5 as the Activity data set and specify */


/* the Resource data set defined in the last example.*/
/* Save the schedule in softout6. */
proc pm data=softout5 project=softattr
calendar=sasuser.calendar
resourcein=resources
date=’1mar99’d interval=weekday
projname=’Software Project’
out=softout6;
act actid;
succ succid;
project pntid;
duration duration;
id activity;
calid calid;
/* Use the ACTUAL statement to specify the Progress */
/* variables and the value of TIMENOW saved from the*/
/* previous invocation */
actual / as=a_start af=a_finish
remdur=rem_dur pctcomp=pct_comp
timenow=&timenow;
resource Tester Programmer / per=_date_;
run;

The preceding program displays the PM Window for the updated Software project.
Now use the Table View to edit some of the Progress columns. To do so, you can
either scroll to the Progress Columns or move these columns to the left in the Table
View using the appropriate selection from the “View” pull-down menu (Figure 6.8).
Task number 6 (‘Module 2’ under ‘Develop’) has a Remaining Duration value of 4.
At this point in time, you may notice that you have misjudged the amount of work
involved and that you need only one more day to finish the task. Enter 1 in the
Remaining Duration column. This editing change immediately causes the Percent
Complete column to update to 50, indicating that 50% of the work is completed. The
resulting effect on the project schedule is shown in Output 6.6.3 (the window has been
scrolled down to allow the second half of the project to be visible). Note that reducing
the duration of the ‘Module’ task did not affect the project end date. The duration
of the project is still 24 days. Studying the schedule of the ‘Document’ and ‘Test’
tasks, you notice that the delay to the project is caused by the fact that the resource-
constrained schedule of the task ‘Test’ is delayed due to resource constraints.

SAS OnlineDoc: Version 8


Example 6.6. Editing Progress  681

Output 6.6.3. Editing the Remaining Duration Column

In addition to revising the progress information for ‘Module 2’, you also realize that
the ‘Document’ task is 50% complete as of the Timenow date. Edit the Percent Com-
plete column in the Table View, changing the value from 25.0 to 50.0. Immediately,
the Remaining Duration column changes to 2. The resulting window is shown in Out-
put 6.6.4. The project end date (for the resource constrained schedule) is 28Mar99.
Thus, the project duration is now reduced to 20 days.

SAS OnlineDoc: Version 8


682  Chapter 6. The PM Procedure

Output 6.6.4. Editing the Percent Complete Column

SAS OnlineDoc: Version 8


The correct bibliographic citation for this manual is as follows: SAS Institute Inc., SAS/
OR User’s Guide: Project Management, Version 8, Cary, NC: SAS Institute Inc., 1999. 806
pp.
SAS/OR User’s Guide: Project Management, Version 8
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA.
ISBN 1–58025–492–6
All rights reserved. Printed in the United States of America. No part of this publication
may be reproduced, stored in a retrieval system, or transmitted, in any form or by any
means, electronic, mechanical, photocopying, or otherwise, without the prior written
permission of the publisher, SAS Institute Inc.
U.S. Government Restricted Rights Notice. Use, duplication, or disclosure of the
software by the government is subject to restrictions as set forth in FAR 52.227–19
Commercial Computer Software-Restricted Rights (June 1987).
SAS Institute Inc., SAS Campus Drive, Cary, North Carolina 27513.
1st printing, October 1999
SAS® and all other SAS Institute Inc. product or service names are registered trademarks
or trademarks of SAS Institute Inc. in the USA and other countries.® indicates USA
registration.
Other brand and product names are registered trademarks or trademarks of their
respective companies.
The Institute is a private company devoted to the support and further development of its
software and related services.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy