Output 4.1.1: Network Showing Task Relationships in Activity-on-Node Format
The following DATA step reads the project network in AON format into a SAS data set named WIDGET
. The data set contains the minimum amount of information needed to invoke PROC CPM, namely, the ACTIVITY variable, one or
more SUCCESSOR variables, and a DURATION variable. PROC CPM is invoked, and the Schedule data set is displayed using the PRINT
procedure in Output 4.1.2. The Schedule data set produced by PROC CPM contains the solution in canonical units, without reference to any calendar date
or time. For instance, the early start time of the first activity in the project is the beginning of period 0 and the early
finish time is the beginning of period 5.
/* Activity-on-Node representation of the project */ data widget; format task $12. succ1-succ3 $12.; input task & days succ1 & succ2 & succ3 & ; datalines; Approve Plan 5 Drawings Study Market Write Specs Drawings 10 Prototype . . Study Market 5 Mkt. Strat. . . Write Specs 5 Prototype . . Prototype 15 Materials Facility . Mkt. Strat. 10 Test Market Marketing . Materials 10 Init. Prod. . . Facility 10 Init. Prod. . . Init. Prod. 10 Test Market Marketing Evaluate Evaluate 10 Changes . . Test Market 15 Changes . . Changes 5 Production . . Production 0 . . . Marketing 0 . . . ; /* Invoke PROC CPM to schedule the project specifying the */ /* ACTIVITY, DURATION and SUCCESSOR variables */ proc cpm; activity task; duration days; successor succ1 succ2 succ3; run; title 'Widget Manufacture: Activity-On-Node Format'; title2 'Critical Path'; proc print; run;
Output 4.1.2: Critical Path
Widget Manufacture: Activity-On-Node Format |
Critical Path |
Obs | task | succ1 | succ2 | succ3 | days | E_START | E_FINISH | L_START | L_FINISH | T_FLOAT | F_FLOAT |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | Approve Plan | Drawings | Study Market | Write Specs | 5 | 0 | 5 | 0 | 5 | 0 | 0 |
2 | Drawings | Prototype | 10 | 5 | 15 | 5 | 15 | 0 | 0 | ||
3 | Study Market | Mkt. Strat. | 5 | 5 | 10 | 35 | 40 | 30 | 0 | ||
4 | Write Specs | Prototype | 5 | 5 | 10 | 10 | 15 | 5 | 5 | ||
5 | Prototype | Materials | Facility | 15 | 15 | 30 | 15 | 30 | 0 | 0 | |
6 | Mkt. Strat. | Test Market | Marketing | 10 | 10 | 20 | 40 | 50 | 30 | 30 | |
7 | Materials | Init. Prod. | 10 | 30 | 40 | 30 | 40 | 0 | 0 | ||
8 | Facility | Init. Prod. | 10 | 30 | 40 | 30 | 40 | 0 | 0 | ||
9 | Init. Prod. | Test Market | Marketing | Evaluate | 10 | 40 | 50 | 40 | 50 | 0 | 0 |
10 | Evaluate | Changes | 10 | 50 | 60 | 55 | 65 | 5 | 5 | ||
11 | Test Market | Changes | 15 | 50 | 65 | 50 | 65 | 0 | 0 | ||
12 | Changes | Production | 5 | 65 | 70 | 65 | 70 | 0 | 0 | ||
13 | Production | 0 | 70 | 70 | 70 | 70 | 0 | 0 | |||
14 | Marketing | 0 | 50 | 50 | 70 | 70 | 20 | 20 |
Alternately, if you know that the project is to start on December 1, 2003, then you can determine the project schedule with
reference to calendar dates by specifying the DATE= option in the PROC CPM statement. The default unit of duration is assumed
to be DAY. The architecture of PROC CPM enables you to include any number of additional variables that are relevant to the
project. Here, for example, you may want to include more descriptive activity names and department information. The data set
DETAILS
contains more information about the project that is merged with the WIDGET
data set to produce the WIDGETN
data set. The ID statement is useful to carry information through to the data set. Output 4.1.3 displays the resulting output data set.
data details; format task $12. dept $13. descrpt $30. ; input task & dept $ descrpt & ; label dept = "Department" descrpt = "Activity Description"; datalines; Approve Plan Planning Finalize and Approve Plan Drawings Engineering Prepare Drawings Study Market Marketing Analyze Potential Markets Write Specs Engineering Write Specifications Prototype Engineering Build Prototype Mkt. Strat. Marketing Develop Marketing Concept Materials Manufacturing Procure Raw Materials Facility Manufacturing Prepare Manufacturing Facility Init. Prod. Manufacturing Initial Production Run Evaluate Testing Evaluate Product In-House Test Market Testing Mail Product to Sample Market Changes Engineering Engineering Changes Production Manufacturing Begin Full Scale Production Marketing Marketing Begin Full Scale Marketing ; /* Combine project network data with additional details */ data widgetn; merge widget details; run;
/* Schedule using PROC CPM, identifying the variables */ /* that specify additional project information */ /* and set project start date to be December 1, 2003 */ proc cpm data=widgetn date='1dec03'd; activity task; successor succ1 succ2 succ3; duration days; id dept descrpt; run;
proc sort; by e_start; run; title2 'Project Schedule'; proc print; id descrpt; var dept e_: l_: t_float f_float; run;
Output 4.1.3: Critical Path: Activity-On-Node Format
Widget Manufacture: Activity-On-Node Format |
Project Schedule |
descrpt | dept | E_START | E_FINISH | L_START | L_FINISH | T_FLOAT | F_FLOAT |
---|---|---|---|---|---|---|---|
Finalize and Approve Plan | Planning | 01DEC03 | 05DEC03 | 01DEC03 | 05DEC03 | 0 | 0 |
Prepare Drawings | Engineering | 06DEC03 | 15DEC03 | 06DEC03 | 15DEC03 | 0 | 0 |
Analyze Potential Markets | Marketing | 06DEC03 | 10DEC03 | 05JAN04 | 09JAN04 | 30 | 0 |
Write Specifications | Engineering | 06DEC03 | 10DEC03 | 11DEC03 | 15DEC03 | 5 | 5 |
Develop Marketing Concept | Marketing | 11DEC03 | 20DEC03 | 10JAN04 | 19JAN04 | 30 | 30 |
Build Prototype | Engineering | 16DEC03 | 30DEC03 | 16DEC03 | 30DEC03 | 0 | 0 |
Procure Raw Materials | Manufacturing | 31DEC03 | 09JAN04 | 31DEC03 | 09JAN04 | 0 | 0 |
Prepare Manufacturing Facility | Manufacturing | 31DEC03 | 09JAN04 | 31DEC03 | 09JAN04 | 0 | 0 |
Initial Production Run | Manufacturing | 10JAN04 | 19JAN04 | 10JAN04 | 19JAN04 | 0 | 0 |
Evaluate Product In-House | Testing | 20JAN04 | 29JAN04 | 25JAN04 | 03FEB04 | 5 | 5 |
Mail Product to Sample Market | Testing | 20JAN04 | 03FEB04 | 20JAN04 | 03FEB04 | 0 | 0 |
Begin Full Scale Marketing | Marketing | 20JAN04 | 20JAN04 | 09FEB04 | 09FEB04 | 20 | 20 |
Engineering Changes | Engineering | 04FEB04 | 08FEB04 | 04FEB04 | 08FEB04 | 0 | 0 |
Begin Full Scale Production | Manufacturing | 09FEB04 | 09FEB04 | 09FEB04 | 09FEB04 | 0 | 0 |