The CPM Procedure |
Figure 2.6: 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 2.1.1. 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 Anal. Market Write Specs Drawings 10 Prototype . . Anal. 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 2.1.1: Critical Path
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 output data set. Output 2.1.2 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 Anal. 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; options ls=90; title2 'Project Schedule'; proc print; id descrpt; var dept e_: l_: t_float f_float; run;Output 2.1.2: Critical Path: Activity-On-Node Format
|
Copyright © 2008 by SAS Institute Inc., Cary, NC, USA. All rights reserved.