Suppose the schedule displayed in Output 3.6.4 is not acceptable; you want the first book to be finished as soon as possible and do not want resources to be claimed by the second book at the cost of the first book. One way to accomplish this is to enable activities related to the second book to be split whenever the first book demands a resource currently in use by the second book. If you do not want activities to be split, you can still accomplish your goal by sequential scheduling. The structure of the input and output data sets enables you to schedule the two subprojects sequentially.
This example illustrates the sequential scheduling of subprojects 'Book 1' and 'Book 2.' The following program first schedules the subproject 'Book 1' using the resources available. The resulting schedule is displayed in Output 3.7.1. The Usage data set bk1out is also displayed in Output 3.7.1.
/* Schedule the higher priority project first */ proc cpm data=book1 resin=resource out=bk1schd resout=bk1out date='1jan03'd interval=week; act act; dur dur; succ succ; resource editor artist / per=avdate avp rcp; id id; run;
Schedule for sub-project BOOK1 |
Obs | act | succ | dur | id | editor | artist | S_START | S_FINISH | E_START | E_FINISH | L_START | L_FINISH |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | B1PEDT | B1REV | 1 | Preliminary Edit | 1 | . | 01JAN03 | 07JAN03 | 01JAN03 | 07JAN03 | 01JAN03 | 07JAN03 |
2 | B1PEDT | B1GRPH | 1 | Preliminary Edit | 1 | . | 01JAN03 | 07JAN03 | 01JAN03 | 07JAN03 | 01JAN03 | 07JAN03 |
3 | B1REV | B1CEDT | 2 | Revise Book | 1 | . | 08JAN03 | 21JAN03 | 08JAN03 | 21JAN03 | 15JAN03 | 28JAN03 |
4 | B1GRPH | B1CEDT | 3 | Graphics | . | 1 | 08JAN03 | 28JAN03 | 08JAN03 | 28JAN03 | 08JAN03 | 28JAN03 |
5 | B1CEDT | B1PRF | 1 | Copyedit Book | 1 | . | 29JAN03 | 04FEB03 | 29JAN03 | 04FEB03 | 29JAN03 | 04FEB03 |
6 | B1PRF | B1PRNT | 1 | Proofread Book | 1 | . | 05FEB03 | 11FEB03 | 05FEB03 | 11FEB03 | 05FEB03 | 11FEB03 |
7 | B1PRNT | 2 | Print Book | . | . | 12FEB03 | 25FEB03 | 12FEB03 | 25FEB03 | 12FEB03 | 25FEB03 |
The Usage data set produced by PROC CPM has two variables, Aeditor and Aartist, showing the availability of the editor and the artist on each day of the project, after scheduling subproject 'Book 1.' This data set is used to create the data set remres, listing the remaining resources available, which is then used as the Resource input data set for scheduling the subproject 'Book 2.' The following program shows the DATA step and the invocation of PROC CPM.
The schedule for publishing 'Book 2' is displayed in Output 3.7.2. The Usage data set bk2out is also displayed in Output 3.7.2. Note that this method of scheduling has ensured that 'Book 1' is not delayed; however, the entire project has been delayed by two more weeks, resulting in a total delay of six weeks.
/* Construct the Resource availability data set */ /* with proper resource names */ data remres; set bk1out; avdate=_time_; editor=aeditor; artist=aartist; keep avdate editor artist; format avdate date7.; run;
proc cpm data=book2 resin=remres out=bk2schd resout=bk2out date='1jan03'd interval=week; act act; dur dur; succ succ; resource editor artist / per=avdate avp rcp; id id; run;
Schedule for sub-project BOOK2 |
Obs | act | succ | dur | id | editor | artist | S_START | S_FINISH | E_START | E_FINISH | L_START | L_FINISH |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | B2PEDT | B2REV | 2 | Preliminary Edit | 1 | . | 12FEB03 | 25FEB03 | 01JAN03 | 14JAN03 | 01JAN03 | 14JAN03 |
2 | B2PEDT | B2GRPH | 2 | Preliminary Edit | 1 | . | 12FEB03 | 25FEB03 | 01JAN03 | 14JAN03 | 01JAN03 | 14JAN03 |
3 | B2REV | B2CEDT | 2 | Revise Book | 1 | . | 26FEB03 | 11MAR03 | 15JAN03 | 28JAN03 | 22JAN03 | 04FEB03 |
4 | B2GRPH | B2CEDT | 3 | Graphics | . | 1 | 26FEB03 | 18MAR03 | 15JAN03 | 04FEB03 | 15JAN03 | 04FEB03 |
5 | B2CEDT | B2PRF | 1 | Copyedit Book | 1 | . | 19MAR03 | 25MAR03 | 05FEB03 | 11FEB03 | 05FEB03 | 11FEB03 |
6 | B2PRF | B2PRNT | 1 | Proofread Book | 1 | . | 26MAR03 | 01APR03 | 12FEB03 | 18FEB03 | 12FEB03 | 18FEB03 |
7 | B2PRNT | 2 | Print Book | . | . | 02APR03 | 15APR03 | 19FEB03 | 04MAR03 | 19FEB03 | 04MAR03 |