Multiple Alternate Resources (cpm26)
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: CPM26 */
/* TITLE: Multiple Alternate Resources (cpm26) */
/* PRODUCT: OR */
/* SYSTEM: ALL */
/* KEYS: CPM */
/* PROCS: CPM */
/* DATA: Software Development */
/* */
/* SUPPORT: UPDATE: */
/* REF: */
/* MISC: Example 26 from CPM chapter of PM User's Guide */
/* Example 2 from CPM chapter of OR V8.1 Changes */
/* and Enhancements */
/* */
/****************************************************************/
data software;
input Activity & $15. dur mandays act s1 s2 Programmer;
datalines;
Plans & Reqts 2 . 1 2 3 1
Product Design . 3 2 4 5 1
Test Plan 3 . 3 6 7 .
Documentation 1 2 4 9 . 1
Code 1 10 5 8 . 1
Test Data 5 . 6 8 . .
Test Routines 5 . 7 8 . .
Test Product 6 . 8 9 . 1
Finish 0 . 9 . . .
;
data softmult;
set software;
Chris = .;
John = .;
if _n_=1 then Programmer = 2;
run;
data resmult;
input per date7. otype $ resid $ 18-27 Programmer Chris John;
format per date7.;
datalines;
. resrcdur . 1 1 1
. altrate Programmer . 1 1
12apr04 reslevel . . 1 1
;
title1 'Software Development';
title2 'Use of Multiple Alternate Resources';
title3 'Activity Data Set';
proc print data=softmult;
run;
title3 'Resource Data Set';
proc print data=resmult;
run;
proc cpm data=softmult out=sftmult rsched=rsftmult
resin=resmult
date='12apr04'd interval=weekday resout=routmult;
act act;
succ s1 s2;
dur dur;
res Programmer Chris John / work=mandays
obstype=otype
period=per resid=resid
multiplealternates
rschedid=Activity;
id Activity;
run;
title 'Software Development';
title2 'Use of Multiple Alternate Resources';
title3 'Resource Constrained Schedule';
proc print data=rsftmult heading=h;
id Activity;
run;