Resources

Time Scaled Network Diagram (netdr9)

/****************************************************************/
/*          S A S   S A M P L E   L I B R A R Y                 */
/*                                                              */
/*    NAME: NETDR9                                              */
/*   TITLE: Time Scaled Network Diagram (netdr9)                */
/* PRODUCT: OR                                                  */
/*  SYSTEM: ALL                                                 */
/*    KEYS: NETDRAW                                             */
/*   PROCS: CPM, NETDRAW                                        */
/*    DATA:                                                     */
/*                                                              */
/* SUPPORT:                             UPDATE:                 */
/*     REF: Example 9 from the NETDRAW Chapter (PM User's Guide)*/
/*    MISC:                                                     */
/*                                                              */
/****************************************************************/

 /* 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  .             .             .
;

data holidays;
   format holiday holifin date7.;
   input holiday & date7. holifin & date7. holidur;
   datalines;
24dec03  26dec03  4
01jan04  .        .
;

* actual schedule at timenow = 19dec03;
data actual;
   format task $12. sdate fdate date7.;
   input task & sdate & date7. fdate & date7. pctc rdur;
   datalines;
Approve Plan  01dec03  05dec03  .    .
Drawings      06dec03  16dec03  .    .
Study Market  05dec03  .        100  .
Write Specs   07dec03  12dec03  .    .
Prototype     .        .        .    .
Mkt. Strat.   10dec03  .        .    3
Materials     .        .        .    .
Facility      .        .        .    .
Init. Prod.   .        .        .    .
Evaluate      .        .        .    .
Test Market   .        .        .    .
Changes       .        .        .    .
Production    .        .        .    .
Marketing     .        .        .    .
;

* merge the predicted information with network data;
data widgact;
   merge  actual widget;
   run;


* estimate schedule based on actual data;
proc cpm data=widgact holidata=holidays
         out=widgupd date='1dec03'd;
   activity task;
   succ     succ1 succ2 succ3;
   duration days;
   holiday  holiday / holifin=(holifin);
   actual / as=sdate af=fdate timenow='19dec03'd
            remdur=rdur pctcomp=pctc showfloat;
   run;

pattern1 v=e c=green;
pattern2 v=e c=red;

title  j=l h=3 ' Project: Widget Manufacture';
title2 j=l h=2 ' Date: December 19, 2003';
footnote j=l h=2 ' Task Name / Early Finish Within Node'
         j=r h=2 'Time Scaled: Default Alignment ';
proc netdraw data=widgupd graphics;
   actnet / act=task
            succ=(succ1 succ2 succ3)
            ybetween = 8
            separatearcs
            novcenter
            id=(task e_finish) nodefid
            nolabel
            showstatus
            carcs=darkblue
            ccritarcs=red
            vmargin=5
            hmargin=5
            timescale
            htext=2  pcompress
            hpages=2 vpages=1
            nopagenumber;
   run;

footnote j=l h=2 ' Task Name / Late Finish Within Node'
         j=r h=2 'Time Scaled: Align = Late Start ';
proc netdraw data=widgupd graphics;
   actnet / act=task
            succ=(succ1 succ2 succ3)
            ybetween = 10
            separatearcs
            pcompress
            novcenter
            id=(task l_finish) nodefid
            nolabel
            boxwidth=5
            showstatus
            carcs=darkcyan
            ccritarcs=red
            vmargin=10
            align=l_start
            frame
            autoref
            lref=33
            cref=darkcyan
            showbreak
            htext=2;
   run;