You are on page 1of 431

PSS Learning Services

Module 1.1

Contents

Lesson 1: New Feature Overview
Information in this document is subject to change without notice. The names of companies, products,
people, characters, and/or data mentioned herein are fictitious and are in no way intended to represent
any real individual, company, product, or event, unless otherwise noted. Complying with all applicable
copyright laws is the responsibility of the user. No part of this document may be reproduced or
transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express
written permission of Microsoft Corporation. If, however, your only means of access is electronic,
permission to print one copy is hereby granted.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property
rights covering subject matter in this document. Except as expressly provided in any written license
agreement from Microsoft, the furnishing of this document does not give you any license to these patents,
trademarks, copyrights, or other intellectual property.

 2000 Microsoft Corporation. All rights reserved.

Microsoft, Active Accessibility, ActiveX, FrontPage, MS-DOS, Outlook, PhotoDraw, PowerPoint, SQL
Server, Visual Basic, Visual C++, Visual J++, Windows, and Windows are either registered trademarks
or trademarks of Microsoft Corporation in the United States and/or other countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their respective
owners.
Module 1.1 3

Lesson 1: New Feature Overview

Overview
This lesson introduces you briefly to the new features of
Microsoft® Project 2000 and its companion product, Microsoft Project Central. It also
reviews how Microsoft Project 2000 helps reduce Total Cost of Ownership (TCO) in
large organizations.

What You Will Learn
After completing this lesson, you will be able to:
• Briefly discuss the new features of Microsoft Project 2000 and Microsoft Project
Central
• List the system requirements for Microsoft Project 2000 and Microsoft Project
Central
• Describe how Microsoft Project 2000 reduces TCO
Module 1.1 4

New Feature Overview
In this latest release of Microsoft Project, Microsoft has delivered two different products
with two different feature sets. The first is the desktop application,
Microsoft Project 2000. The second is a Web-based, workgroup application called
Microsoft Project Central.
In this portion of the course, we will briefly describe the product and some of the new
features of each product. This is done to help introduce the product. It is not intended that
you will have an in-depth understanding of these features after completing this lesson.
That understanding should come later in this course when the features listed below are
covered in further depth.

Microsoft Project 2000
Microsoft Project 2000 is an enhanced version of the desktop application
Microsoft Project 98. It includes many new features that greatly increase and expand its
functionality and ease of use. Among the new features are the following:
HTML Help
Microsoft Project 2000 includes a new help feature that includes the
Delivery Tip
following:
Go through each of the new
features and introduce each one. • HTML-based help – follows the familiar Web format
Spend time briefly • Help Home Page – this page includes links to all parts of Help
demonstrating each of the
features not covered later in the • Project Map – a new map based on project management principles and user goals
course.
• Quick Preview – a brief presentation on the capabilities of Microsoft Project 2000
• Tutorial – a brief lesson on working in Microsoft Project 2000

Accessibility
The Microsoft Project 2000 user interface is now consistent with Control Panel
Settings when running on Microsoft® Windows® 95 or Microsoft® Windows NT®.
Some features, however, work best on Microsoft® Windows® 98 or
Microsoft® Windows® 2000.

If you choose the High Contrast appearance scheme on a
Microsoft® Windows NT® 4.0 machine, you may experience printing
problems. This is because high contrast formats text as white, much like
you changed the text color yourself. On a Windows 98 or Windows 2000
machine, however, schemes are treated differently and you will not
experience this problem.

Microsoft Project 2000 has also added support for Microsoft® Active
Accessibility® (MSAA). This allows third-party accessibility aids such as
screen readers and voice-input utilities to work directly with
Microsoft Project 2000. For more information on accessibility options or
add-ons, consult Microsoft Project’s online help.
Module 1.1 5

Try This: Display Additional Screen Tips
One accessibility option that is available in Microsoft Project 2000 is the ability to
display more information within the screen tips. Find out how to enable this feature in
Microsoft Project 2000 by using the online help. While doing this, make sure to look at
other accessibility information.
Answer
1. Press the F1 button to call online help.
A. Open RegEdit.exe, usually
found in C:\Windows. 2. Query the Office Assistant using key words such as “accessibility.”
B. Open How do you automatically display additional screen tips?
HKEY_CURRENT_USER\Soft
ware\Microsoft\Office\9.0\MS
Project. AutoSave
C. Right-click the Options Microsoft Project 2000 includes the option to automatically save a file at
folder, point to New, and then predefined intervals. It can be set to save only the active project or to
click Key. automatically save all open files. AutoSave is located on the Tools menu
D. Type Accessibility as the under Options on the Save tab.
name of the new folder, and
then press ENTER.
E. Right-click the Accessibility
folder, point to New, and then
click DWORD Value.
F. Type EnableControlTooltips
as the name of the value, and
then press ENTER.
G. Click
EnableControlTooltips, click
Edit, and then click Modify.
H. In the Value Data box, type
1, and then click OK.
I. Click Registry, click Exit, and
then restart Microsoft Project.

Figure 1 – Autosave/Default Save Format and Path

Note that this feature is simply a timed save only. It should not be
confused with Microsoft Word’s AutoRecover feature.

Default Save Format and Path
Microsoft Project 2000 now lets you set both the default file format and
the default directory when saving your project. Different directories can
also be specified for project files, user templates, and workgroup
templates. This feature is located on the Tools menu under Options on the
Save tab.
Module 1.1 6

Click Gantt Bar to Select a Task
Microsoft Project 2000 now allows you to select a task by clicking on its
Gantt bar. This helps you to determine more easily to which task a given
Gantt bar belongs.

Fill Handle
In Microsoft Project 98, you could use a fill handle to populate cells in a
time-phased view such as Task Usage. However, you could not do this in
a table such as the left-hand portion of the Gantt Chart view. Microsoft
Project 2000 now gives you this capability.
Fill handles make fill up or down operations easier. To try this feature, go
into a table in the Gantt Chart view and select the cell that you want to
copy. In the lower right hand corner, you will notice a small square. Click
and drag the square to highlight the other cells within the same column
that you want to populate. Releasing the mouse button populates the
highlighted cells with the information within the original cell.

Grouping
Microsoft Project 2000 allows you to group tasks and resources based on
criteria you define. This allows you to view rolled up totals and other
information for criteria that are important to you. Grouping is covered in
greater detail later on in this course.

WBS and Outline Codes
Microsoft Project 2000 allows you to specify your own WBS numbering
format. Additionally it allows you to create multiple outline structures in
custom fields. These allow you to sort and group information based on
predefined outline codes. WBS and Outline Codes will be covered in
further detail later on in this course.

Custom Field Enhancements
Microsoft Project 2000 allows you to create pick lists for more accurate
data entry, create custom formulas for doing calculations on data, and use
customized graphical indicators to represent data in a custom field.
Custom Fields will be covered in further detail later on in this course.

Increased Tool Tips
Microsoft Project 2000 has increased tool tips. Two notable examples are
as follows:
• When pointing to a timescale unit, the date for that unit is now displayed.
• When pointing to a table cell where the column width is too narrow for the data
contained, the tool tip now shows the data contained in the cell.
Module 1.1 7

In Cell Editing
Microsoft Project 2000 allows you to edit cells in place as well as on the
edit bar. To use in-cell editing, single-click on the desired cell.

Hyperlink Improvements
Microsoft Project 2000 includes the same improved hyperlink
functionality found in other Microsoft Office 2000 products. New features
include the ability to customize a hyperlink’s screen tip and the ability to
select links from a list of previously viewed sites. Hyperlinks will be
covered in more detail later on in this course.

Multiple Files & Resource Pool Improvements
Microsoft Project 2000 delivers better performance when working with
multiple files and resource pools. Additionally it allows you greater ability
to manipulate these files via Microsoft® Visual Basic® for Applications
(VBA). Microsoft Project 2000 now also stores the relative path to files.
This allows you move linked and inserted projects without the need to
resave them to a new location from within Microsoft Project. Working
with multiple files and resource pools is covered in further detail later in
this course.

Clear Baseline Feature
Microsoft Project 2000 includes a new feature that allows you to clear the
baseline or interim plan on a project. To find this feature, go to the Tools
menu, select Tracking and click Clear Baseline. Doing so gives you a
dialog box like that below.

Figure 1 – Clear Baseline

Project Template Improvements
Microsoft Project 2000 now makes it easy to base a new project on a pre-
defined template. Similar to Microsoft Office 2000, you now see the File
New dialog box when selecting new from the File menu.
Module 1.1 8

Figure 2 - File New dialog

Microsoft Project 2000 also includes an easy way to remove data from
actual projects when you save them as templates. This is accomplished
through the following dialog box that appears when you save a project as a
template.

Figure 3 - Templates Remove Data

Printing Improvements
Microsoft Project 2000 includes a number of printing improvements.
These include improved scaling, improved fit to page, and improved
headers and footers. Printing improvements are covered in more detail
later on in this course.

New Rollup Behavior
Customizing the rollup behavior of Gantt bars in Microsoft Project 2000 is
much easier than in previous versions. Microsoft Project 2000 includes a
new option called “Always roll up Gantt bars.” This is found on the
Format menu under Layout. When selected it gives you the following
behavior.
Module 1.1 9

Figure 4 - Always Roll Up

In conjunction with this is the option “Hide rollup bars when summary
expanded.” With both of these options selected you get the behavior
displayed below:

Figure 5 - Hide Rollup Bars

Single Document Interface
Project supports the Single Document Interface (SDI) similar to other
Microsoft Office applications like Microsoft Excel. This interface exposes
each project on the Window Menu as a “process” (i.e., on the Windows
task bar and in the Alt-Tab list). SDI makes switching between individual
projects no different than switching between Web pages today.
To disable this feature, go to the Tools menu and click Options. Then, on
the View tab, deselect the “Windows in Taskbar” option.

NOTE: SDI is only available if Internet Explorer 4.01 SP1 or above is
installed with Active Desktop components.

Project Open and Save
Microsoft Project 2000 open and save dialog boxes have been improved to
be less cluttered and include the new “Places Bar.”
Module 1.1 10

Figure 6 - Places Bar

To improve access to projects in a database, the Import/Export dialog box
is enhanced to provide better display of projects in the database, better
navigation among these projects, and to allow simple maintenance
operation such as rename and delete for projects in the database.

Figure 7 - Database Import/Export

Note that you can now simply delete and rename projects stored within a
database via this dialog box. You no longer need to manually edit the
database or use VBA.
Module 1.1 11

Month Duration Unit
Microsoft Project 2000 now supports months as a unit of duration. Typing
“3mon” in the duration field is recognized as three months. Months should
be used as a measure of time as defined by the user. They do not
correspond to actual months such as Jan, Feb, etc.

The number of days that constitutes a months is defined on the Calendar
tab under Tools/Options. It is set to 20 days by default.

Fiscal Year Timescale Labeling
Microsoft Project 2000 now includes the ability to independently set the
“Use Fiscal Year” option on both your major and minor timescales. To set
this option, go to the Format menu and click Timescale. Doing so displays
the following dialog box.

Figure 8 - Fiscal Year Timescale

Because this option can be set independently for each timescale, the minor
timescale may display a different year than the major timescale.

Variable Row Height
Microsoft Project 2000 now allows you to independently set the row
height of individual rows. To do so, simply drag the row line between
tasks to the height that you want.
To change multiple rows, select the rows you want and then drag any one
of the rows in the selection to set a uniform height for the rows. Any data
in a cell that is too wide to fit a column width automatically wraps as the
row height gets larger.
Module 1.1 12

Copy Picture
The Copy Picture command in Microsoft Project 2000 has been improved.
It now includes better picture quality, increased size, and better scaling.
Microsoft Project 2000 now alerts you if the picture you are copying is
particularly large or will not fit well into another document. This alert
gives you the option of making changes before saving or pasting.
The Copy Picture command is now also found on the Edit menu as well as
on the Standard Toolbar. This feature will be covered in more detail later
on in this course.

Task Outline Improvement
Microsoft Project 2000 now allows you to expand and contract outline
levels more efficiently. You can now directly select the outline level to
which you would like to display your tasks. To do this, click Show on the
Format tool bar and then click the desired outline level. To find this option
on the Project menu, point to Outline, then point to Show and click the
desired outline level.

Figure 9 - Outline Levels

Office Namespace Extensions
Microsoft Project 2000 allows you to easily save to a Web Server that is
running FrontPage or Office Server Extensions. This helps facilitate
workgroup collaboration.
This topic will be covered in further detail later on in this course.
Module 1.1 13

Clear Leveling Values Before Leveling Option
Microsoft Project 2000 users now have the option to clear leveling values
before re-leveling. This option is found in the Resource Leveling dialog
box under the Tools/Resource Leveling. It is located in the top portion of
the dialog box as shown in the following picture.

Figure 10 - Clear Leveling

With this feature enabled, all leveling delay values are set to zero at the
outset of the leveling process. This behavior is the same as
Microsoft Project 98. With this option off, any previous leveling delay
values are initially untouched, which means leveling can only make the
current leveling delay larger. Therefore tasks that are currently leveled
will likely remain scheduled the same.

Priorities
Microsoft Project 2000 allows you to set 1000 different priority levels to
both tasks and projects. These different priorities are used to better control
how resource leveling adjusts a project’s schedule. Priorities are covered
in more detail later in the course.

Inserted Projects Calculated Like Summary Tasks
Microsoft Project 2000 master (or consolidated) projects calculate late
finish across all inserted projects. This allows you to see one critical path
Module 1.1 14

across a master project. Enabled by default, you can find this feature if
you go to the Tools menu and click Options. It is found on the Calculation
tab and is entitled “Inserted projects are calculated like summary tasks.”
This feature will be covered in more detail later in the course.

Contoured Resource Availability
Microsoft Project 2000 now includes the ability for a resource’s
availability (Max. Units) to be contoured. This feature is most useful in
defining the available units over time for a resource group. For example,
you may have a group of electricians that will be working on your project.
In March, only two of these electricians may be available for your project.
In April, two more may be available, giving you a total of four. However,
one may be retiring in May, bringing the available electricians down to
three for that month.
In Microsoft Project 2000, you can set the availability of your electricians
and thus influence your scheduling and leveling. Resource Availability
can be set on the General Tab of the Resource Information dialog box.
This feature will be covered in more detail later in the course.

Deadline Date
Microsoft Project 2000 allows you to apply deadline dates to tasks. This
allows an indicator to be displayed if a task finishes after the deadline. (No
indicator displays if a task finishes before the deadline)
A deadline is different than a constraint in that it is not used when
calculating a project’s schedule. It does, however, affect the Late Finish
date of a task and the calculation of Total Slack.

Deadline dates affect the calculation of Total Slack and thus can affect the
critical path.

Deadline dates will be covered in more detail later on in this course.

Estimated Durations
In Microsoft Project 2000, a task’s duration may be entered as an
estimated duration. This is denoted by a “?” after the duration. Estimated
durations allow a user to quickly find tasks with durations that may not be
firm. Tasks with estimated durations are easily found using the new
“Tasks With Estimated Durations” filter.
Estimated durations roll up to the highest connected outline level. Tasks
can be marked as estimated duration by typing a “?” after the duration or
by choosing “Yes” in the new Estimated field.
Enabled by default, you may control whether or not tasks appear with
estimated durations from the Schedule tab of the Tools Options dialog
box. The two options that control this feature are named “Show that tasks
have estimated durations” and “New tasks have estimated durations.”
Module 1.1 15

Material Resources
Microsoft Project 2000 now includes material resources. Material
resources allow you to specify consumable resources such as lumber or
concrete and assign them to tasks. Material Resources are covered in
further detail later in this course.

Task Calendars
Microsoft Project 2000 allows you to assign calendars to specific tasks.
This allows you to create schedules that only affect selected tasks. Task
calendars are covered in more detail later in this course.

Network Diagram
The Network Diagram is a new view in Microsoft Project 2000 that
replaces the Pert Chart. (Correspondingly the Task Pert has been renamed
the Relationship Diagram.) In addition to the new name, this view has
many new features including filtering and detailed node formatting. The
Network Diagram and its features are covered in more detail later in this
course.

Microsoft Project Central
Microsoft Project Central is a completely new companion product to
Microsoft Project. It takes the Web-based messaging portion of
Microsoft Project 98 and greatly increases its functionality. This Web-
based workgroup application is based on database (MSDE, SQL, or
Oracle), Microsoft Internet Information Server (IIS) and Active Server
Pages (ASP) technology. It integrates with Microsoft Project 2000 and
allows users to manage their tasks via a Web browser.

Project Central has five main areas.
Messages
• Send/receive messages – allows resources and managers to exchange messages.
• Set up rules to manage messages – allows managers to create automated actions to
manage messages.

Tasks
• Timesheet – allows you to see your assignments, working hours, and non-working
time. Its layout is very similar to the Resource Usage view in Microsoft Project 98.
• Personal Gantt – allows you to see your assignments in a Gantt Chart view.
• Work Day Change – allows the resource to send a message to the manager indicating
a change in available working times.

Views
• Assignments – allows you to view assignments for multiple resources. The
administrator specifies the assignment view. Thus, you can only see the assignments
that the administrator allows.
Module 1.1 16

• Portfolios – allows you to see multiple projects. Once again, the administrator
specifies the portfolio view. Thus you can only see the projects that the administrator
allows.

Status Reports
• Submit – allows a resource to submit a status report to the project manager.
• Request – allows a project manager to request a status report.

Administration
• Users – allows the administrator to add or delete users of Project Central.
• Delete Items – allows the administrator to get rid of old tasks, messages, status
reports, or even whole projects.
• Customize – allows the administrator to customize appearance, add links to
homepages, and adjust security settings.
• Manage Views – allows the administrator to create and customize assignment and
portfolio views.

System Requirements
Microsoft Project 2000 and Microsoft Project Central are different not
only in their feature sets, but also in the way they are designed. As such,
each product has its own unique set of system requirements.
Microsoft Project 2000
System requirements are as follows:
• PC with Intel Pentium 75 MHz or higher or compatible
• Microsoft Windows 9.x, Windows NT Workstation 4.0 (SP3 or later), or
Windows 2000 Professional.
• On Windows 9.x, 24 MB of RAM is required. On Windows NT or 2000, 40 MB of
RAM is required.
• 30-204 MB of hard disk is required. Microsoft Project 2000 shares components with
Microsoft Office 2000. Hard disk usage will vary depending on configuration. 30
MB is required for a typical installation that already has Microsoft Office 2000
installed. 204 MB is recommended for a full installation without
Microsoft Office 2000 installed.
• CD-ROM and VGA or higher resolution monitor are required. A mouse is
recommended.

Microsoft Project Central
System requirements are as follows:
Server
• PC Intel Pentium 200 MHz or higher or compatible
• Windows NT 4.0 Server (with SP4 or later) and the Windows NT 4.0 Option Pack or
Windows 2000 Server.
• 128 MB of RAM
• 100-150 MB of available hard disk space is recommended. Hard disk usage will vary
depending on configuration.
Module 1.1 17

Client
• PC with Intel Pentium 75 MHz or higher or compatible
• Microsoft Windows 9.x, Windows NT Workstation 4.0 (SP4 or later), or
Windows 2000 Professional.
• On Windows 9.x, 16 MB of RAM is required. On Windows NT or 2000, 32 MB of
RAM is required.
• 10-20 MB of available hard disk space is recommended. Hard disk usage will vary
depending on configuration.

Total Cost of Ownership
Both Microsoft Project 2000 and Microsoft Project Central use new
technologies in the installation process. The technologies used are the
same as those used by other Microsoft Office 2000 applications. One of
the major purposes of these new technologies is to reduce Total Cost of
Ownership (TCO) in large organizations. Since these organizations often
deploy Microsoft Project to thousands of computers, the need for easier
deployment, administration and maintenance was key in the development
of Microsoft Project 2000.

Note:
Although Project Central uses the same installation technologies as
Microsoft Project 2000, TCO is not a major issue for this product. This is
because Project Central is a workgroup application designed to be
installed on a server. As such, thousands of installations within a single
organization are not likely.

Total Cost of Ownership, the cost of owning a PC, includes initial cost of
hardware and software, costs associated with deployment and
configuration, training, day-to-day maintenance and administration, and
telephone and onsite technical support.
Below is a brief overview of the Microsoft Project 2000 technologies that
help to reduce Total Cost of Ownership:

Custom Installation Wizard (CIW)
The Custom Installation Wizard is a tool used to customize Project
installations. This tool is much improved over the Network Installation
Wizard (NIW) used by Microsoft Project 98 allowing for customizations
at the individual feature level. This, in return, reduces costs associated
with installation and deployment.

Office Profile Wizard (OPW)
The Office Profile Wizard is a stand-alone tool that captures all
preferences and settings made to Project in a single Office Profile Settings
(*.ops) file. If users need to move to a new machine or reconfigure an
existing one, they can use the Office Profile Wizard to “pack up” their
personal settings and preferences in one location so they can "unpack" and
Module 1.1 18

personalize the new installation quickly and easily. Individuals can also
use the Office Profile Wizard if a hard drive crashes and they want to get
going again quickly, without having to re-customize personal Project
settings. In the enterprise, the Office Profile Wizard is primarily used for
customizing Project in conjunction with the Custom Installation Wizard.

New System Policy Editor and Templates
One of the major costs to a corporation is the loss of productivity at the
desktop caused by user error (e.g., changing the system configuration and
rendering the system unworkable) or system distractions (e.g., too many
features or nonessential applications installed on the desktop). To assist in
reducing this cost, the Microsoft Project 2000 release and the
Microsoft Project 2000 Resource Kit include an updated System Policy
Editor and a number of system policy templates that provide a means for
controlling a user’s access to application features and settings.

Support for the Microsoft® Windows® Installer Technology
This new setup program helps to reduce Total Cost of Ownership by
providing a more consistent set of installation rules and an easier method
of customization. In addition, it also provides a method of managing the
removal of previous versions of Project and the ability to track necessary
Microsoft Project 2000 components (i.e. shared DLLs). Furthermore,
automatic repair and installation processes are provided, as well as easier
ways to configure new systems and update or patch
Microsoft Project 2000 features.

Language Pack (LPK)
The Language Pack allows you to proof a document in other languages
without having to purchase different localized versions of Project. The
Language Pack also includes the help files and a user interface (menus,
toolbars, and help) localized in those other languages. This may
considerably reduce Total Cost of Ownership for multi-national
organizations.

Self-repairing Applications (Resiliency)
In previous versions of Microsoft Project, missing files could result in
obscure error messages or the failure of Microsoft Project to start.
Microsoft Project 2000 is resilient and will therefore automatically verify
and reinstall any missing files and registry entries. As a result, fewer calls
to the help desk are needed and Total Cost of Ownership is reduced.

Optimized to Run on Microsoft Terminal Server
Terminal Server provides the ability to run Windows and 32-bit Windows-
based applications from a back-end Windows NT server while the client
serves only as the front-end display. Microsoft Project 2000 was
specifically designed to run optimally in a Terminal Server environment.
Running Microsoft Project 2000 in this environment reduces the Total
Module 1.1 19

Cost of Ownership by allowing organizations the ability to effectively use
computers with limited disk space, memory or processing speed.

Support of Roaming and Multi-user Environments
Advancements in how Microsoft Project 2000 stores user-customized
settings provide users with an easier transition between different
computers and also makes it easier for two or more users to share the same
computer. Unlike previous versions of Project, users can roam between
different computers without any changes to the user experience. These
improvements in roaming and a multi-user environment help to reduce
Total Cost of Ownership.
The above technologies are the same technologies used by Office 2000 to
reduce Total Cost of Ownership. As such, much of the information in the
white papers written for Office 2000 is applicable to
Microsoft Project 2000.
PSS Learning Services

Module 1.2
Information in this document is subject to change without notice. The names of companies,
products, people, characters, and/or data mentioned herein are fictitious and are in no way intended
to represent any real individual, company, product, or event, unless otherwise noted. Complying
with all applicable copyright laws is the responsibility of the user. No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose, without the express written permission of Microsoft Corporation. If, however, your only
means of access is electronic, permission to print one copy is hereby granted.
Contents
Microsoft may have patents, patent applications, trademarks, copyrights, or
other intellectual property rights covering subject matter in this document.
Lesson 2: Windows Installer 33
Except as expressly provided in any written license agreement from
Microsoft, the furnishing of this document does not give you any license to
these patents, trademarks, copyrights, or other intellectual property.

 2000 Microsoft Corporation. All rights reserved.

Microsoft, Active Accessibility, ActiveX, FrontPage, MS-DOS, Outlook,
PhotoDraw, PowerPoint, SQL Server, Visual Basic, Visual C++, Visual J++,
Windows, and Windows are either registered trademarks or trademarks of
Microsoft Corporation in the United States and/or other countries/regions.

The names of actual companies and products mentioned herein may be the
trademarks of their respective owners.
Module 1.2 33

Lesson 2: Windows Installer
Overview
Microsoft® Project 2000 uses a new setup technology based on
Microsoft® Windows® Installer. Through this technology, setup has been able to
reduce many of the problems associated with installing and maintaining
Microsoft Project installations.

What You Will Learn
After completing this lesson, you will be able to:
 Identify two main components responsible for Microsoft Project 2000
installation
 Define the function of setup.exe
 Define the function of msiexec.exe and the files it uses
 Define the function of instmsi.exe and instmsiw.exe
 Compare and contrast Windows Installer vs. ACME setup
 Define components of an .MSI file
 Define a transform
 Flowchart the installation process
 List and describe the features of Windows Installer
34 Module 1.2

Microsoft Project 2000 Installation
The Two Components of a Microsoft Project 2000
Installation
Installing Microsoft Project 2000 is preformed in a two-step process.
 The file SETUP.EXE performs the first step. It runs through a series of
checks to make sure system and permission parameters are correct.
 Windows Installer (MSIEXEC.EXE) performs the second step. It
executes the actual installation of the application.

Functionality Overview of SETUP.EXE
SETUP.EXE’s main functionality is to prepare a system for installation. Among
the more important steps it performs are verifying that the OS meets minimum
system requirements, installing Windows Installer (if necessary) and parsing the
command line for custom switches to pass on to Windows installer. More
specifically it performs the functions listed below.
1. Searches to find a SETUP.INI file that may alter the path to needed installer
files.
2. Parses the command line for custom switches the installer may need.
3. Detects if the installer requested the CD-ROM when SETUP.EXE is called
with the /AutoRun switch.
4. Checks if SETUP.EXE was called from source and if Office was previously
installed.
5. Checks to make sure the operating system is qualified, and has the correct
level of operating system service pack installed.
6. Checks version of MSI.DLL to make sure it meets the minimum version
requirements.
7. Determines if the user has appropriate permissions to update the operating
system.
8. If SETUP.EXE is run with the /AutoRun Switch, goes to AUTORUN.INF
and starts the actions in that file.
9. If the /AutoRun switch is not used and the installer is already on the target
computer SETUP.EXE calls the local installer to start
Microsoft Project 2000 setup and exits.
10. If SETUP.EXE detects that the installer is not present on the target
computer it makes a call to INSTMSI(W).EXE on the CD or source network
drive. (Note: INSTMSI.EXE is used for the Microsoft® Windows® 95
and/or Microsoft® Windows® 98 platforms, INSTMSIW.EXE for
Microsoft® Windows NT® 4.0)
Module 1.2 35

The logic flow chart of SETUP.EXE is shown below in Figure 1.

Insert
CD
ROM Yes Alert User and End

No

Did
Is OS Is User
Installer
Yes End NT No an
Request
3.51? Admin?
CD?

No No Yes

Has
Is
Project
Windows Is OS Call INSTMSI.EXE
Been No No Yes
Installer Win 9.x? from source & End
Installed
Present?
?

Yes Yes

Run
Project Call local Installer
No
From and End
Source?

Yes

End

Figure 1 - Flowchart of SETUP.EXE Logic

Looking at SETUP.EXE Level Customization In-Depth
As noted in the above steps, SETUP.EXE parses customization information and
passes that on to installation. There are three types of customization information
that is passed on by SETUP.EXE. They are Command Line Switches, the
information within the SETUP.INI file, and Setup Properties. Below we look
more in-depth at these three areas.

Command Line Switches The first area where we can customize a
Microsoft Project 2000 installation is with switches.
Switches are usually run from the command line, but can also be included in a
batch file or a shortcut. Switches can customize installations in various ways.
For example, to install Microsoft Project 2000 as an administrative install point,
the /a switch would be used. (The /a switch also allows an .MSI file name to be
36 Module 1.2

specified.) When typed at a command prompt, the syntax would look as
follows:
D:\setup.exe /a data1.msi

When To Use Command-Line Switches Command-Line Switches are most
useful when few customizations are
needed or when users want to create several different installations quickly.
There is no need to edit any Project files (such as the Setup settings file) or run
any special tools (such as the Office Custom Installation Wizard).
It is possible to create multiple custom installations by defining different
command lines for different users or by creating multiple batch files or
shortcuts. This method is especially useful if there is a need to create multiple
deployment packages by using a systems management tool — and each
package requires a different command line.
For example, if the Engineering and Accounting departments install the same
version of Project but use unique organization names, the Administrator may
create two shortcuts that have the following command lines:
setup.exe /q companyname="Engineering Department"
setup.exe /q companyname="Accounting Department"
SETUP.EXE does not actually process command line switches. Instead it reads them
from the command line and passes them to the Windows Installer to be processed.
There are exceptions to this rule however. The following three switches are
processed by SETUP.EXE.

/autorun - This switch is only used only in the AUTORUN.INF file.
Its purpose is to indicate that setup is being run automatically after you
insert the CD in the CD-ROM drive.
/settings - Specifies a settings file and path that customizes Setup actions.

/wait - Waits for installation to complete before exiting.

Below is a list of switches that can be used when installing
Microsoft Project 2000.

For more information, see the following Knowledge Base article: Q202946 "Setup
Switches for Microsoft Office 2000 ".

Command- Description Example
line Switch
Module 1.2 37

/a Setup performs an administrative Create a network
installation, using the specified MSI file, share.
to create an administrative point. NOTE:
This option cannot be used along with The share must be
the /i switch (discussed later). accessible by all
users who need to
install
Microsoft Project,
and you must have
write access to it.
Run Setup from
Microsoft Project
CD by using the /a
command-line
option. For example:
e:\setup.exe /a
data1.msi
When Setup
prompts you for the
installation location,
enter the network
share that you
created.
Setup copies all of
the files from
Microsoft Project
CD to the network
share.

/autorun This switch is only used only in the /autorun
AUTORUN.INF file. Its purpose is to
indicate that setup is being run
automatically after you insert the CD in
the CD-ROM drive.
38 Module 1.2

Command- Description Example
line Switch
/i <file> Specifies the name of the MSI file. This /i Mso9.msi
option cannot be used along with the /a
option.
/p <package Applies a patch. To apply a patch to
file> an installed Admin
image you must
combine options as
follows /p
<PatchPackage> /a
<Package>/p
<PatchPackage> /a
<Package>
PROPERTY=va Specifies a property value. If the TRANSFORMS=
lue property value contains spaces, enclose "C:\Acct Dept.mst"
the string in double quotation marks ("). INSTALLLANGUAGE
You can specify more than one property =German"
and value pair on the command line,
separated by spaces. See section on
Properties below.
Module 1.2 39

Command- Description Example
line Switch
/q<option> Selects the user interface level. Valid /qn
options are:
n: None — No user interface is
displayed
b: Basic — Only simple progress
indicators and errors are displayed.
r: Reduced — No user information is
collected, and full progress indicators
and errors are displayed.
f: Full – With a modal dialog box
displayed at the end
qn+ - No UI except for a modal dialog
box displayed at the end.
qb+ - Basic UI with a modal dialog box
displayed at the end. The modal dialog
box is not displayed if the user cancels
the installation
qb- - Basic UI with no modal dialog
boxes. Note that /qb+- is not a support
UI level. This can be used to
automatically reboot the machine at the
end of setup, but if you use /qb- the
machine will simply restart
automatically.
40 Module 1.2

Command- Description Example
line Switch
/settings <INI Specifies a settings file and path that /settings
file> customizes Setup actions.
C:\office9.ini
/? Displays a list of valid Setup command- /?
line options.
/wait Wait for installation to complete before /wait
exiting.
/j <option> Advertise Locally [u|m]Package
<package path>
u – User or
m – All users [u|m]Package /t
Transform List
Note When using the /j<option> switch
the /t switch should be used to point to a or
particular transform list. Otherwise with
other switches the TRANSFORM [u|m]Package /g
property should be used. LanguageID
Module 1.2 41

Command- Description Example
line Switch
/f<options> Setup repairs the Microsoft Project The Detect and
<package path> installation. The .MSI file specified must Repair command
be the .MSI file used to install (Help menu) in
Microsoft Project originally. The .MSI Microsoft Project
file must be in the same folder as performs the same
SETUP.EXE. function as using the
options /focums.
If you run Setup and
p – Reinstall a file only if it is missing. select Reinstall,
o – Reinstall a file if its is missing, or an Setup performs the
older version is present. same function as
using the options
e – Reinstall a file if it is missing, or an /fecums.
equal or older version is present.
d – Reinstall a file if it is missing, or a
different version is present.
c – Reinstall a file if it is missing or
corrupt (the stored checksum doesn’t
match the computed value)
a – Force all files to be reinstalled
regardless of checksum or version.
u – Re-Write all required user registry
entries
m – Re-Write all required local machine
registry entries
s – Reinstall all shortcuts, overwriting
any existing shortcut
v– Run from the source package and re-
cache the local package.
42 Module 1.2

Command- Description Example
line Switch
/x <package Setup uninstalls Microsoft Project. The /x e:\data1.msi
path> MSI file specified must be the MSI file
used to install Microsoft Project
originally. The MSI file must be in the
same folder as Setup.exe.
/t <transform> Specifies the name of the transform /t accounting.mst
(MST) file. When using the /jm
switches, the /t switch must be used,
other wise the TRANSFORM property
should be used.
/l Logging switches for MSIEXEC.EXE /l* c:\logname.txt
[i|w|e|a|r|u|c|m|p| Specifies path to log file and the flags
v indicate which information to log.
|+]Logfile 'i' - Status messages
'w' - Non-fatal warnings
'e' - All error messages
'a' - Start up of actions
'r' - Action-specific records
'u' - User requests
'c' - Initial UI parameters
'm' - Out-of-memory
'p' - Terminal properties
'v' - Verbose output
'+' - Append to existing file
"*" - Wildcard, log all information
(except Verbose output)
“!” - Flushes each line to the log file.
The default behavior is to cache 20 lines
of log file text in memory, and then
dump 20 lines to the log file at once.
This is done to improve performance.
Module 1.2 43

Command- Description Example
line Switch
/m SMS status .MIF generation option An example
command line
Creates a .MIF file in the %TEMP% would be of the
folder. form: msiexec /i
The SMS status MIF generation option, - Data1.msi /m
m filename, where filename is the 1-8 12345678 (note
char base name without the .MIF, is .MIF extension is
available only for install (-i), remove (- not included.
x), admin install (-a), and reinstall
product (-fv). Fields are filled as follows:
Manufacturer - SummaryInfo
PID_AUTHOR, 4 (Author)
Product - SummaryInfo
PID_REVNUMBER, 9 (ProductCode)
Version - SummaryInfo
PID_SUBJECT, 3 (Product description
and version)
Locale - SummaryInfo
PID_TEMPLATE, 7 (Platform and
language)
Serial Number - not set, not available
Installation - not settable via API, set by
ISMIF32.DLL to "DateTime"
InstallStatus - "Success" or "Failed",
depending on success of install
Description - Error message (as much as
can be obtained), or empty if successful
/g Language ID
44 Module 1.2

Command- Description Example
line Switch
/y Module Calls the system
API
DllRegisterServer to
self-register
modules passed in
on the command
line. For example,
msiexec /y
my_file.dll.
This option is only
used for registry
information that
can't be added using
the registry tables of
the .msi file. This is
not used the same
way /y was used in
previous versions of
Office

/z Module Calls the system
API
DllUnRegisterServe
r to unregister
modules passed in
on the command
line. For example,
msiexec /z
my_file.dll.
This option is only
used for registry
information that
can't be removed
using the registry
tables of the .msi
file.

Setup Properties Setup Properties are global variables used during the
installation process. They can be used to set the information
normally entered by a user during installation. For example, the setup property
COMPANYNAME can be set to automatically populate the organization name
that appears in the Help/About box. Numerous setup properties exist.
Module 1.2 45

For a complete list of setup properties for Microsoft Project 2000, see the
Microsoft Project 2000 Resource Kit.

Some properties are public, meaning that they can be overridden at the
command line or set dynamically during the installation using standard actions
or custom actions. (Note: The names of public properties are always in all
uppercase letters.)
Some properties are private, meaning that they cannot be overridden from the
command line because they describe the local system or operating system.
(Note: The names of private properties contain lowercase letters.)
To install Microsoft Project 2000 with the PROPERTY set to a certain
VALUE, you must be careful of the syntax used at the command line. You can
put the property anywhere except between an option and its argument.
For example, you must specify a file when you use the /i switch. In this case,
the /i switch is the option and the specified file is the argument. Thus, when
setting a property and using a switch, we must put the property before or after
the option and its argument, not in between.
Correct syntax:
setup /i A:\Example.msi PROPERTY=VALUE

Incorrect syntax:
setup /i PROPERTY=VALUE A:\Example.msi

Using Switches & Properties in Combination Command line switches and setup
properties can be combined to
customize installations. However some switches should not be used together
and some properties cannot be used with some switches.

Using Multiple Command Line Switches Command Line Switches can generally
be divided into two types: verb
switches and adverb switches.
Verb switches are switches that influence setup in a major way. For example,
the /a switch performs an administrative setup, while /x uninstalls Project. Verb
switches should not be used together (except for patching an admin image
which requires both the /p and /a). There are eight verb switches. They are /i, /x,
/f[p|o|e|d|c|a|u|m|s|v], /j[u|m], /a, /p, /y and /z.
Adverb switches are modifier switches that affect a verb switch. There are four
adverb switches. They are /t, /g, /l[a|e|c|i|m|p|r|u|v|w|+|!], /q[n|b|r|f].
/t and /g are for use with /j only.
/l and /q can be used with all verbs except /y and /z.

Using Command Line Switches and Setup Properties While Setup Properties do
not interact directly with
Command Line Switches, the switches used can influence their efficacy. For
example, all Setup Properties are ignored when used with a /j, /y, or /z switch.
46 Module 1.2

And some (like TRANSFORMS*) are also ignored with /x and /f. Thus caution
must be exercised when using these five switches.

Setup.ini Files Setup.ini files are also used to customize installations. Their
main advantage is that they are easier to create than long
command lines with multiple switches and setup properties.
Like command line switches, SETUP.EXE does not actually process the
setup.ini file. Instead it reads the setup.ini file and creates a command line that
is then passed on to the Windows Installer.

When a property or value is found in both the SETUP.INI file and on the command
line, the command line overrides the .INI file settings.

SETUP.INI files consist of the following five sections:
 [MSI] - specifies the path to the installation package for this installation.
This is the same as the /i option on the command line.
 [MST] - specifies the path to transforms used with this installation. This is
the same as the /t option on the command line.
 [OPTIONS] - section that displays where administrators can set and
override properties in the MSI or MST files. Each option in the option
section must have a property name and a value.
 [DISPLAY] - is used to set the User Interface level used during setup. This
corresponds to the /q option on the command line. Valid values are - none,
basic, reduced, and full.
 [LOGGING] - is used to set what logging switches are on by default and the
path to where the logging file is created.
Below is an example of the contents of a SETUP.INI file for
Microsoft Project 2000.

; Microsoft Project 2000 Windows installer setup.exe information file.

; If a file exists in the same directory as setup.exe named "setup.ini", or

; /settings <path to ini file> is passed on the command line, that file will

; be read and modify the default behavior of setup as shown below.

;[MSI]

; If a value is present, the MSI section gives the name of the MSI file to install.

; This file must be in the same directory as setup.exe, and both must be in the
root

; of the installation tree.

; If no value is present, setup.exe will look for exactly one file matching "*.msi"

; in its directory and if found, use that.

;
Module 1.2 47

MSI=INSTALL.MSI

;[MST]

; If a value is present, the MST section gives the full path to a transform to
apply.

; Specify it in the form MST1=path to MST

; Remember to uncomment both the section name and the value names.

;

;MST1=\\server\share\some transform.mst

;MST1=D:\transforms\my transform.mst

;[Options]

; If a value is present, the [Options] section gives the values of properties to
apply to

; this installation. Specify them in the format:

; PropName=PropValue

; Remember to uncomment both the section name and the value names.

;

;USERNAME=Customer

;[Display]

; If a value is present, the [Display] section overrides default UI modes.

; Display has one of the following values:

; quiet, none, basic, reduced, full

; CompletionNotice - if this value is present gives whether or not to display

; a setup completion noticefor otherwise quiet setups. The completion notice
will

; only appear if Setup does not need to reboot to complete the installation.

; Remember to uncomment both the section name and the value names.

;

;Display=None

;CompletionNotice=Yes
48 Module 1.2

[Logging]

; If a value is present, the logging section provides default logging information.

; There are three possible values, all are optional and have defaults as shown
below

;

; Value Default Description

; Type <none> Logging mode to use, e.g. ea

; Use * to get all logging
modes; + to append to the

; logfile if it exists.

; Path %TEMP% Path to create logfiles in.
May contain environment variables.

; Final component may be
non-existent and will be created.

; Template SetupLog(*).txt File name for log file. May
contain environment variables.

; Should end in "(*).txt"; the
* is replaced with a zero-padded

; 4 digit number to make the
file name unique.

;Type=icewarmup

;Path=\\ProjSrv\logfiles\

;Template=Microsoft Project %UserName%(*).txt

Template=Microsoft Project 2000 Setup(*).txt

Type=voicewarmup

When To Use The Setup Settings File When a user double-clicks Setup.exe,
Setup reads the customizations from the
SETUP.INI file automatically. A Setup settings file should be used when it is
not necessary or viable for users to enter a complicated command line when
they run Setup or when there is no need to create a batch file or shortcut.
The settings file is also useful when an administrator wants to set options that
are awkward to include in a command line. The settings file organizes Setup
options in an easy-to-read format that typically will be more helpful than
creating a long command line.
Module 1.2 49

Administrators can create multiple settings files for different groups of users.
Users specify the settings file they want to use by using the /settings Setup
command-line option. It is also possible to specify Setup command-line options
along with a custom Setup settings file. If a command-line option is specified
that conflicts with a value in the settings file, Setup uses the command-line
option.
For example, an administrator can create two settings files for the Engineering
and Accounting departments. Users in each department run Setup by using one
of the following command lines:
setup.exe /settings off9engr.ini
setup.exe /settings off9acct.ini

Using Switches, Properties, and *.ini Files Suppose, however, that these two
departments need to use a common
set of custom options, except that each needs a different organization name.
Then it is possible to customize the default settings file (Setup.ini) with the
standard options, and then the Engineering and Accounting departments use the
following command lines to run Setup:
setup.exe companyname="Engineering Department" /settings
off9engr.ini
setup.exe companyname="Accounting Department" /settings
off9acct.ini

Setup uses the options defined in the settings file and sets the organization
name according to the command line.

Windows Installer
During the course of its operation, SETUP.EXE looks for the installation of
Windows Installer (MSIEXEC.EXE). If it is already installed on the system,
SETUP.EXE calls upon MSIEXEC.EXE, passes on any switch, property and
.INI information, and the installation proceeds on to the second phase of the
installation process.

SETUP.EXE will use the Windows Installer currently on the system, regardless of
the application from which it was installed. For example, if Office 2000 is already on
the system, Project will simply use the Windows Installer placed on the system at
that time, rather than install Windows Installer again. The reason for this is that
Windows Installer is an operating system “service” that allows the operating system
to take over the installation process. Of the current operating systems, only
Windows 2000 ships with this service pre-installed. Therefore, it is necessary to
install the Windows Installer files on Windows 95/Windows 98 and Windows NT
4.0 before Microsoft Project 2000 installation can proceed.
If Windows Installer is not detected, SETUP.EXE installs it. On Windows 9x
platforms, this is done using the file INSTMSI.EXE. On Windows NT
platforms the file INSTMSIW.EXE is used.

The Windows Installer Package: INSTMSI(W).EXE Both INSTMSI.EXE &
INSTMSIW.EXE files are
IExpress packages that decompress the complete list of Windows installer files
to a new directory within the temp directory. The name of this directory usually
is of the form IXP###.tmp, for example: IXP001.tmp.
50 Module 1.2

A complete list of Windows Installer files is presented in the following table:
Windows installer File Notes
MSI.DLL This is the main Windows installer
engine .DLL. Contains all the functions
that the installer uses to install and
manage applications.
MSIEXEC.EXE The Service used to control .MSI
package setups.
MSIHND.DLL The installer handler .DLL. It is
responsible for the behavior of the user
interface of the installer
CABINET.DLL Always installed since later installs
may have compressed cabinets.
MSPATCHA.DLL System .DLL needed by the installer to
support its file patching capabilities.
SHFOLDER.DLL Exposes API's to create special shell
folders for Windows 2000.
IMAGEHLP.DLL Except on Windows 98 where it is
already present.
RICHED20.DLL Renders text and handles user input
and navigation through languages such
as Arabic, Hebrew, Thai, Vietnamese
and Indic.
MSLS3.DLL Support file for RICHED20.DLL.
USP10.DLL Support file for RICHED20.DLL.
MSIINST.EXE Part of the IExpress package that gets
expanded with the installer files.
Handles installation of the Windows
Installer files, then is deleted.

Once the files are expanded, INTSMSI.EXE calls on the internal file
MSIINST.EXE to install the Windows Installer files. MSIINST then performs
the following steps:
 Checks the platform and the version of the files to be installed. On
incompatible platforms, the message box below will appear.
Module 1.2 51 

MSIINST then opens the package containing the included database(s). It
looks for an appropriate language transform (.MST) for the user's system. 
It first tries the User's default language, then the system, then English. 
If there is a transform available, it will be applied when MSIEXEC.EXE is
run. 
If the operating system of the computer is Microsoft®
Windows® 95/Microsoft® Windows® 98, MSIINST will use the
decompressed files to run the install. If the operating system of the computer
is Microsoft® Windows NT® or Microsoft® Windows® 2000, the following
are true: 
If the user is not an administrator on the machine and Project setup has been
run with the /jm switches:
MSIINST looks for an existing install of the installer with which to run.
This allows non-administrators to upgrade to newer versions of the installer
if the product code has been assigned to them. (Product codes can be
assigned in Windows 2000) 
If a previous version of the installer cannot be found, or the user is an
administrator on the machine, MSIINST attempts to register the
decompressed files as the installer service. These files will be used to run
the install.
MSIINST then calls MSIEXEC.EXE against the included database(s). The
default database is named INSTALL.MSI for Microsoft Project 2000. It is
called with a basic logging /lv switch, which overrides any policy settings.
The log file is created in the temporary directory along with the other
decompressed files. You must retrieve the log file before completing the
installation or it will be deleted. You can override the default command line
to generate a full log elsewhere. The basic command line (currently) for a
normal install is:
msiexec /I instmsi.msi /lv instmsi.log /qb+

To override this, you can run the following:
msiexec /I instmsi.msi /lv c:\instmsi.log /qb+

Or the suggested:
msiexec /I instmsi.msi /lv* c:\intmsi.log /qb+

Note
In the example above, the command line switches are passed directly to
MSIEXEC.EXE. The same functionality happens when including these
switches on the SETUP.EXE command line.

1. The included database copies files as needed, based on file versions.
COPYMSI will always copy MSI.DLL, MSIHND.DLL, and
MSIEXEC.EXE regardless of file versions. This allows you to install older
versions of the installer over your existing copy. COPYMSI is not included
with Office 2000.
2. Next extension and OLE information is registered.
52 Module 1.2

a. On Windows 95/98, this is accomplished via the following commands:
MSIEXEC /d is called to register the extension .msi and .msp.
MSIEXEC /y msi.dll is called to register other OLE information.
These steps are performed via custom actions to prevent the installer
descriptors from being created. The bootstrapping process for the
installer necessitates these steps, which would normally not be
acceptable for a fully functional application using the installer.
b. On Windows NT, the special command line switch MSIEXEC
/regserverCA is called to perform the basic OLE, Service, and extension
registration. Unlike MSIEXEC /regserver, the service is not stopped by
this call. This, again, is necessary because it is called from within the
running service.
3. The verbs for the Windows Installer are then registered from the registry
table in the installer database. Again, these cannot be written from the verb
or extension table because of the procedure the installer uses for installing.
4. If a reboot is detected as necessary, and the installation was run in a mode
that did not suppress reboots (msiexec /q) the installer will prompt you to
reboot. Note that versions of Internet Explorer 4.01 and later will use the
MSI.DLL when available, and this will generally require a reboot to
completely release files in use. Windows installer version 1.1 will probably
attempt to force these applications to close and restart.
5. After the database install is complete, control is returned to MSIINST. If an
administrator ran the install, the service registered to the temporary folder is
stopped. MSIINST waits up to 30 seconds for the service to complete its
operation, and then returns control to INSTMSI.
6. INSTMSI then cleans up any files that are not in use, deletes
MSIINST.EXE, and exits.

Note
INSTMSI and COPYMSI are only available on Windows 2000 during the betas
and for development purposes. The Windows installer comes pre-installed on
these computers, and will only be updated by service packs.

Overview of Windows Installer (MSIEXEC.EXE)
As mentioned previously, Windows Installer is a service of the operating
system that allows it to take over the installation process. Windows Installer
consists of two parts:
1. MSIEXEC.EXE – a client-side installer service that controls the
installation process
2. MSI Package File – contains information used by Windows Installer to
install Project. It is similar in function to the STF file found in ACME setup.

MSIEXEC.EXE
The MSIEXEC.EXE program is the main component of the Windows installer.
When called by SETUP.EXE, MSIEXEC.EXE uses the dynamic link library,
MSI.DLL, to read the windows installer package (MSI file), apply the Windows
installer transform (MST file), incorporate command-line options supplied by
SETUP.EXE and install Office applications.
Module 1.2 53

Warning!

Never run MSIEXEC.EXE directly. Instead SETUP.EXE should be used to invoke
MSIEXEC.EXE. Running SETUP.EXE ensures that all system verifications are
performed.

MSI Package File The Window Installer database (.MSI file) consists of many
interrelated tables that together comprise a relational
database of the information necessary to install a group of features. This
database replaces the ACME Setup STF and INF text files as the key
components for installing applications. Because the database is relational,
changes made to one table are propagated automatically throughout the
database. This is a very efficient process for introducing consistent changes into
the installation process and means that users can more easily customize a large
application or group of applications. The database tables reflect the general
layout of the entire group of applications, including: 
Available features 
Components 
Relationships between features and components 
Necessary registry settings 
User interface for the application
To create an installation database, program developers must populate the tables
with all the information about the applications and the installation process.
Even though these files are considered relational databases, it is not possible to
open or modify these databases with tools such as Microsoft Access or
Microsoft® SQL Server™. Manually authoring all these tables is a large task
even for a moderate size installation. Microsoft Technical Support does not
support the modification of the MSI package File.

The Microsoft Window Installer SDK is available to programmers and contains
database creator/editor tools.

For more information on the general scheme of the installer database, see the
Microsoft Project 2000 Resource Kit.

Transforms While the MSI Package could theoretically be changed to
customize an installation, the amount of work to do so prohibits it.
Instead, the installation process can be manipulated by applying transforms
(.MST) to the MSI Package. A transform makes changes to some of the
elements of the MSI Package, such as changing the language in the user
interface of an application.
It is important to note that the installer does not change the .MSI package itself,
but only temporarily applies the changes from the transform in memory before
executing the package instructions. A transform is typically much smaller than
the package, so you can easily create multiple custom installations by creating
multiple transforms to use with the default package.
54 Module 1.2

While the function of the MSI package relates directly to that of the
SETUP.STF file in ACME setup, the role it plays in customization does not.
Unlike editing the Acme SETUP.STF in the previous versions of Project to
customize the installation, it is not possible to directly modify the MSI Package
File. Instead the Office Custom Installation Wizard is used to create a new
transform with all the changes necessary to customize the Project installation.
When Setup is run with both the package and the transform, the installer applies
the transform to the original package, and Setup uses the altered configuration
to perform the installation. Creating transforms is described in more detail in
Module 2 of this course.
During the setup process the MSI Package and any transforms are initially
copied to a temp folder. At the same time these files are cached in the system
folders of the operating system for use during additional component installs and
maintenance mode. During setup the files in the temp folder are used. After the
initial setup is completed, the temp files and folder are deleted.

On all platforms, the MSI and MST files cached in the system folder are stored in a
file called Installer. These files must be present for any feature to be installed when
“Installed on First Use” is used. These files are also necessary during additional
component installs and maintenance mode setups. All files in the Installer folder are
Read-Only for Everyone on an NTFS partition.

Looking at Windows Installer In-depth
The following are the actions that Windows installer performs during
Microsoft Project 2000 setup:
 Determines if setup is a new install or a maintenance mode setup
 Determines the installation location
 Determines features installed for a typical installation
 Presents the setup user interface
 Completes setup and installs any patches
 Continues after file migration
 Completes setup at first run
Module 1.2 55

The following flowchart illustrates the installation process performed by the
Windows Installer:

Check to see if No Licensing
Project is installed Welcome Screen Agreement & PID

Name, Org,
CD Key

No Custom Typical or Custom
Install location Upgrade
& Disk Space Install?

Yes Yes

Custom

Typical
Next

Yes
Remove Previous Upgrade
Version
Feature Tree
No

Launch Install Project
Maintenance Mode

Reboot
Clean-up &
Resume Complete Setup
Process
?

Figure 2 - Windows Installer
56 Module 1.2

Determining Installation Location
The default installation folder for Microsoft Project 2000 is the \Program
Files\Microsoft Office folder on the same drive where the operating system
exists. This folder also is the default folder for other Microsoft Office products.
If you already have an Office 2000 family product installed and you choose to
install Microsoft Project 2000 into a different folder, extra disk space could be
utilized because of the duplicate files in the two folders.

File Versioning Rules of Window Installer
One of the basic processes of any installer is the copying of files. The Window
Installer makes installation of different products more consistent by enforcing
some rules for copying a file to a folder that already contains a file with the
same name. When a file conflict occurs, it is very important to note that
Window Installer never asks you how to handle the situation, but instead
decides how to handle the situation silently. The rules involve the following
three properties of a file:
 Version
 Date
 Language
The rules Window Installer uses in deciding whether to install a file are the
following with more detail below:
 Highest Version Wins
 Versioned Files Win
 Favor Product Language
 Mismatched Multiple Languages
 Preserve Superset Languages
 Non-versioned Files Are User Data (files with no version number)
 Non-versioned Files Using Companion
 Rules Are Global
Highest Version Wins All other things being equal, the file with the highest
version wins, even if the file on the machine has the
highest version.

Versioned Files Win All other things being equal, a versioned file gets installed
over a non-versioned file.

Favor Product Language All other things being equal, if the file being installed
has a different language than the file on the machine,
favor the file with the language that matches the product being installed.
Language neutral files are treated as just another language so the product being
installed is favored again.

This is new setup behavior that is introduced by Window Installer. The behavior is
motivated by the desire to guarantee the application being installed will function.

Mismatched Multiple Languages All other things being equal, after factoring
out any common languages between the file
Module 1.2 57

being installed and the file on the machine, any remaining languages are
favored according to what is needed by the product being installed.
Example: 
Both files have the same version. 
The file on the machine is a multi-language file (English, French, and
Spanish) 
The file to be installed is a multi-language file (English, Italian, and
German).
The new file is installed since there are languages’ remaining after English is
factored out.

Preserve Superset Languages All other things being equal preserve the file
that supports multiple languages regardless of
whether it is already on the machine or is being installed.
Example 1: 
Both files have the same version. 
The file on the machine is for English and French. 
The file being installed is for English, French, and Spanish.
The new file is installed since it supports a superset of the languages that the
file on the machine supports.
Example 2: 
Both files have the same version. 
The file on the machine is for English, German and Italian. 
The file being installed is for German.
The existing file is used since it supports a superset of the languages that the
file being installed supports.

Non-versioned Files Are User Data All other things being equal, when the
Modified date is later than the Create date
for the file on the machine, Window Installer does not install the file because
user customizations would be wiped out. When the Modified and Create dates
are the same, the file is installed. Windows Installer assumes that if the created
and modified dates are essentially the same that the file does not contain any
user data so it is safe to overwrite.

Non-versioned Files Using Companion All other things being equal, a non-
versioned file that is associated with a
versioned file using the companion mechanism abides by the rules for the
versioned file. The only exception is when the versioned file on the machine
and the versioned file being installed have the same version and language but
the companion file is missing on the machine. In this case, the companion file
being installed is used even though the versioned file on the machine is used.
Non-versioned files can inherit installation rules from a versioned file using the
“companion file mechanism”. Placing the primary key of a versioned file in the
Version field for a non-versioned file associates these two files as
“companions”. An example would be an application executable like
MYWARE.EXE and a corresponding settings file like MYWARE.SET. In
general, the settings file should follow the same installation rules as the
58 Module 1.2

application executable. So if the companion versioned file being installed gets
used, so should the non-versioned file being installed. The only exception is
when the versioned file being installed is identical to the versioned file on the
machine, but the non-versioned companion file is missing on the computer. In
this case the non-versioned companion file being installed is used even though
the versioned file being installed does not get used.

Rules Are Global The rules for determining when to install a file reside in one
place within the installer and are global, meaning they apply
to all files equally. For example, an author of the installation of a product
cannot specify to always overwrite a particular file
PSS Learning Services

Module 1.3

Contents

Lesson 3: Local and Upgrade Installation 61
Information in this document is subject to change without notice. The names of companies,
products, people, characters, and/or data mentioned herein are fictitious and are in no way intended
to represent any real individual, company, product, or event, unless otherwise noted. Complying
with all applicable copyright laws is the responsibility of the user. No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose, without the express written permission of Microsoft Corporation. If, however, your only
means of access is electronic, permission to print one copy is hereby granted.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.

 2000 Microsoft Corporation. All rights reserved.

Microsoft, Active Accessibility, ActiveX, FrontPage, MS-DOS, Outlook, PhotoDraw, PowerPoint,
SQL Server, Visual Basic, Visual C++, Visual J++, Windows, and Windows are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.
Module 1.3 61

Lesson 3: Local and Upgrade Installation
Overview
This lesson discusses the installation of Microsoft® Project 2000. It also
discusses rollbacks, registration and component detection.

What You Will Learn
After completing this lesson, you will be able to:
 Discuss and install Microsoft Project 2000 locally as a new application
 Discuss and install Microsoft Project 2000 locally as an upgrade
 List different system components used or upgraded by
Microsoft Project 2000
 Explain the differences of installing and using Microsoft Project 2000 on
different systems (Microsoft® Windows NT® vs. Microsoft Windows 9x,
using Microsoft Internet Explorer vs. Netscape, etc.)
 Discuss piracy protection and registration features of Microsoft Project 2000
 Describe how rollbacks are implemented
 Describe how component detection works
62 Module 1.3

Installing Microsoft Project 2000
When installing Microsoft Project 2000 on a computer without a previous
version of Microsoft Project.
Launching Microsoft Project 2000 setup first displays the welcome screen for
the installation wizard. Here it will prompt you for a user and organization
name as well as the 25-character CD key found on the back of the jewel case.

Figure 1 - Welcome Screen

Clicking Next displays the end-user license agreement for
Microsoft Project 2000. At this point you are given the choice of accepting or
rejecting the agreement. If you do not accept the license agreement, setup is
cancelled. To continue with setup, the user must accept the licensing agreement.
Module 1.3 63

Figure 2 - End User License Agreement

Install Now
Accepting the agreement and clicking, displays the Ready To Install screen.
Here you are given two options. They are “Install Now” and “Customize.” The
first option installs Microsoft Project 2000 in the default location with the
default options. The default location is “C:\Program Files\Microsoft Office\”. If
Office 2000 or one of its applications is installed on the system, the default
folder is the folder in which Office 2000 is installed.
64 Module 1.3

Figure 3 - Ready to Install

By choosing Install Now, you not only accept the default installation location,
you also accept for only the default features to be installed in their default state.
For Microsoft Project 2000, the following features are installed as noted when
Install Now is chosen.
Feature Default Install State
Microsoft Project for Windows Run From My Computer
Add-ins: Adjust Dates Run From My Computer
Add-ins: Analyze Timescaled Data Run From My Computer
Add-ins: Compare Projects Run From My Computer
Add-ins: Euro Currency Run From My Computer
Add-ins: DB Conversion Run From My Computer
Add-ins: PERT Analysis Run From My Computer
Help Run From My Computer
Microsoft Project Templates Installed On First UseRun From My
Computer
Digital Signature for Microsoft® Installed On First Use
Visual Basic® for Applications (VBA)
projects
Core Support Files Run From My Computer
Module 1.3 65

Feature Default Install State
Extended Support Files Not Available
Bi-directional Support Installed On First Use
Universal Font Not Available
Japanese Font Installed On First Use
Korean Font Installed On First Use
Traditional Chinese Fonts Installed On First Use
Simplified Chinese Fonts Installed On First Use
Language Settings Tool Installed On First Use
Find Fast Search Engine Installed On First Use
Find Fast Search Converters Installed On First Use
Run From My Computer
Office Assistant: Rocky Installed On First Use
Office Assistant: Dot Installed On First Use
Office Assistant: MotherNature Installed On First Use
Office Assistant: Genius Installed On First Use
Office Assistant: Logo Installed On First Use
Office Assistant: F1 Installed On First Use
Office Assistant: Clipit Run From My Computer
Office Assistant: OfficeCat Installed On First Use
Web Publishing Run From My Computer
Spelling Checker (Spanish) Installed On First Use
Spelling Checker (French) Installed On First Use
Microsoft® Visual Basic® Help Installed On First Use
Table 1

Customize
If you choose Customize instead of Install Now, you are given the options to
make modifications to the installation location and the state in which certain
features are installed. First you are taken to the installation location screen.
Here you can see how much space is available on each system drive. You are
also given the opportunity to change the installation folder.
66 Module 1.3

Figure 4 - Installation Location

After selecting an installation location, you are taken to one of two screens,
depending on your system configuration. If you do not have IE 5 or higher
installed on you system, you are taken to the Updating Windows screen. Here
you are given the opportunity to install Internet Explorer 5 in either a standard
or minimal configuration. You may also choose not to install Internet
Explorer 5 at all.

Note
Internet Explorer 5.1 is installed with Microsoft Project 2000. If you have no
browser or a browser other than IE 5 (such as Netscape or Internet Explorer 4)
installed on your system, you will be lead to the Updating Windows screen to
install Internet Explorer 5.1. If you have Internet Explorer 5 installed, but not
Internet Explorer 5.1, your browser will be updated automatically without
displaying the Updating Windows screen.

Although Microsoft Project 2000 will work without installing Internet
Explorer 5, it is recommended that the user choose to install it. Not installing
Internet Explorer 5 can cause some features, such as on-line help, to not work.
Module 1.3 67

If you already have Internet Explorer 5 or later installed on your system, (or
once Internet Explorer 5 installation has been completed) you are taken to the
Selecting Features screen. Here you can change the installation state of any of
the features that ship with Microsoft Project 2000.

Figure 5 - Selecting Features

Installing Microsoft Project 2000 updates your MDAC components to version 2.5
automatically. There is no option to disable this during installation.

Once you have selected the desired features, Microsoft Project 2000 is installed
on the system.
Try This: Install Microsoft Project 2000
Install Microsoft Project 2000 using the Customize Option.

1. Run SETUP.EXE from the install location given you by the instructor.
2. Enter a user name, organization name, and your CD key as required. Click
Next.
3. Agree to the license agreement and click next
4. Click Customize.
5. Install Project to the “C:\Program Files\Project 2000” directory. Click next.
6. Click Microsoft Project and choose Run all from My Computer.
7. Click Install Now.

Microsoft Project 2000 should then install to the designated directory.
68 Module 1.3

Installing Microsoft Project 2000 as an Upgrade
If a previous version of Microsoft Project has been installed on the system,
Microsoft Project 2000 setup behaves a little differently than noted above. At
the Ready To Install screen, you are presented with the following two options:
Upgrade Now and Customize.

Figure 6 - Upgrade Ready to Install

Choosing Upgrade Now automatically uninstalls any previous versions of
Microsoft Project that are on the system. It then installs Microsoft Project 2000
in the default location. If you choose Customize, you receive the same options
as before with one exception. Between choosing the installation location and
selecting features, (or Updating Windows if Internet Explorer 5 is not installed)
you will get the Removing Previous Versions Screen. Here you have the option
to keep or remove previous versions of Microsoft Project.
Module 1.3 69

Figure 7 - Removing Previous Version

Other than uninstalling previous versions of Microsoft Project, installing
Microsoft Project 2000 as an upgrade is not different than installing it as a new
product.

Note
If you have a previous version of Microsoft Project already installed on your
system and you want to preserve the previous version, you should install
Microsoft Project 2000 to a different folder. Please note that if the previous
version is Microsoft Project 98, inserted projects, cross project dependencies
and resource sharing links may not work as expected. Also, workgroup
messaging features may not work as expected. Uninstalling
Microsoft Project 2000 “fixes” the unwanted connection between the two
versions.
70 Module 1.3

Use Rollback to Recover from a Failed Installation Attempt

When an installation is unsuccessful, the installer automatically restores
(rollbacks) the original state of the computer. Microsoft Project 2000 takes
advantage of this feature during installation. This means that you could cancel
the Microsoft Project 2000 installation in the middle of overwriting your
Microsoft Project 98 files and still be able to run Microsoft Project 98 when
Microsoft Project 2000 setup quits successfully. This also means that you can
resume installation if Microsoft Project 2000 setup unexpectedly quits before
completion.

Rollback Script
Window Installer accomplishes rollback by creating a rollback script. A
rollback script is a file containing a linear sequence of operations to perform
such as file and registry updates, configuration information updates, user
interface notifications, and state information for other operations. Each
operation recorded in the rollback script is a direct response of an operation in
the installation script. See the table below for some examples of what would go
into a rollback script.
During the Install Process Creating the Rollback Script
Write a registry key. If the registry key did not previously
exist, then describe how to remove the
registry key. If the key already existed,
then back up the existing registry key
so it can be restored.
Install a file. If a file did not previously exist in the
folder, then describe how to remove the
file. If the file already existed, then
back up the existing file so it can be
restored.
Create a shortcut to the file. If the shortcut did not previously exist
in the folder, then describe how to
remove the shortcut. If the shortcut
already existed, then back up the
existing shortcut so it can be restored.
Module 1.3 71

Why are rollback scripts in binary format?
Rollback scripts are in binary file format for the following reasons: 
Efficiency 
Avoids the need for parsing 
To discourage manual editing

Where Rollback Files are Located
The rollback script and files (.RBS & .RBF) are stored in hidden folders called
CONFIG.MSI. RBS files are rollback scripts. RBF files are backups of existing
files (Microsoft Project 98).

Config.Msi folders
The Config.Msi folders are created when MSIEXEC.EXE starts copying files
from the install point.

Rollback Scripts
The rollback script (.RBS) file is always stored in the CONFIG.MSI folder on
the drive where the operating system is installed. The .RBF files are stored in
the CONFIG.MSI folder located on the drive where the application that is being
backed up currently resides. This is done so that there is no crossing of drives
when backing up the application files. Files with a RBS file extension are
rollback script files and files with a RBF file extension are backups of existing
files. All rollback files and the CONFIG.MSI folder are deleted when the
installation completes successfully.

For more information on disabling rollbacks, see the following Knowledge Base
article: Q227181 "How to Manage Windows Installer Local Policies".
72 Module 1.3

Use Logging to Troubleshoot Installation Issues

Although there are a number of ways that we can troubleshoot installation
issues with Microsoft Project 2000, logging can be a particularly effective way
to find out what is happening during the installation process.
Logging can be useful to see where a setup failure may have occurred. Both
SETUP.EXE and MSIEXEC.EXE create a play-by-play report of the install
process. Logs might be especially helpful if an escalation is deemed necessary.
Microsoft Project 2000 ships with logging turned off by default.
To enable logging during the Microsoft Project 2000 setup, start setup using the
following switches:
Setup.exe /l c:\logfile.txt
Additional switches are available to specify which information is written to the
log file.

For more information on which switches to use with logging, see the
Microsoft Project 2000 Resource Kit.

Installing Features and Components on Demand
With traditional installation technology, it was necessary to exit an application
and rerun setup to perform an installation task. This commonly occurred
whenever a user wanted a feature or product they had not chosen during the
first run of setup. This often made the process of product configuration
inefficient because it required the user to anticipate which functionality they
required before they ever used the product. With the Windows Installer,
however, users can install functionality on the fly.
Module 1.3 73

Installation-On-Demand – Advertising Features
Installation-on-demand makes it possible to offer functionality to users and
applications in the absence of the files themselves. This notion is known as
advertising. The Windows Installer has the capability of advertising
functionality and to install-on-demand application features or entire products.
Whenever a user or application activates an advertised feature or product, the
installer proceeds with an installation of the needed components. This speeds up
the configuration process because additional functionality can be accessed
without having to exit and rerun another setup procedure.

Component Detection
A large portion of logic used in the Window Installer hinges on component
detection. Component detection is key in preventing DLL conflicts that often
plague applications that share common files. Whereas ACME used a procedural
script to install a disjointed collection of files, registry keys and other resources,
the Window Installer views all applications as three logical building blocks:
Components, Features, and Products. You can use the Window Installer to
detect missing components or files and then to reinstall features containing the
missing components. Because the installer installs features, and not
components, it must first resolve to which component a missing file belongs
and then install the feature containing that component.
Before addressing “Component Detection”, we need to look at these basic
building blocks of Window Installer.

Components The smallest installation unit for Window Installer is the
component. A component can be a collection of files, registry
keys, shortcuts or INI file entries. Components are commonly hidden from the
user. Whenever a user selects some feature for installation, the installer
determines which components are required. Only a single instance of any
component is ever installed and so several features may end up sharing some
components. A component does not necessarily have to contain any files. When
a component contains one or more files, all files are installed into the same
folder. This is a rule of Window Installer.

The “Golden Rule” of installer components: No single file (as defined by filename
and install location), registry entry, shortcut or other resource should ever be shipped
as a member of multiple installer components. This rule applies across products,
product versions, and companies.

Component detection information is stored in the registry at the following location:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Currentversion\Installer
\Components

Features A feature is a collection of one or more components. When you
perform a custom installation, you see a list of features to choose to
install (any item on the Feature tree). For example, Add-ins is a feature in
Microsoft Project. Features can share components.
74 Module 1.3

Products As you would expect, a product represents a single product.
“Microsoft Project” is a product. There exists one package file (.MSI
database) for each product. For Microsoft Project 2000, this file is
INSTALL.MSI. Each product has a unique product code. Products consist of
one or more features.

Note The product code for Microsoft Project 2000 is
8061EFD2ACDB1D117BEA000CF49BF2D3.

The product code for Project Central is
00A52CA4AE703D116815000CF4E6902F.

How Component Detection Works
The Windows Installer uses component detection to determine whether a
component is available and is in good working order. The Window Installer
performs component detection every time a product that was installed by the
installer attempts to use a feature. One use of component detection is
determining whether a component being installed is already installed and a
running product requesting a component, which in turn triggers component
detection. A single component contains the exact same set of resources,
regardless of which product ships it. Also, a resource cannot be shared across
components. This prevents collisions between components where the
components should have been unique from each other.
One of the objects that make up a component can be designated as the
“keypath” for that component. Typically this object is a file (for example,
winproj.exe), but it can be a registry key. The keypath represents two things:
1. The keypath represents the path to a given component. When an application
requests the path to the component, the Window Installer returns the path to
the keypath resource (usually a path to a file).
2. The keypath represents the only resource the Window Installer checks for
existence to see whether the component is properly installed.

When the keypath resource is missing, the Window Installer treats the
component as broken and triggers a reinstall of the missing component.
Module 1.3 75

Component Detection Example
A user wants Rocky, the Office Assistant that was not originally installed. After
starting setup in maintenance mode, the installer checks the following registry
key:
Hkey_Local_Machine\Software\Microsoft\Windows\CurrentVersion\Installer\Comp
onents\COMPRESSED_COMPONENT_GUID\COMPRESSED_PRODUCT_GUID
= c:\path\to\keypath
When the keypath exists at the specified path, the installer informs the calling
application (i.e. Microsoft Project) of the path and the assistant is loaded.
When the keypath does not exist, the installer returns the appropriate error code,
which in this case is INSTALLSTATE_ABSENT.

Registry Keys
The installer then looks in the following registry hives to determine whether
Project is installed per-user or per-computer, and whether it is a managed
application. A managed application is an application assigned on Microsoft®
Windows® 2000 by an administrator via the App Deployment service. Per-User
means that each user on the machine has a profile enabled. For Microsoft®
Windows® 95/Microsoft® Windows® 98, user profiles must be turned on in
order to use per-user. For Microsoft® Windows NT® 4.0 and Windows 2000,
user profiles are turned on by default. Per-computer means that the applications
are the same for all users and no profiles are enabled.
Per-user, non-managed (Windows 95/Windows 98 and Windows NT 4.0):
Hkey_Current_User\Software\Microsoft\Installer\Products\
COMPRESSED_PRODUCT_GUID

Per-user, managed (Windows 2000):
Hkey_Current_User\Software\Classes\Installer\Products\
COMPRESSED_PRODUCT_GUID

Per-computer, managed and non-managed (Windows 95/Windows 98,
Windows NT 4.0 and Windows 2000):
Hkey_Current_User\Software\Microsoft\Installer\Products\
COMPRESSED_PRODUCT_GUID
76 Module 1.3

LastUsedSource and PackageName
When the installer finds the Product in one of these locations, it looks at the
\Sourcelist key to find the PackageName and LastUsedSource location.
LastUsedSource value is in the format:
<n/u/m (net/url/media)>;<item# from n,u, or m
list>;<Sourcepath>

For example,
“n;1;\\united\dartest\public\”

When the package exists at the LastUsedSource, installer launches to install all
the components in the feature, from the list of SQUIDs in:
Hkey_Local_Machine\Sofware\Microsoft\Windows\CurrentVersion\Installer\Featur
es\COMP_PRODUCT_GUID
Feature_name = SQUID1SQUID2SQUIDn

A SQUID is simply a compressed (SQuished) GUID that is written to the registry to
save space.

When the package does not exist at the install point in LastUsedSource,
installer checks the \Sourcelist\[Net, URL, Media] sourcelist keys for alternate
sources.
The sourcelist is checked in the order of Net, Media, URL by default – but setting
the SearchOrder System Policy can change this.

When a correct MSI package file (correct Filename and Product code) is found
at one of the sources, the installer proceeds to install the components. If a valid
source is not found, the installer pops up the Network Resource Dialog box to
give the user the option of specifying another valid source. However, if the
DisableBrowse system policy is set, the browse button is not displayed to the
user.
Once a source is selected or typed into the combo box, the source is validated.
If valid, the installer proceeds to install the above. Otherwise, the installer
brings the dialog box back up again and this continues until a valid source is
found or the user cancels.
Source lists are explained in more detail in the next lesson.

Removing Components
Each installed component is registered in Hkey_Local_Machine with a list of
products that are "clients" of that component. If four different products (as
defined by the installer package code) install the same component (as defined
by the installers component code), then there will be four products in the client
list - in essence, a reference count of 4 on that component.
When the installer removes a component, it first checks the client lists of the
component to make sure that no other installer based products are using that
Module 1.3 77

component. If there is another product in the list, the installer removes the
product code of the product that is removing from the client list, and is done. If
the list is empty except for the product the installer is uninstalling, then it
performs a check of the SharedDLL key. If the installer finds a SharedDLL
count that's higher than is expected, it leaves the entire component behind.
Otherwise it will remove the entire component.
There also may be a registry entry at this location that is all zeros. This is a system
component and is never removed.
PSS Learning Services

Module 1.4

Contents

Lesson 4: Maintaining a Microsoft Project
2000 Installation 79
Information in this document is subject to change without notice. The names of companies,
products, people, characters, and/or data mentioned herein are fictitious and are in no way intended
to represent any real individual, company, product, or event, unless otherwise noted. Complying
with all applicable copyright laws is the responsibility of the user. No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose, without the express written permission of Microsoft Corporation. If, however, your only
means of access is electronic, permission to print one copy is hereby granted.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.

 2000 Microsoft Corporation. All rights reserved.

Microsoft, Active Accessibility, ActiveX, FrontPage, MS-DOS, Outlook, PhotoDraw, PowerPoint,
SQL Server, Visual Basic, Visual C++, Visual J++, Windows, and Windows are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.
Lesson 4: Maintaining a Microsoft Project 2000
Installation
Overview
Once Microsoft® Project 2000 is installed, there are many potential issues that
could cause the program to not work correctly. The new Windows Installer
technology, however, provides solutions that address the most common of these
issues.

What You Will Learn
After completing this lesson, you will be able to:
 Discuss resiliency and how Microsoft Project 2000 implements it
 Describe how source lists are created and maintained
 Detect and repair errors within Microsoft Project using two different
methods
 Add, remove, and update Microsoft Project 2000 components
 Describe Microsoft Project 2000’s uninstall process.
 List files removed and files left behind when Microsoft Project 2000 is
uninstalled
Resiliency of Microsoft Project 2000
In previous versions of Microsoft Project, you would receive error messages
whenever files were corrupt or missing. Usually the error message did not
really tell you how to fix the problem. Microsoft Project 2000 addresses this
problem by using Windows Installer to attempt to resolve the problem before
telling you there is a problem.

Resiliency
Microsoft Project 2000 uses resiliency to resolve many problems before letting
the user know a problem exists. The definition of a resilient application is as
follows:
An application that is a self-maintaining, fault tolerant and that knows how to
fix itself when files are missing or damaged. The application will know how to
retrieve or provide all necessary information and files to maintain a functional
state, with a minimal amount of effort by the user.
In the case of Microsoft Project 2000, it lets Windows Installer process error
message as a first attempt to try to remedy the problem. In many cases,
Windows Installer detects and fixes the problem without user intervention.

Note
In some cases, Windows Installer is not able to detect errors. An example of
Windows Installer not detecting an error is when a font used in a dialog box is
damaged.
Registry Resiliency
All Microsoft Office 2000 applications use a single Office Application
Programming Interface (API) to read and write settings between the Office
applications and the Windows registry. This API is called the Office Registry
API (ORAPI).
In earlier versions of Office, a missing registry key could bring an application
to a halt. In Office 2000, if an entry is somehow deleted from the registry,
ORAPI can find and use the default value without interruption.
Also, ORAPI reduces clutter in the registry by storing the default values and
locations for Office 2000 registry entries within each application in either the
executable file or in MSO9.DLL. In earlier versions of Office, values for
default settings were spread out in the registry and in the application.
These changes address problems in earlier versions of Office with registry
bloat, resiliency and management of registry values.

Where Default Values are Stored
As mentioned earlier, default values are stored within each application in either
the application executable (.EXE) or in MSO9.DLL. Storing the default values
in the application minimizes hard disk usage and speeds up registry access.
Setup /y no longer works to restore the user registry settings. However, you can use
the Office Profile Wizard from the Microsoft Project 2000 Resource Kit to reset your
user registry values back to default settings.

ORAPI Does Not Control All Office Registry Values
It is very important to note that not all Microsoft Project registry values are
stored within the application and controlled via ORAPI. Only
Hkey_Current_User (HKCU) registry values are controlled via ORAPI. All
other registry values are written at setup and are located in the MSI registry
table, or they are registry values that are directly written by the application at
run-time.

To ensure that all user data is written for each user that logs onto a computer, all
HKCU registry data that is currently being written at setup, is stored and sorted in
the MSI registry table.
Microsoft Project does not provide any resiliency for the MSI registry values or the
registry values that do not use ORAPI as they use the Win32 registry API.

The Microsoft Project 2000 Resource Kit contains an Excel workbook called
REGKEY.XLS that contains a list of the ORAPI registry values. The ORAPI
workbook contains the defaults for each registry setting along with the location of
the setting within the registry.
How Does the Office Registry API Work?
In general, when Microsoft Project 2000 needs a value, the following events
occur.
1. Microsoft Project calls ORAPI to read a value.
2. ORAPI searches for the value in the registry.
3. If the value exists in the registry, ORAPI returns the value to the
application. If the value does not exist, ORAPI locates the default value,
found in either Winproj.exe or Mso9.dll, and returns the default value to the
application.

The above steps were specific to reading a value from the registry. ORAPI
registry values only are written to the registry if the following occurs: 
The application needs to write a value that is different from the default.
-OR- 
The user changed the feature that uses the registry value from the default to
a non-default. Therefore, all ORAPI registry values are missing if the
registry value was not modified by the application or by the user.
System policies always take precedence when the ORAPI reads or writes a value in
the Windows registry. As a first step, ORAPI always checks to see whether a system
policy has been set for the entry. If a policy has been set, ORAPI uses the policy
value.
File Resiliency
Microsoft Project 2000 improves resiliency by preventing the following
common errors. 
Loading a missing DLL 
Opening a missing data file (not a user-created data file, but a non-program
file needed by Microsoft Project) 
Finding a valid source

Source Lists
One of the most important items that file resiliency depends on is the source
list. Source lists provide the location information necessary for Windows
Installer to find original copies of the Microsoft Project 2000 files. Because of
its importance, let’s take a look at it before looking at resiliency in more depth.

Source Lists for Microsoft Project 2000 Installation Locations
Applications that rely heavily on network resources for on-demand installation
and resiliency are susceptible to source failures if the source location should
change for any reason or become damaged. The Windows Installer provides
source resiliency for features that are installed on-demand in the form of the
source list.

What is a Source List?
The source list contains the locations searched by the installer for installation
packages. The entries in this list can be network locations, Uniform Resource
Locators (URLs), or local media such as a CD. If one of these sources fails,
Windows Installer can quickly and seamlessly try the next.
Windows Installer manages the source list per installed product. Thus
Microsoft Project 2000 has a separate source list than another software product
such as Microsoft Word. However to improve performance the installer stores
source list data in the registry at the following location.

Hkey_Current_User\Software\Microsoft\Installer\Products\{PackageCode}\SourceList

Source lists are product specific. Information required to build a source list is
stored in SourceList key below the {ProductCode} key for the product. This
guarantees a unique source list for each product. The key resides in the
Hkey_Current_User hive so that it follows the user that has user-assigned
roaming profiles.

Note
On Microsoft Windows 2000, the registry location for the source list is
different. It resides in the following location:
HKEY_Local_Machine\Software\Classes\Installer\Products\{PackageCode}\So
urceList
This appears to be an issue for users that use user-assigned roaming profiles.
Last Used Source
To ensure fast access to network install sources, the last successfully used
source is a value directly under the {ProductCode}\SourceList key. This way, a
single key is all that needs to be opened in most common cases.
There are three types of sources: Media, Network and URL. The
LastUsedSource is specified via an ordered source type (N, M, or U) and
integer index within the particular list for that type. For example:
“M;3;d:\project\bin”
“N;1;\\installpoint\applications\office\project\bin”
“U;2;http//www.Microsoft.com/office/project/bin”
You should note that a “source” is a fully qualified path to a folder, not a fully
qualified path to an installer package. Entries in the source list are folder paths.
The name of a package, which is appended onto a source, is stored separately as
the PackageName value. For all sources in a particular source list belonging to a
product, the package name is identical.

List of Network Sources
In addition to the LastUsedSource values in the registry, the installer maintains
a list of alternative install points. This list is used in the event that the
LastUsedSource install point is not available. The list of network sources is
stored in the following registry key:
Hkey_Current_User\Software\Microsoft\Installer\Products\{PackageCode}
\SourceList\Net

Name Data Description
<Index> (REG_EXPAND_SZ) Full path (via Drive letter or UNC) to the
root of the source image
<Index> is the first positive integer not already in use as a value name in the
For Your Information
network list. Any attempt to add more than 26 network sources to the list is
The items with % are
environment variables. ignored. A sample list of network sources might contain the following
values:
Name Data
(Default) (no set value)
1 “f:\Prj2k\image”
2 “%APPSERVER%\project\image
3 “\\server\share\apps%USERNAME
4 %MYAPPDRIVE%\office2k\

You are limited to 26 network sources in your list of network sources.

List of Media Sources
Another class of install sources is media. There is never more than a single
source in the Media SourceList since it is assumed that there is only one form
(CD or otherwise) of source media. (In the case of product installed via multiple
disks, however there are multiple entries in the Media SourceList.)
While Microsoft Project 2000 ships on one CD, it is important to understand
that other Microsoft products may ship on floppy disk, and the installer uses
multiple entries in the Media Sourcelist to keep track.
The Media Sourcelist is stored under:
Hkey_Current_User\Software\Microsoft\Installer\Products\{PackageCode}
\SourceList\Media
It may contain the following values:
Name Data Description
Default (value not
set)
DiskPrompt (REG_SZ) Friendly name that describes all CDs or other media
disk. Contains a template entry that gets filled in for
the appropriate disk in a sequence. The template
entry gets filled in with the appropriate DiskPrompt
entry from the Media table, which appears under the
<DiskID> key below.
<DiskID> (REG_SZ) Contains both the volume label of the appropriate
disk in the sequence, as well as the variable string,
which gets plugged into the template DiskPrompt
value above to form a complete user prompt.

List of URL Sources
Like network sources, URL sources are handled the same way. The list of URL
sources is stored in the following registry key:
Hkey_Current_User\Software\Microsoft\Installer\Products\{PackageCode}
\SourceList\URL
It may contain the following values:
Name Data Description
<Index> (REG_EXPAND_SZ) A fully qualified URL:
“Http://www.microsoft.com/apps/offic
e2k”
“file://www.microsoft.com/apps/downl
oad”

As with the network list <Index> is the first positive integer not already in use
as the value name in the URL list. There is a limit of 26 URLs that can be
stored in the list. A sample list of URL sources might look like the example
below:
Name Data
(Default) (no set value)
1 “http://www.microsoft.com/download”
2 “file://\\families\installapps”
3 “http://appserver/%GROUPNAME%/ap
ps”
Searching the Source List
When there is a need to install or repair a feature from the source, the installer
performs the following steps:
1. The installer retrieves the PackageName value from the SourceList key, if
available. It then appends the PackageName value to the value in the
LastUsedSource key. A back-slash is added between the source and the
PackageName since the sources may not have a trailing back-slash.
2. The resulting fully qualified path to an installer package is checked for
validity, meaning the existence of the package file is checked. For Media
sources only the first disk contains the MSI. For these disks the installer
verifies that the volume label is correct.

If the package file exists the source is deemed to be valid.
Once a valid source has been found, that source is cached in memory for the
process that requested it. This means that a given source is trusted as valid
during a single session of a given application. If the source becomes
unavailable during a session after it has been previously validated during that
same session, the installer does not go back through checking for a valid source.
The user will receive an error and must try to install the component or feature
again.
Should this check fail for any reason, the source is deemed invalid. The installer
then begins looking through the list of network sources and the list of URL
resources. By default the installer looks through the network drives first,
followed by any disks that might be in the removable media drive or drives (for
example, a CD-ROM changer) and finally any URL sources.
If after the installer has checked the LastUsedSource value and all additional
sources in the network list, media list and URL list there remains no valid
source, the installer will give the user the opportunity to browse for a new valid
source.
Source Browsing
The Window Installer provides two distinct browse dialogs; one for browsing
network sources and one for browsing Media sources. The decision of which
one to display is made according to the following rule:
If there are any network or URL sources in the SourceList, the network browse
dialog box (a user can still insert a CD and choose it from the “Use feature
from:” combo box), is displayed otherwise the dialog to browse media sources
is displayed.
The source list displayed in the “Use feature from:” combo box is the value
from the LastUsedSource key, so that a user can retry easily, assuming network
traffic caused a temporary time out. Clicking the dropdown for the combo box
shows all sources in the source list, sorted according to the search rules
described above. By default this list contains all network sources built using
drive letter information, followed by a media volume label and any URLs from
the URL source list. Order of network and URL sources is defined by the order
in which they appear in their respective lists.
By choosing OK the installer attempts to validate the source specified in the
combo box, by checking both the existence of the package file and the
{PackageCode} in the property stream of the package file. If the path to the
package file is invalid, an error is generated. Clicking OK gives you another
opportunity to find the correct location of the package.
Choosing Browse brings up the standard system File:Open dialog box with the
file type filter set to “Installation Package (*.msi)”. The path returned for the
File:Open dialog is verified by comparing the {PackageCode} in the referenced
*.MSI file with the {PackageCode} for the source list. If they match, the source
is added to the Use feature from combo box, set as the LastUsedSource value
and added to the network or URL list depending on the type of source. If the
source browsed is already in the source list, the source is not added again.
For more information, see Knowledge Base article Q224097 "OFF2000: ErrMsg
"The feature you are trying to use is on a ...".

For more information, see Knowledge Base article Q217706 "OFF2000: "The
feature you are trying..." Error Removing Office".
Altering a Source List
There are two scenarios when the source list needs to be modified: 
An administrator is making plans to deploy Microsoft Project 2000, has set
up several identical application servers and wants to make them available to
a group of users. 
All known sources are searched and no valid one is found, so the user is
prompted for a valid source. The resulting valid source is added to that
user’s source list.

Methods for Altering a Source List
Administrators and users have several options that allow fast modifications to
the source list.
Method 1 – Using the Custom Installation Wizard:
Use the Office Custom Installation Wizard to incorporate the sources into the
Transform file.
1. Start the Custom Installation Wizard.
2. When you get to Step 12 within the wizard, click Add.
3. Either type or browse to the desired server location.
4. Click OK
5. Repeat Steps 2-4 above for each source location.
6. Finish the Custom Installation Wizard.
7. Start setup using the following command line:
<path>\setup.exe \i<name of .msi file>
\t<name of transform>.mst

Note
When you use the Transform approach, you can modify the SETUP.INI to
include the transform so you don't have to add it to the command line.
To modify the SETUP.INI to include the Transform, perform the following
steps:
1. Open the SETUP.INI.
2. Remove the semi-colon before [MST].
Do not forget to remove the semi-colon before [MST] or else this section
will be ignored.
3. Add the following line to this section:
MST1=<path>\<name of transform file>\.mst
4. When you do not rename SETUP.INI and keep it at the root where
SETUP.EXE is located, you can run SETUP.EXE from this location without
using any command line switch(es).
Method 2 – SETUP.INI:
Modify the SETUP.INI to include network paths during setup. To do this,
perform the following steps:
1. Open SETUP.INI on your source with Microsoft Notepad.
2. Remove the semi-colon before [Options], or else this section is ignored.
3. Add the following line to the [Options] section:
SourceList=\\server1\adminpath\Prjfolder;\\server2\adminpath2\prjfolder2
4. Save the SETUP.INI.

If the admin modified the SETUP.INI on the install share, then they run setup.
If the admin changed the name of SETUP.INI or saved it to a location other
than the root where SETUP.EXE is located, then they need to start setup using
the /settings switch:
<path>\setup.exe /settings <path>\<name of setup.ini>

Both Method 1 and Method 2 are best done before Microsoft Project 2000 has been
installed on a user’s computers.
Method 3 – Modifying the Registry:
To modify the source list in the Registry, perform the following steps:
1. Run Regedit (or Regedt32 depending on operating system.)
2. Go to the following Registry key:
Hkey_Current_User\Software\Microsoft\Installer\Products\{PackageCode}
\SourceList\Net

3. Add a name value and a valid path to the Data1.msi file
4. Close the Registry.
Repairing Microsoft Project 2000
Although resiliency can fix many errors before the user detects them,
sometimes there are issues best resolved by repairing a Microsoft Project 2000
installation. A new command called Detect and Repair that is found on the
Help menu is the primary way of doing this. Detect and Repair performs the
following actions:
 Reinstalls a file if it is missing or an older version is present.
 Reinstalls a file if it is missing or corrupt (the stored checksum does not
match the computed value).
 Re-writes all required user registry entries.
 Re-writes all required local machine registry entries.
 Reinstalls all Windows Installer shortcuts for Microsoft Project 2000.

Repair Errors from within Microsoft Project
When you click Detect and Repair on the Help menu of
Microsoft Project 2000, the following alert message displays. When Detect and
Repair runs, all files, registry entries, and shortcuts of Microsoft Project are
verified and repaired.

Figure 1 Detect and Repair

Repair does not touch user-customized settings such as the Global.mpt file.
Microsoft Project 2000 regards customizations as intentional.
Use the Profile Wizard from the Microsoft Project 2000 Resource Kit to reset all
user-customized settings to default.

Detect and Repair on the Help menu only replaces damaged EXE and DLL
files. These are files that have a version when you check the properties of the
file from Windows Explorer. When you need to repair a non-EXE or non-DLL
file, run Reinstall from Maintenance Mode.
Detect and Repair from within Maintenance Mode
When you click Reinstall on the Maintenance Mode Setup dialog box and then
choose to Repair Errors, it performs the same actions as Detect and Repair on
the Help menu. The Reinstall option is different in that it copies down a file
even when the files are of equal version. Detect and Repair does not copy over
the file when the installed file has the correct version and correct checksum.
Neither Reinstall from the Maintenance Mode Setup dialog box nor Detect and
Repair on the Help menu can repair damaged projects.

Detect and Repair from the Command Line
You can also run Detect and Repair from the command line using the following
string:
<drive>:\setup.exe /focums data1.msi
The /f<options> command-line switch repairs a Microsoft Project installation
and is documented in the Setupref.xls file in the Microsoft Project Resource
Kit.
You can also use the /L<options> command-line switch with the previous
command-line to create a log file of the results of the Detect and Repair and
place the log file in the root of the C: drive in the file Repairlog.txt.
<drive>\setup.exe /focum data1.msi /L* c:\repairlog.txt
The following actions are performed as a result of this /f<options> command-
line switch.
Switch Description
E Reinstall if a file is missing, or if an older or equal version is
present.
O Reinstall a file if it is missing, or an older version is present
C Reinstall a file if it is missing, or corrupt (the stored checksum
doesn't match the computed value).
U Re-write all required user registry entries
M Re-write all required local machine registry entries.
s* Reinstall all shortcuts, overwriting any existing shortcut.

*The “s” option is added when you check Restore my shortcuts while repairing.
There is no command line switch equivalent to the Setup /y switch in
Microsoft Project 98 which resets the registry to defaults. In Microsoft Project 2000,
the Detect and Repair feature fixes registry issues without setting them to defaults.
This is an improvement over Microsoft Project 98 in that a user does not lose their
customized settings if only one key is invalid.
Reinstall Microsoft Project 2000
On some occasions you may choose to reinstall Microsoft Project 2000. As
mentioned above, you can also choose to reinstall from within Maintenance
mode. This option reinstalls all files and thus replacing missing, earlier version
and existing files. Reinstall is more intense than Repair in that
Microsoft Project is essentially installed again, whereas Repair looks at the files
first to determine if they need to be replaced.
Technically, Reinstall is different from the repair option in that Reinstall
replaces not only files that are missing or of an earlier version, it also replaces
current version files.

Reinstall from the Command Line
As with Detect and repair, you can run also run Reinstall from the command
line using the following string:
<drive>:\setup.exe /fecums data1.msi

The /f<options> command-line switch repairs a Microsoft Project installation
and is documented in the Setupref.xls file in the Microsoft Project Resource
Kit. Notice that "e" replaces "o" of Detect and Repair. The "e" option reinstalls
files if they are missing, or an equal or older version is present.

Compare the Methods to Fix Microsoft Project 2000
The table below compares the self-repairing resiliency feature of
Microsoft Project 2000 with the Reinstall and the Detect and Repair features of
Microsoft Project 2000 setup.
Name Automatically Replaces Fixes Can occur
Occurs damaged Microsoft while
non- Project Microsoft
versioned 2000 HKCU Project
program Registry applications
files* Settings are open
Microsoft Proje Yes No Yes Yes
ct Self-repair
when starting a
feature
(Resiliency)
Reinstall from No. You Yes Yes No
Maintenance must start it.
Mode
Detect and No. You No Yes Yes
Repair from the must start it.
Help menu.
Repair Errors No. You No Yes No
from must start it.
Maintenance
Mode
* Microsoft Project setup replaces missing Microsoft Project files regardless if
the file is versioned or not.
Maintenance Mode Setup
Maintenance Mode setup in Microsoft Project 2000 has not changed
significantly from previous versions of Microsoft Project. You can launch
Microsoft Project 2000 Maintenance Mode setup after successfully installing
Microsoft Project 2000.
 On the Start menu, click Control Panel. Click Add/Remove Programs
and then double-click Microsoft Project 2000.
-OR-
 Open SETUP.EXE from the Microsoft Project CD.

Figure 2 - Maintenance Mode

From the Maintenance Mode setup dialog box, your choices are
 Repair Microsoft Project
 Add or Remove Features
 Remove Microsoft Project
For more information, see Knowledge Base article Q217683 "OFF2000:
Maintenance Mode Requires 1280KB of Disk Space".

For more information, see Knowledge Base article Q229381 "OFF2000: Cannot
Install Internet Explorer 5 in Maintenance Mode".
Adding and Removing Features
When you click Add or Remove Features on the Maintenance Mode Setup
dialog box, you will see the Update Features dialog box illustrated in the figure
below. This dialog box allows you to change the installation choice for a
feature.
If you change an install choice of a feature from Run from My Computer to Installed
on First Use, files are removed from your computer. This also applies if you change
the install choice to Run from Network or Not Available.
In the Size group of the dialog box in the figure below, Selected Features starts
For Your Information at about 1 MB (for temporary files) and increases as features are added. If you
The 1 MB temp space is for
the rollback script file that
change a feature from running on your computer to running from the network,
must be created. running from the CD, Not available or Installed on First Use, the Selected
Features size becomes a negative number showing you how much disk space is
reclaimed.

For Your Information
“Selected Features” and
“Free Disk Space” may work
differently at RTM.

Figure 3 - Updating Microsoft Project 2000 Features

The Free Disk Space size in the Update Features dialog box shows you how
much free disk space you have on the drive where Microsoft Project is installed.
Changes made during installation are backed up until the installation is completed
successfully so that you can abort the action after you start the update process.

For more information, see Knowledge Base article Q217706 "OFF2000: "The
feature you are trying..." Error Removing Office".
Removing Microsoft Project 2000
To remove Microsoft Project 2000, click Remove Microsoft Project from the
Maintenance Mode setup dialog box. Removing Microsoft Project 2000 does
not remove Microsoft Internet Explorer 5. You can remove Internet Explorer 5
using the Add/Remove Control Panel.
To see the remove information for a Windows Installer product, see the
following uninstall registry key.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstal
l\{ProductCode}

The Product Code is a Global Unique Identifier (GUID). In order to maintain
global uniqueness, each component is assigned a GUID that appear in the
registry. The GUID prevents collisions between components that should be
distinct from one another. The entire Microsoft Project 2000 product is a
component. You cannot run Maintenance Mode setup if the previous registry
key is missing.

Files that Remain
Like previous versions of Microsoft Project, removing Microsoft Project 2000
does not remove all the files associated with the product as some may still be in
use by the operating system.

Note
Removing Microsoft Project 2000 on Microsoft® Windows NT® removes the
Microsoft Project 2000 files when you are a member of the local User group. A
member of the User group can remove all of Microsoft Project, even when the
Administrator installs Microsoft Project 2000 with the /jm switch. The
appropriate system policy must be applied to prevent a non-Administrator from
removing Microsoft Project 2000 from a Windows NT machine.

Uninstalling Microsoft Project 2000 does not uninstall the Windows Installer. Once
this is installed, it becomes a part of the operating system and is separate from
Microsoft Project. If you want to remove Windows Installer, Microsoft provides the
Windows Installer CleanUp Utility. For more information on this utility, see KB
Article Q238413.
Resiliency, Repairs, and Windows
The resiliency of Microsoft Project 2000 is tightly integrated with the operating
system. Therefore, the desktop shell must meet minimum requirements in order
for Microsoft Project to be self-repairing. For example, clicking a shortcut
makes an immediate call to the associated file and attempts to open it. When
you click on the Microsoft Project 2000 shortcut installed by Microsoft Project,
API calls must go to a intermediate source that checks to make sure all files are
in place before an attempt is made to open the file. This also applies to when
the feature is set for installation on first use.
The operating system “patch” that makes this happen is the Windows Desktop
Update feature of Microsoft Internet Explorer version 4.01. In order for
Installed on First Use to be an option for Microsoft® Windows 95® or
Windows NT 4.0 and for self-repairing operations to occur from shortcuts on
the desktop, you must have Internet Explorer 4.01, Service Pack1 or later with
Microsoft® Windows® Desktop Update installed. This is not a problem for
Microsoft® Windows® 98 or Microsoft® Windows® 2000 since these files come
pre-installed.
When the proper operating system files are in place, “fake” shortcuts are
created in the Programs folder for Microsoft Project 2000. Instead of directly
attempting to open the associated file, Windows makes a call to the resiliency
features of Microsoft Project 2000 to allow resiliency and self-repairing of the
application.
If you install Internet Explorer 5 on either Windows 95 or Windows NT 4.0 and you
did not previously have Internet Explorer 4.01 with Service Pack 1 and during the
installation enable Windows Desktop Update, you perform the following step to
enable the self-repairing behavior from the desktop.
1. Uninstall Internet Explorer 5 through Add/Remove Programs.
2. Install Internet Explorer 4.01 with Service Pack 1 and enable Windows Desktop
Update.
3. Install Internet Explorer 5 (\ie5\en\ie5setup.exe).
Fix the shortcuts by running the following command-line:
[path]\setup.exe /fs install.msi
where [path] is the path to your setup source.
Updating Microsoft Project 2000 Components
Microsoft Project 98 shipped with several extra components on the CD called
the Value Pak. With Microsoft Project 2000, the value pack is no longer located
on the CD but is available on the Microsoft OfficeUpdate Web site,
HTTP://OFFICEUPDATE.MICROSOFT.COM. This is a great resource for
updates, patches, and other Internet downloads for Microsoft Project.

THIS PAGE INTENTIONALLY LEFT BLANK
PSS Learning Services

Module 2.1

Contents

Lesson 1: Moving From Microsoft Project 98 1
Information in this document is subject to change without notice. The names of companies,
products, people, characters, and/or data mentioned herein are fictitious and are in no way intended
to represent any real individual, company, product, or event, unless otherwise noted. Complying
with all applicable copyright laws is the responsibility of the user. No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose, without the express written permission of Microsoft Corporation. If, however, your only
means of access is electronic, permission to print one copy is hereby granted.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.

©2000 Microsoft Corporation. All rights reserved.

Microsoft, Active Accessibility, ActiveX, FrontPage, MS-DOS, Outlook, PhotoDraw, PowerPoint,
SQL Server, Visual Basic, Visual C++, Visual J++, Windows, and Windows are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.
Module 2.1 1

Lesson 1: Moving From Microsoft Project 98
Overview
In this lesson we will cover some basic knowledge regarding upgrading from a
project in Microsoft® Project 98 to a project in Microsoft Project 2000. In
particular we will discuss upgrading the global template, scheduling in
Microsoft Project 2000 (pointing out differences with Microsoft Project 98) and
using the Microsoft Project 98 file format with Microsoft Project 2000.

What You Will Learn
After completing this lesson, you will be able to:
 Discuss the options for upgrading the global template
 List new features of Microsoft Project 2000 that can affect scheduling
 Compare and contrast scheduling in Microsoft Project 2000 to that in
Microsoft Project 98
 Discuss how Microsoft Project 98 and Microsoft Project 2000 react when
opening files in the other format
 Describe potential data loss when saving to the Microsoft Project 98 file
format from within Microsoft Project 2000
2 Module 2.1

Upgrading the GLOBAL.MPT

The global template (GLOBAL.MPT) is the file upon which all new projects
are based. Upgrading your global template is also one of the first choices you
are presented with when moving from a Microsoft Project 98 to a
Microsoft Project 2000 environment. As such, it is very important to understand
the behavior of Microsoft Project 2000 and possible changes in the global
template that can occur when running Microsoft Project 2000 for the first time.
The first time you run Microsoft Project 2000, you will receive a planning
wizard that gives you the following three choices:
 Upgrade Automatically - This moves all user-edited items from the old
global to the new. These items are then available within the new global
template and you are not prompted to upgrade your global template on
subsequent launches of Microsoft Project 2000.
 Upgrade manually - This launches the organizer and allows you to
manually move items to the new global template. Doing so makes the
moved items available in Microsoft Project 2000. You are not prompted to
upgrade your global template on subsequent launches of
Microsoft Project 2000.
 Cancel - This cancels the upgrade of the global template. The user receives
a prompt to upgrade the global the next time Microsoft Project 2000 is
booted and will continue to do so until either the global template is
upgraded or the option “Don’t tell me about this again” has been checked.
Module 2.1 3

Behind the Scenes
The options presented by the Planning Wizard are fairly straightforward.
However, there are a few things we should understand about what is going on
behind the scenes. During setup, the Microsoft Project 98 GLOBAL.MPT is
copied and renamed to GLOBAL80.MPT. (“80” is appended to the file name as
it denotes the version of Microsoft Project from which the global was taken.
Microsoft Project 98 was version 8.0.)

Microsoft Project 2000 will not upgrade GLOBAL.MPT files from versions of
Microsoft Project previous to Microsoft Project 98.

When the old GLOBAL.MPT is copied, an entry with the name
GLOBAL80.MPT and its location is stored in the registry at following location:

HKEY_LOCAL_MACHINE\Software\Microsoft\Office\9.0\MS Project\Previous
Global

When Microsoft Project 2000 is booted for the first time, it uses the new
GLOBAL.MPT file. It never uses the old GLOBAL.MPT from
Microsoft Project 98 unless you have manually copied over the file. (See
Caution below.) Microsoft Project then checks the following registry key to see
if it should display the Planning Wizard to prompt you to upgrade your global
template:
HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\MS Project\Previous
Global

If the No Alert key is set to “false” or if this registry key does not exist, then the
Planning Wizard is displayed. If it is set to “true” then no Planning Wizard is
displayed and no upgrade of the global template is preformed.

Caution You should never attempt to keep the customized items in your
Microsoft Project 98 global template by manually replacing the GLOBAL.MPT
file installed by Microsoft Project 2000.
Microsoft Project 2000 always attempts to use the GLOBAL.MPT file installed
by Microsoft Project 2000. It is possible, however, to “trick”
Microsoft Project 2000 by manually copying over the Microsoft Project 2000
GLOBAL.MPT file with the global template from an installation of
Microsoft Project 98. This will not stop Microsoft Project 2000 from starting.
Upon exiting from Microsoft Project 2000, the global template will be rewritten
in the Microsoft Project 2000 file format. This will allow you to use the
customized items from your Microsoft Project 98 global template. However,
this rewritten global template will not contain the new items contained in the
Microsoft Project 2000 global template and no upgrading will take place. As
such, some new features of Microsoft Project 2000 will not be available.
4 Module 2.1

When you choose to Upgrade Automatically, Microsoft Project compares the
items in your Microsoft Project 98 global template with a list of the original
items in an unmodified Microsoft Project 98 global template. If any of the items
are different, they are moved to the new Microsoft Project 2000 global
template. If the item does not have the same name as an item that natively exists
in the Microsoft Project 2000 global template, it is simply added to the
template. If the customized item has the same name as an item already existing
in the Microsoft Project 2000 global template, it is handled in the following
manner:
 Views – a view with the same name will replace the existing view in the
Microsoft Project 2000 global template. Items new to a particular view (that
is, bar styles) will be added to the view.
 Tables – a table with the same name will replace the existing table in the
Microsoft Project 2000 global template. A field that is new to a particular
table in Microsoft Project 2000 will be added to the customized table.
 Toolbars – Customized toolbar items will be added to the end of same-
named toolbars that exist in the Microsoft Project 2000 global template.
 Menus – Similar to toolbars, items will be added to the end of same-named
menus that exist in the Microsoft Project 2000 global template.
 Filters – a filter with the same name will replace the existing filter in the
Microsoft Project 2000 global template. Filters that reference the Priority
field will be rewritten to take the increased priority levels into account.
 Forms – a form with the same name will replace the existing form in the
Microsoft Project 2000 global template.
 Reports – a report with the same name will replace the existing report in the
Microsoft Project 2000 global template.
 Calendars – a calendar with the same name will replace the existing
calendar in the Microsoft Project 2000 global template.
 Maps – a map with the same name will replace the existing map in the
Microsoft Project 2000 global template.
 Macros – any user-defined modules will be moved to the new
Microsoft Project 2000 global template. New macros added to
Microsoft Project-supplied modules will also be moved over. However,
individual macros stored in Microsoft Project-supplied modules that have
the same name as macros that ship with Microsoft Project 2000 will not be
moved over. Thus if you have customized Microsoft Project-supplied
macros, these will not be moved to the new global template.
Note
If the previous version of the global template is from a foreign language version
of Microsoft Project 98, the automatic upgrade will not work. Instead an alert
will be displayed indicating that the global template was created in a language
version of Microsoft Project different from that being installed. It will then
launch the organizer so that items may manually be moved to the
Microsoft Project 2000 global template.
Module 2.1 5

Special Considerations
There are some situations where upgrading the global template may behave
differently than you expect. These are detailed below:
Network Installs – If you do a local install of Microsoft Project 2000 over a
network install of Microsoft Project 98, the global template from the
Microsoft Project 98 installation will exist on the server. To upgrade the global
template, it is copied from the server to the local machine and the upgrade
proceeds as outlined above.
If you do a network install of Microsoft Project 2000, no upgrade of the global
template will occur, regardless of type of Microsoft Project 98 installation. You
must open the templates in the organizer and manually move any desired items.
Multiple Users on the Same Machine – If multiple users on the same machine
make customizations to the global template, these changes are stored in a global
template kept in a user’s profile. Thus multiple global templates may exist on
the same machine.

Unlike previous versions of Microsoft Project, Microsoft Project 2000 looks first in
the user profile for a global template and then in the folder that contains the file
Winproj.exe.
Also the Upgrade Planning Wizard will appear to each user of
Microsoft Project 2000, regardless of what another user has done. (that is, Even
if one user has upgraded his global template, another user will see the Upgrade
Planning Wizard until he upgrades his template or checks the “Do not tell me
about this again” option.
System Policies – System Administrators can use system policies to set two
keys that affect the global template. The first points to the location of the global
template and is found at the following location:
HKCU\Software\Policies\Microsoft\Office\9.0\MS Project\Global Search\RootKey

The other key defines whether the search for the global template is restricted to
one-and-only-one GLOBAL.MPT. It is found at the following location:
HKCU\Software\Policies\Microsoft\Office\9.0\MS Project\Global
Search\Permission

If either of these keys is set, the global template will not be upgraded.
6 Module 2.1

Global.mpt After the Upgrade
Once the Global.mpt has been upgraded from Microsoft Project 98 to
Microsoft Project 2000, there is the potential that unexpected behavior may
occur. This is especially true if you are unaware of how Microsoft Project 2000
is searching for the Global.mpt.

Searching for the Global.mpt
Microsoft Project 2000 searches for the Global.mpt differently than
Microsoft Project 98 does. It is more robust and better able to find a Global.mpt
file. Microsoft Project 2000 accomplishes this by using a search algorithm that
searches multiple locations.
First Microsoft Project looks at the following registry key to see if there is a
designated location for the Global.mpt. Usually this key would be set as part of
a system policy.
HKCU\Software\Policies\Microsoft\Office\9.0\MS Project\GlobalSearch\RootKey

If Microsoft Project cannot find a global template at the location specified in the
above registry key, Microsoft Project looks for the existence of another key.
This key is usually set as part of a system policy. It specifies whether or not
Microsoft Project should continue looking for the global, or whether it is
restricted to only using a global specified in the above registry key. If the
following key is set to 0, there is no restriction and Microsoft Project will
continue to search for a global template. If the following key is set to 1,
Microsoft Project is restricted to using the designated global template. If it
cannot find that template, Microsoft Project 2000 will not be able to be
launched.
HKCU\Software\Policies\Microsoft\Office\9.0\MS Project\GlobalSearch\Permission

If Microsoft Project 2000 cannot find a global template from the above, it will
look in the following locations in the following order:
1. Current Directory
2. User Profile
3. LCID folder under the User Profile
4. The directory that contains Winproj.exe
5. The LCID folder underneath the folder that contains Winproj.exe

If a global template can still not be found, Microsoft Project will call on
Windows Installer to install a new global template. If the Windows Installer
can’t complete the installation, then Microsoft Project 2000 reports that a
Global.mpt file cannot be found and uses default settings.
Module 2.1 7

Microsoft Project 2000 Scheduling Overview

Microsoft Project 2000 continues to use the Critical Path Method (CPM) of
scheduling. However, the addition of new features adds new items that affect
scheduling or the way that a project’s schedule is perceived. Here we will
present an overview of both old and new pieces and briefly discuss how they
relate to scheduling as a whole. New features that affect scheduling will be
covered in further detail later on in the course.

Microsoft Project 2000 Scheduling Diagram

Items marked (*) denote those used in tracking
Figure 1 – Microsoft Project 2000 Scheduling Diagram
8 Module 2.1

The following symbols are used in this section:
[SS] = Scheduled Start (FS) – Finish to Start FNET- Finish No Earlier
Than

[ES] = Early Start (SF) – Start to Finish FNLT – Finish No Later
Than

[LS] = Late Start (SS) – Start to Start MFO – Must Finish On

[SF] = Scheduled (FF) – Finish to Finish MSO – Must Start On
Finish

[EF] = Early Finish ALAP – As Late as SNET – Start No Earlier
Possible Than

[LF] = Late Finish ASAP – As Soon As SNLT – Start No Later
Possible Than

Project Level

Project Information

Project Start Date – The project start date specifies the first day of the first task.
Tasks are automatically scheduled from or after this date.
Current Date – This setting specifies the current date. It is used in place of the
status date for the complete-through date in the Update Project dialog box if the
current date is later than the status date, or the status date is set to NA.
From Start/From Finish – This option designates how a project is scheduled.
When scheduled from start, the following is true:
 The project’s finish date is calculated.
 Delay values are positive and applied at the start of a task.
 ALAP tasks ignore any Leveling Delay values as the task is already as late
as possible.
 Calculations are conducted as follows:
• For MSO and SNLT tasks: [LF] = [LS] + Duration
• For the predecessor task of an (SS) link: [LF] = [LS] + Duration
• On the forward pass (done first because we are scheduled from start):
• [EF] = [ES] + span of task + task leveling delay.
Module 2.1 9

• [SS] = [ES] + task leveling delay.
• [SF] = [SS] + span of task.
• On the backwards pass:
• [LS] = [LF] – span of task
• Predecessor [LF] = successor [LS] – successor task leveling delay (if
finish is linked)
• Predecessor [LS] = successor [LS] – successor task leveling delay
(if start is linked)
When a project is scheduled from finish, the following are true: 
The project’s start date is calculated. 
Delay values are negative and applied at the finish of a task. 
ASAP tasks ignore any Leveling Delay values as the task is already as soon
as possible. 
Calculations are conducted as follows:
• For MFO and FNET tasks: [ES] = [EF] – Duration
• For a successor task of an (FF) link: [ES] = [EF] + Duration
• On the backward pass (done first because we scheduled from finish):
• [LS] = [LF] – span of task + task leveling delay
• [SF] = [LF] + task leveling delay
• [SS] = [SF] – span of task.
• On the forward pass:
• [EF] = [ES] + span of task
• Successor [ES] = predecessor [EF] – predecessor task leveling delay
(if start is linked)
• Successor [EF] = predecessor [EF] – predecessor task leveling delay
(if finish is linked)
Priority – Priority sets the leveling order of importance for the project as a
whole. It is used when using a resource pool or leveling a project with inserted
projects. Priority may be set from 0 to 1000 with 1000 being the higher priority.
Status Date - Microsoft Project uses the status date to identify the complete-
through date in the Update Project dialog box unless it is earlier than the current
date setting. If you set the status date to NA, Microsoft Project uses the current
date as the status date.

Project Settings
Calculation Option – Setting this option to automatic specifies that you want
your project automatically recalculated when information within your project
changes. Setting this option to manual allows you to choose when to recalculate
the information within your project.
Show Scheduling Messages – Enabling this option displays warnings regarding
problems with your project’s schedule. If this option is disabled, you will not be
alerted to potential problems with your schedule.
10 Module 2.1

Auto Link inserted or moved Tasks – Select the Auto link inserted or moved
tasks check box to automatically re-link tasks when you cut, move, or insert
them. If you clear this check box, Microsoft Project does not create any task
dependencies when you cut, move, or insert tasks. This option only works for
FS relationships. This is a local setting saved with the active project.
Split In-Progress Tasks – Select the Split in-progress tasks check box to allow
rescheduling of remaining duration and work when a task slips. If you select
this check box, when you update task-tracking information, you can enter the
date you stopped work on the task and the date you resumed work.
Microsoft Project reschedules the remaining duration and work. If the check
box is cleared, you cannot edit the Stop and Resume fields when you update
task-tracking information. This is a local setting saved with the active project.
Leveling calculations – This option delays or splits tasks or assignments to
eliminate resource conflicts. The Automatic option causes leveling to occur
whenever you make changes to your schedule. The manual option levels
whenever you click Level Now.
Updating task status updates resource status – Select this option to have
Microsoft Project automatically calculate the actual and remaining work for
resources assigned to the task as you enter task percent complete information in
your schedule. If you select this check box, Microsoft Project recalculates the
actual work whenever you enter information into the Percent Complete, Actual
Duration, or Remaining Duration fields. If you don't select this check box, you
must manually enter values in the Actual Work field for resources. This is a
local setting saved with the active project. (See also Percent Complete and
Actual Start.)
Tasks will always honor their constraint dates – When this option is selected,
two things occur. First, leveling cannot make adjustments to tasks that would
violate their constraints. Second, a successor task must honor its constraint even
if it means violating a relationship with a predecessor. When this option is not
selected, leveling can adjust tasks regardless of their constraints. Also, a
successor can be scheduled as its predecessors dictate, even if it means that the
successor constraint will be violated.

Calendars
Project Calendar – The project calendar is used to schedule summary tasks,
fixed duration tasks, tasks with no task calendar, and tasks with no assignments.
Task Calendars – Task calendars impact the dates that a task is scheduled for.
For example, setting Wednesday as a non-working in a task calendar day will
cause a 5-day duration task that starts on Monday to finish the following
Monday. This is true even on a fixed duration task. Task calendars are covered
in more detail later in this course.
Resource Calendars – Resource calendars impact the dates of fixed units and
fixed work tasks. For example, you cannot edit time-phased work for days
specified as non-working in these calendars. (Note: You can, of course, edit
actual work on these non-working days.)
Module 2.1 11

Tasks
Dependencies – Dependencies specify the manner in which two tasks are
linked. Because Microsoft Project must maintain the manner in which tasks are
linked, dependencies can affect the way a task is scheduled. In a scenario where
there are two tasks, the following dependencies exist: 
Finish to Start – Task 2 cannot start until task 1 finishes. 
Start to Finish – Task 2 cannot finish until task 1 starts. 
Start to Start – Task 2 cannot start until task 1 starts. 
Finish to Finish – Task 2 cannot finish until task 1 finishes.
Dependencies may also include lag. This value may insert time into the
relationships above.
Constraints – (see also, tasks will always honor their constraints.) Constraints
allow you to set the way you want to constrain the start or finish date of a task.
The following constraints can be set on tasks: 
As Late As Possible – Sets the start date of your task as late in the Project
as possible, without pushing out the Project finish date. 
As Soon As Possible – Sets the start date of your task as soon as possible
without preceding the project start date. 
Finish No Earlier Than – Sets the finish date of your task to the specified
date or later. 
Finish No Later Than – Sets the finish date of your task to the specified
date or earlier. 
Must Finish On – Sets the finish date of your task to the specified date. 
Must Start On – Sets the start date of your task to the specified date. 
Start No Earlier Than – Sets the start date of your task to the specified
date or later. 
Start No Later Than – Sets the start date of your task to the specified date
or earlier.
Actual Start – Denotes the actual start date and time of a task. If this date exists
for a task, the task is scheduled to start at that time and Microsoft Project is
limited in the scheduling of work for that task.
Outline Level – Tasks that are sub-tasks (or child tasks) to summary tasks (or
parent tasks) are limited in how they are scheduled.
Deadline Date – Unlike FNLT, the deadline date is not used when calculating
the schedule. However, it does affect the late finish date of a task and thus its
slack. An indicator is displayed if a task is scheduled beyond its deadline date.
Task Type – Tasks innately have three interrelated variables: Duration, Units,
and Work. A change in one of these affects the other two variables. In order to
predict the change to these variables, Microsoft Project allows you to fix one of
the variables. This allows you to change a second variable and predict the
change in the third. Tasks types are merely the fixing of one of the three
variables. The three types of tasks and the way a change effects that task are
shown in the table below:
12 Module 2.1

Field that you Field Calculated Field Calculated Field Calculated
change if the task is Fixed if the task is Fixed if the task is Fixed
Duration Units Work
Work Units are Duration is Duration is
recalculated recalculated recalculated
Duration Work is Work is Units are
recalculated recalculated recalculated
Units Work is Duration is Units are
recalculated recalculated recalculated

Effort Driven – The effort driven setting specifies for Microsoft Project to keep
the total task remaining work value at its current value as resources are assigned
or removed from the task. Effort driven has no impact unless a task has
remaining work greater than zero.
Percent Complete – Percent Complete specifies the amount a task that has been
completed. Giving a task a percent complete value automatically gives it an
actual start date. Thus they behave similarly. (See also Updating Task Status
Updates Resource Status.)
Time-phased Edits – Tasks may be manually edited on a time-phased basis.
These edits directly impact the schedule of a task. Sometimes these edits are not
readily seen because of the timescale settings in the Task Usage or Resource
Usage view.
Priority – Affects the order that tasks are leveled in. Settings can be from 0 to
1000 with 1000 being the higher priority task. The setting of 1000 also implies
“Do Not Level.”
Leveling Delay – This field shows how much time a task is delayed over its
regularly scheduled start. This value may be changed when a project is leveled
or may be changed manually.
Module 2.1 13

Resources
Resource Type – Microsoft Project 2000 includes both material and working
resources. Material resources behave differently than working resources. For
example, effort driven settings have no effect as material resources are added or
removed from a task. Because material resources act differently than working
resources, users may not get the behavior they expect as they assign or remove
tasks. Material Resources are covered in more detail later in this course.
Units – When resources are assigned, the units setting for the assigned resource
can affect the schedule of a task. For example, changing the units of an assigned
resource on a fixed units task from 100% to 50% can double the length of your
task.
Availability – Resource Availability (Max. Units) settings allow you to specify
that a resource is available for an entire project or for a specific date range.
Availability settings do not directly affect a task’s schedule, nor do they effect
non-working days for a resource (that is, changing a resource’s availability
dates does not affect its calendar).
Availability, however, can change a task’s schedule when combined with
resource leveling. This is because a resource assigned to a task outside its
availability dates is treated as over allocated (that is, A resource’s max available
units are set to 0 for non-available time). Thus, leveling may try to adjust tasks
and/or assignments to resolve over allocations introduced by the availability
settings.

Assignments
Contours – Contours allow you to shape the distribution of assigned work to a
predefined pattern. If non-time-phased work values for an assignment are then
changed, Microsoft Project can change the schedule of a task to accommodate
the predefined pattern. Manually editing the time-phased assignment values on
a task results in a custom contour.
Actual Start/ Work – The actual start date of an assignment and/or the actual
work of an assignment will fix the schedule of a task to match the values
entered in the actual fields.
Delay – Delay may be manually adjusted to adjust individual assignments. For
example, if you want a resource to work only the last half of a 10-day duration
task, you may delay the resource’s assignment 5 days. When an assignment on
a task has some delay, it does not necessarily change a task’s start date, but
rather just the start date of the individual assignment.
Leveling Delay – This field shows how much time an assignment is delayed over
its regularly scheduled start. Delaying an assignment on a task may (or may
not) delay the task as a whole. This value may be changed when a project is
leveled or it may be changed manually. Leveling delay is added to any delay
value on an assignment.
14 Module 2.1

Try This: Unexpected Scheduling
As a group, develop a Project schedule that behaves unexpectedly using the
scheduling areas discussed above. Exchange your schedule with another group and
solve their scheduling problem.
1. Get into groups as arranged by the instructor.
2. Develop a “problem” schedule using elements listed in the scheduling
diagram.
3. Write down how your group’s project is not scheduling as expected. Also
write down each of the reasons it is not scheduling as expected.
4. Exchange your project with another group. Tell them how you expect for
the project to schedule. DO NOT tell them why it is scheduling
unexpectedly.
5. Examine the project you received during the exchange. List the factors
involved in the way it is scheduling.
6. Discuss your conclusions with the group you exchanged projects with.

Did your list match the other group’s list?
Module 2.1 15

Working With Microsoft Project 98 Files in Microsoft Project 2000

Like previous versions of Microsoft Project, Microsoft Project 2000 allows you
to open project files created in the previous version. In addition,
Microsoft Project 2000 allows you to save files created in
Microsoft Project 2000 in the Microsoft Project 98 file format. This is a new
feature to Microsoft Project. Because of its importance, let’s take a closer look
at how Microsoft Project 2000 works with Microsoft Project 98 files.
Microsoft Project 2000 does not open projects from versions prior to Project 98.
However, Project 2000 does open .MPX .

Opening Microsoft Project 98 Files in
Microsoft Project 2000
When you open Microsoft Project 98 files, you do not get any alerts indicating
that the file is not a Microsoft Project 2000 file. Unlike previous versions of
Microsoft Project, you also do not get any indication that a conversion is taking
place. In all respects the file appears to be a Microsoft Project 2000 file and you
are able to use all new features.

Saving Your Project in the Microsoft Project 98 Format
When you attempt to save your Microsoft Project 98 file, however, you receive
the following alert:

Figure 2 - Alert Saving in Microsoft Project 98 Format
16 Module 2.1

Figure 3 - Saving Microsoft Project 98 Format

Although the message indicates some things that might be affected, it is
important to understand clearly what is affected and what is not affected when
saving in the Microsoft Project 98 format.

Areas that are Lost When You Save in the Microsoft Project 98 Format
The following is a general list of data that could possibly be lost when saving a
Microsoft Project 2000 file in the Microsoft Project 98 format.
Although there are many different areas where changes may occur, there are
three main areas where there could be data loss. These areas are baselines, the
Network Diagram, and fields that are new to Microsoft Project 2000.

Baselines Baseline information in Microsoft Project 2000 is handled
differently than in Microsoft Project 98. Thus baseline information
may be lost when working with both Microsoft Project 98 and
Microsoft Project 2000 file formats. Baseline data is handled differently
depending on the situation. The following four scenarios exist.
Scenario 1 – When you open a Microsoft Project 98 file with baseline data in
Microsoft Project 2000, but do not save the baseline in Microsoft Project 2000,
baseline information will be preserved when saving in the Microsoft Project 98
format.
Scenario 2 – When you open a Microsoft Project 98 file with baseline data in
Microsoft Project 2000, and do save the baseline in Microsoft Project 2000,
baseline information is saved in the Microsoft Project 98 format.
Scenario 3 – If you create a new file in Microsoft Project 2000, but first specify
the Save Format as Microsoft Project 98 (either by first directly saving the file
in the Microsoft Project 98 format or by having the Default Save Format set to
Microsoft Project 98), then when you do a Save Baseline in
Microsoft Project 2000, the baseline information is saved in the 98 format.
Module 2.1 17

Scenario 4 – If you create a new file in Microsoft Project 2000, save the
baseline, change the schedule, and then save the file in the Microsoft Project 98
format, baseline data will be lost. Baseline information stored in the
Microsoft Project 2000 format cannot be converted back into the
Microsoft Project 98 format.
In this scenario, the following alert will appear:

Figure 4 - Saving Microsoft Project 98 Format
18 Module 2.1

From these scenarios we can assume the following generalizations:
 Baseline information saved in the Microsoft Project 2000 format cannot be
converted into the Microsoft Project 98 format.
 Baseline information saved in the Microsoft Project 98 format can be
converted into the Microsoft Project 2000 format.
 Microsoft Project 2000 Baseline timephased information is not saved to the
Microsoft Project 98 format.
Network Diagram The Network Diagram in Microsoft Project 2000 is
significantly different than the PERT Chart in
Microsoft Project 98. Because of the differences, data loss may occur when
working between the two versions. When working with the Network Diagram
between the two versions, the following five scenarios exist:
 If you have customized formatting or layout in your Microsoft Project 98
PERT Chart and you open your file in Microsoft Project 2000 and do not
make any changes, the original PERT Chart will remain intact.
 If you open a Microsoft Project 98 file with customized PERT formatting or
layout in Microsoft Project 2000 and add new tasks but do not go to the
Network Diagram view at all, then save back to the Microsoft Project 98
format, all original PERT nodes will remain intact. New nodes, however,
will get stacked up in the top left corner.
 If you open a Microsoft Project 98 file with customized PERT formatting or
layout in Microsoft Project 2000, make changes in the Network Diagram,
and save your project in the Microsoft Project 98 format, you will lose
formatting.
 If you open a Microsoft Project 98 file in Microsoft Project 2000 with a
default Pert Chart that has not changed at all, the defaults will be preserved
when saving to the Microsoft Project 98 format.
 If you create a new file in Microsoft Project 2000, customize the Network
Diagram view and then save in the Microsoft Project 98 format, all
customizations made will be lost. Subsequently opening the file in
Microsoft Project 98 PERT view will be like opening it for the first time in
that view.
Fields New to Microsoft Project 2000 Any data contained in fields that are new
to Microsoft Project 2000 will be lost
when saved to the Microsoft Project 98 format. The following parts of a project
may reference a new field and would be affected as stated below when saving
from Microsoft Project 2000 in the Microsoft Project 98 format:
1. Tables – new fields are dropped from the table.
2. Filters – reference to the new field is dropped from the filter.
3. Views – new fields that are part of the Gantt Bar text are removed.
4. Maps – references to new fields are removed from the map.
5. Forms – new fields are removed from forms saved with the project.
6. Macros – although nothing is changed, a macro that references a new field
may not work correctly

Note
Module 2.1 19

Reports are not listed above because they do not directly reference new fields.
However, they could be affected if the table or sort order they use reference a
new field.

For more information, see the online help for New Fields in Microsoft Project 2000.

Setting the Microsoft Project 98 Format to be the Default File Format
You can set Microsoft Project 2000 to use the Microsoft Project 98 format as
the default file format in which to save projects. To find this setting, click
Options on the Tools menu and click the Save tab. Change the “Save
Microsoft Project files as:” setting to Microsoft Project 98 (*.mpp) and click
OK.

Note that although Microsoft Project 2000 can open projects from a
Microsoft Project 98 database, it cannot save to the Microsoft Project 98 database
format.
20 Module 2.1

Opening Microsoft Project 98 Databases in
Microsoft Project 2000

You can open a Microsoft Project 98 database within Microsoft Project 2000.
However you cannot save any changes to the project back into the
Microsoft Project 98 database format. Instead, Microsoft Project 2000 saves the
entire project within the same database by creating all the tables necessary for
the Microsoft Project 2000 format. It then saves the project information to those
new tables. (Note: If the tables for the Microsoft Project 2000 format already
exist, Microsoft Project 2000 simply saves the project information to those
tables rather than recreating them.) Thus, saving changes to a project saved in
the Microsoft Project 98 database format while in Microsoft Project 2000
actually creates a new project saved in the same database.
If a user opens a Microsoft Project 98 Database in Microsoft Project 2000,
makes changes to the project and saves those changes to the same .MPD file,
Microsoft Project 98 users will still be able to open the project from the
database. However it will be the project saved from Microsoft Project 98
(which will not contain the changes made in 2000) and not the project saved in
Microsoft Project 2000.

What Happens When Microsoft Project 98 Users Try to
Open Microsoft Project 2000 Files?

Microsoft Project 2000 is fairly good at opening Microsoft Project 98 files.
However, Microsoft Project 98 is not able to open Microsoft Project 2000 files.
If you open a Microsoft Project 2000 file in Microsoft Project 98, you will
receive the following dialog box:

Figure 4 - Opening Microsoft Project 98 files in Microsoft Project 2000
Module 2.1 21

If you click Yes, you are directed to a web page that gives the following
message:
“You have been directed to this page because Microsoft Project 98 is unable to
recognize the file you are trying to open and the contents of the file indicated
that it may have been created in a new version of Microsoft Project. There are
no new converters available for Microsoft Project 98 and only the currently
supported file types can be opened in Microsoft Project 98. In order to open the
file, you can either have the file originator save it into the Project 98 file format
or obtain the latest version of Microsoft Project. A trial version of
Microsoft Project 2000 is orderable on www.microsoft.com/project.”
If you click No, you receive the following dialog box.

Figure 5 - Format is not recognized
22 Module 2.1

Try This: Working with Microsoft Project 98 files in Microsoft Project 2000
Experiment to see what happens when you open a Microsoft Project 98 file in
Microsoft Project 2000
1. Copy the Microsoft Project 98 file from the network share to your local
computer as directed by the instructor.
2. Open the Microsoft Project 98 file in Microsoft Project 2000.

Do you receive an alert warning you that this is a Microsoft Project 98 file?
If yes, what does the alert say?
3. Make a change to the project and save the file.

Do you receive an alert warning you that this is a Microsoft Project 98 file? If
yes, what does the alert say?
PSS Learning Services

Module 2.2

Contents

Lesson 2: Entering Tasks 23
Information in this document is subject to change without notice. The names of companies,
products, people, characters, and/or data mentioned herein are fictitious and are in no way intended
to represent any real individual, company, product, or event, unless otherwise noted. Complying
with all applicable copyright laws is the responsibility of the user. No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose, without the express written permission of Microsoft Corporation. If, however, your only
means of access is electronic, permission to print one copy is hereby granted.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.

© 2000 Microsoft Corporation. All rights reserved.

Microsoft, Active Accessibility, ActiveX, FrontPage, MS-DOS, Outlook, PhotoDraw, PowerPoint,
SQL Server, Visual Basic, Visual C++, Visual J++, Windows, and Windows are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.
Module 2.2 23

Lesson 2: Entering Tasks
Overview
In this lesson we will discuss some new features of Microsoft Project 2000 such
as Task Calendars, Deadlines, and WBS and Outline Codes.

What You Will Learn
After completing this lesson, you will be able to:
 Set up a task calendar
 Describe how task calendars affect scheduling
 List troubleshooting steps to determine which calendar is driving a task’s
schedule
 Describe what effect scheduling has on deadlines
 Describe steps to troubleshoot scheduling issues related to deadlines
 Create a complex Outline code given a scenario
 Troubleshoot WBS issues related to scheduling
24 Module 2.2

Task Calendars
Task calendars, a new feature in Microsoft® Project 2000, allow you to create
schedules that affect only the tasks to which they are assigned. This feature was
added to Microsoft Project 2000 in response to customers’ requests for a
capability similar to some of our competitors' products.

What Is a Task Calendar?
Task calendars allow you to schedule a task based on working and nonworking
times that are unrelated to either the Project Calendar or the calendars for the
resources assigned to the task. When a task calendar is assigned, resources will
not be scheduled during task calendar nonworking periods. Thus it is not
necessary to edit the resources' assignments in order to make them available for
other tasks.
For example, suppose the progress on a task depends on the availability of a
particular piece of equipment. Every Wednesday morning, this equipment
undergoes routine maintenance that takes four hours. During this time no other
resources can do any work on the task. In Microsoft Project 98 you would have
to edit each resource's individual assignment to make them available for other
tasks during the equipment downtime. In Microsoft Project 2000, you can
create a base calendar (that will be used as a task calendar) that shows the 4
hours as nonworking time and apply it to the task, allowing the other assigned
resources to be automatically scheduled on other tasks during that time.
Task calendars are not really a third type of calendar; rather they represent a
new use for base calendars. If a suitable base calendar already exists in the
project, it can be assigned as a task calendar. Otherwise, a new base calendar
can be created to meet the needs of the task, using the Change Working Times
dialog just as for any base calendar.
Module 2.2 25

How Task Calendars Are Assigned
Task calendars are assigned on the Advanced tab of the Task Information
dialog.

Figure 1 - Task Information, Advanced Tab

The new dialog items related to task calendars are described below: 
Calendar – Contains a dropdown list where the user can select any base
calendar currently defined in the project. The default is "None". 
Scheduling ignores resource calendars – A checkbox that controls whether
resource calendars will be taken into consideration when scheduling the
task. This option is unavailable if no task calendar is selected. When a task
calendar is first specified, the option is unchecked by default.

New Task Fields Related to Task Calendars
Two new task fields, "Task Calendar" and "Ignore Resource Calendar," have
been added to store the current task calendar settings. Columns for both of these
fields can also be added to any task sheet. If modified in a task sheet, the new
settings are reflected in the corresponding locations in Task Information. 
Task Calendar – Contains the name of the base calendar assigned to the task.
When a column for the Task Calendar field is inserted into a task table, the
user can click a cell in the column and then select from a dropdown picklist
of base calendars defined in the project. 
Ignore Resource Calendar – A Boolean (Yes/No) field. If Task Calendar is
set to None, then Ignore Resource Calendar is set to No and is read-only.
26 Module 2.2

How Task Calendars Work with the Project Calendar and
Resource Calendars

General Rules for Task Calendar Scheduling
The basic rules that govern how the Project Calendar, resource calendars, and
task calendar combine to affect task scheduling are as follows:
 When no task calendar is assigned, there is no change from the scheduling
behavior in Microsoft Project 98.
 A task calendar always takes precedence over the Project Calendar for
scheduling the task to which it is assigned.
 When a task calendar is assigned and Ignore Resource Calendar is set to No,
the task is scheduled based on the intersection of the task and resource
calendars. Nonworking time in the task calendar always takes precedence
over working time in the resource calendars. How this intersection works is
illustrated in Examples 1 and 2 below.
 When a task calendar is assigned and Ignore Resource Calendar is set to
Yes, the task calendar takes precedence over the resource calendars for both
working and nonworking time. In this situation resources will be scheduled
for periods that are nonworking in the resource calendar if the same periods
are working time in the task calendar. This scenario is illustrated in
Example 3 below.
A resource that is scheduled during nonworking time in this fashion is not marked as
overallocated.

The above rules are summarized in the following table:
Task Resource Ignore
Calendar Calendar Resource
Assigned Assigned Calendar Impact on Schedule
Schedule based on the Project Calendar
X Schedule based on the task calendar
X Schedule based on resource calendar
X X Schedule based on intersection of
working time of task and resource
calendars, with possible error condition
set
X X X Schedule based on task calendar, with
possible error condition set
Table 1

Effect of Ignore Resource Calendar Option
The following table shows the effect of the Ignore Resource Calendar option
when both task and resource calendars are assigned:
Module 2.2 27

Ignore
Resource
Calendar
Scenario Option Response
(A) Both calendars Off or On Normal schedule
match
(B) Nonworking time Off or On Schedule based on task calendar
in task calendar, but
available in resource
calendar at the same
time
(C) Working time in Off Schedule based on resource
task calendar, but calendar
nonworking time in
resource calendar at
the same time
(D) Same as above On Schedule based on task calendar
(E) Task calendar and Off Schedule based on task calendar;
resource calendars do alert message generated and error
not intersect; there is indicator set
no period where both
the task and resource
calendars have
working time
(F) Same as above On Schedule based on task calendar
Table 2

Scenario E represents the only situation that cannot be resolved by the general
rules for task calendar scheduling. When this occurs, an error indicator is set
and the following error message is displayed:

Figure 2 - Not Enough Working time

When multiple resources are assigned at once and more than one resource has a
calendar that conflicts with the task calendar, the error message is displayed
only once.
28 Module 2.2

Examples
For Examples 1, 2 and 3, let's use a 3-day task with a task calendar assigned.
The task starts on a Monday, and Saturday and Sunday are nonworking periods
in all calendars.

Example 1 (Ignore Resource Calendar Set to No)
M T W Th F
Task Calendar Nonworking
Resource Working Working Working Working Working
Calendar
Intersection Working Nonworking Working Working Working

In the above example, because Tuesdays are nonworking time in the task
calendar, they will also be treated as nonworking time for the resource. This is
how the task would look in the Gantt Chart:

Figure 3 Example 1

Example 2 (Ignore Resource Calendar Set to No)
M T W Th F
Task Calendar Nonworking
Resource Working Working Nonworking Working Working
Calendar
Intersection Working Nonworking Nonworking Working Working

In this example, Tuesday is nonworking in the task calendar and Wednesday is
nonworking in the resource calendar, so both Tuesday and Wednesday are
treated as nonworking time for the resource. Here is how the task would look in
the Gantt Chart:

Figure 4 Example 2
Module 2.2 29

Example 3 (Ignore Resource Calendar Set to Yes)
M T W Th F
Task Calendar Nonworking
Resource Working Working Nonworking Working Working
Calendar
Intersection Working Nonworking Working Working Working

Example 3 has the same calendars as in Example 2, but because Ignore
Resource Calendar is set to Yes, the resource will be scheduled as if
Wednesday were a working day in the resource calendar. Here is how the task
would look in the Gantt Chart:

Figure 5 Example 3

Example 4 (Ignore Resource Calendar Set to No)
M T W Th F
Task Calendar Working Nonworking Working Working Nonworking
Resource Working Working Nonworking Nonworking Working
Calendar
Intersection Working Nonworking Nonworking Nonworking Nonworking

In this example, let's again assume a 3-day task with a task calendar is assigned.
With the intersection described in the following table, the 3-day task will not
finish until two weeks after it starts!
Here is the task, as it would appear in the Gantt Chart:

Figure 6 Example 4
30 Module 2.2

Example 5 (Illustrates Scenario E in the table shown under
Effect of Ignore Resource Calendar Option)
The example below illustrates Scenario E, the irresolvable schedule, in the table
shown in the section "Effect of Ignore Resource Calendar Option." In the
calendars shown below, the intersection of the task and resource calendars
results in nonworking time for all periods. If Ignore Resource Calendar is set to
Off, then there is no period in which the resource can be scheduled.
S M T W Th F S
Task Nonworking Nonworking Working Nonworking Nonworking Nonworking Nonworking
Calendar
Resource Nonworking Working Nonworking Working Working Working Nonworking
Calendar
Intersection Nonworking Nonworking Nonworking Nonworking Nonworking Nonworking Nonworking

Effect on Fixed Duration Tasks
Fixed Duration is the only task type whose behavior is directly affected by
assigning a task calendar. Under normal circumstances, the Start and Finish
dates of a Fixed Duration task will not change unless the user modifies the
Duration. However, if the user assigns a task calendar to a Fixed Duration task,
and the task calendar has nonworking periods that fall within the time frame of
the task, the Finish date may move out. This behavior is by design; in
Microsoft Project 2000 the task calendar takes precedence over the task type, no
error or alert is generated.

Important
Although the task may be rescheduled and have a different finish date, the
duration of the task does not change. This behavior is the same as if a task
being scheduled by the Project Calendar had a non-working day in the middle
of the task.

For example, we have a 5-day Fixed Duration task that starts on Monday and
ends on Friday. When a task calendar is applied which has Wednesday as
nonworking time, the task would finish on the following Monday.

Effect on Constraints
A task calendar takes precedence over constraints for scheduling purposes.
When there is nonworking time in the task calendar, the task is not scheduled to
work during that nonworking time. This has the potential of rescheduling a task
despite a hard constraint.
For example, a 1 day task has a constraint of Must Start On with a Constraint
Date of Tuesday 12/7/99 and a scheduled Finish of 12/7/99. When a task
calendar is applied which has Tuesdays as nonworking day, the constrained
Start date will remain 12/7/99, but the Finish will move to Wednesday 12/8/99.
Module 2.2 31

Using Task Calendars with Recurring Tasks
On recurring tasks, a task calendar can be assigned to both the summary task
and its subtasks. The Recurring Task Information dialog has been updated as
shown below to include the "Calendar" and "Scheduling ignores resource
calendars" options.

Figure 7 Recurring Task Information dialog

The behavior is summarized as follows: 
When a task calendar is assigned in the Recurring Task Information dialog,
the same task calendar is automatically assigned to all of its subtasks.
Subtasks that already have a different task calendar will not be modified. 
When a recurring summary task is edited to select a different task calendar,
every subtask currently using the same task calendar will also be changed to
the new calendar. 
A task calendar assigned or removed for a recurring subtask affects only
that task.
32 Module 2.2

Using Task Calendars with Summary Tasks
Task calendars can be assigned to summary tasks; however, unlike with
recurring tasks, the Summary task's calendar does not roll down to the subtasks.
A summary task’s calendar calculates the working span of the summary task
based on the working times in the task calendar.

Comparison to Microsoft Project 98 Behavior
In Microsoft Project 98, summary task working spans are calculated against the
Project Calendar, so in cases where the subtasks are calculated against resource
calendars that are different than the Project Calendar, the summary task
duration might not make sense to the user.
For example, in a Microsoft Project 98 project using the 24-Hour Calendar,
with a day defined as 24 hours, a summary task could have subtasks whose
resources are based on the Standard Calendar. The Gantt Chart might look like
this:

Figure 8 Summary Working duration

Note that the subtasks each have a duration of 2 days, but the Summary Task
duration calculates as 10.13 days.
In Microsoft Project 2000, you could assign the Standard Calendar to the
summary task, so that the summary task would calculate its duration in a
manner consistent with its subtasks. The previous example would then look like
this:

Figure 9 Summary using Standard calendar
Module 2.2 33

What Happens When a Base Calendar Is Deleted?
When the Organizer is used to delete a base calendar that is in use by existing
tasks, the following alert will be displayed:

Figure 10 Deleting Base Calendar

For all tasks that used the deleted calendar, the Task Calendar will be changed
to the Standard Calendar. "Undo" is not available for this action.

When the calendar is deleted, the user is first asked to confirm whether they really
want to delete the calendar. They are not notified that the calendar is in use by the
project until it is too late to undo the result.
34 Module 2.2

Try This: Non-working Time and Task Calendars
Experiment to see how changing non-working time affects a task’s schedule when it
has a task calendar.
1. In the Task Name field, type a task name.
2. Press TAB to move to the Duration field.
3. In the Duration field, type 3d and press ENTER.
4. On the Insert menu, click Column.
5. In the Column Definition dialog box, select Task Calendar as the Field
name from the drop-down list.
6. To set the column width to the longest item in the column, click Best Fit.
7. In the Task Calendar field, assign a task calendar from the drop-down list
(e.g., Standard).
8. In the Resource Names field, type R1 to assign a resource named “R1” to
the new task.
9. Note the finish date for the task.
10. On the Tools menu, click Change Working Time. Select the second day of
the task on the calendar and click Nonworking time.

Does the finish date change? If yes, why does it change?
Yes it does; the finish date slips by one day.

11. On the Project menu, click Task Information, and then click the
Advanced tab. Select the Scheduling ignores resource calendars check
box.

Does the finish date change? If yes, why does it change?
No it does not; the finish date is the same as the scenario in number 10.
Module 2.2 35

Deadlines
In Microsoft Project 2000, tasks may now include a Deadline date that allows
an indicator to be displayed if a task’s Finish date is later than the Deadline. No
indicator displays if a task finishes before the Deadline. This provides the user
with a visible yet unobtrusive notification that the current scheduled Finish is
later than the planned Deadline. The indicator tip reads as follows:

Figure 11 Deadline Date indicator

Figure 12 Deadline indicator tip
36 Module 2.2

Deadline dates can be added to any task, with the exception of the Project
Summary Task, a summary task representing an inserted project, or the
summary task of a recurring task series. Deadlines are entered in the “Constrain
task” grouping on the Advanced tab of the Task Information dialog:

Figure 13 How to Create Deadline

A column for the new Deadline field can also be added to any task table. Like
other date fields, if no Deadline date has been entered, the field contains “NA.”
Module 2.2 37

New Features Related to Deadlines
New Row Definition and Appearance in Gantt Chart
A new row definition for Deadline date has been added to the Bar Styles
definitions for the Gantt Chart:

Figure 14 Bar Styles, Deadline styles

Note that the bar is defined at the lowest position in the Bar Styles list, so that it
will always draw on top of other bars for the same task. Because the Show For
… Tasks column is left empty, the definition will be applied to tasks, summary
tasks, and milestones.
The Deadline field is available in the From and To columns of the Bar Styles
dialog, as well as in the Text tab.
The first Task in the Gantt Chart below shows a 5-day task as originally
scheduled. The task’s Deadline marker appears as a downward pointing green
arrow, and appears at the rightmost end of the task’s Gantt bar. In the second
Task in the Gantt Chart, the task’s Finish date has moved past the Deadline
date, so the Deadline now appears at a midway point on the task’s Gantt bar.

Figure 15 Deadline Indicator
38 Module 2.2

New Filter – “Tasks With Deadlines”

A new filter definition, “Tasks With Deadlines,” has been added to make it easy
for users to see which tasks have Deadlines. The Filter Definition for the filter
is shown below:

Figure 16 Deadline filter
Module 2.2 39

Effect of Deadlines on Scheduling

Deadline Not Used When Calculating Schedule
The Deadline field affects only the Late Finish date, and is not used when
calculating the project schedule. However, because Late Finish is used in the
calculation of Total Slack, deadlines can affect the critical path. For more
information on the effect of the Deadline field on Late Finish, see “How a
Deadline Affects Late Finish” later in this lesson.

Comparison of Deadlines and Constraints
A constraint tied to a specific date is used when calculating the schedule, and,
depending on the Constraint Type and option settings, can contribute to
scheduling conflicts that generate scheduling error messages.
Deadlines, on the other hand, are not used when calculating the schedule, and
do not generate scheduling errors. Also, the user is not notified if a Deadline
conflicts with a task’s Constraint Date, even when originally entering the
Deadline or the constraint.

Effect of Deadlines on Schedule From Start
and Schedule From Finish Projects
In a Schedule From Start project, a Deadline behaves like a Finish No Later
Than constraint, except that scheduling is not affected. In a Schedule from
Finish project, a task (the task has a ALAP constraint) will finish on its
Deadline date unless a constraint or link pushes the task Finish to an earlier
date.

How a Deadline Affects Late Finish
Microsoft Project 2000 Help defines the calculation of Late Finish as follows:
“When you first create a task, its Late Finish date is the same as the project
finish date. As you link the task to predecessors and successors and apply any
other constraints, Microsoft Project calculates the late finish date as the latest
possible date this task could be finished, if all predecessor and successor tasks
also start and finish on their late start and late finish dates. These calculations
are based on a fixed task duration. If there is a leveling delay on the successor
task, this delay is also figured into the date in the Late Finish field.”
40 Module 2.2

When a Deadline is added to the task, Late Finish equals the earlier of the
Deadline date or the date calculated according to the preceding definition,
except for the following special cases:
• When a task has a MSO or MFO constraint and
Tools/Options/Scheduling/ Tasks will always honor their constraint
dates is set to ON, the Late Finish equals the Early Finish.
• When one of the task’s successors Late Start minus lag is earlier than the
Deadline, the Late Finish equals that successor’s Late Start minus the
lag.
• When a task has a SNLT or FNLT constraint, Late Finish is the earliest
of Early Finish, Deadline, and any successor’s Late Start minus lag.
• When a task has no successor and
Tools/Options/Calculations/”Calculate Multiple Critical Paths” is set to
on, the Late Finish equals the Early Finish.

Slack may be increased or decreased according to the effect of the Deadline on
Late Finish. This means that it is possible to have positive or negative slack that
is greater than if the Deadline was not present.

Start Slack & Finish Slack Fields
Although not strictly related to Deadlines, Microsoft Project 2000 has two new
calculated fields “Start Slack” and “Finish Slack.” These fields are used to
store and display the start and finish slack calculations of a task. Previously
these fields were used only in internal scheduling calculations and were not
permanently stored. The new fields are also related to leveling.
Start Slack and Finish Slack are calculated as follows:
 Start Slack = Late Start minus Early Start
 Finish Slack = Late Finish minus Early Finish

For more information, see the Microsoft Project 2000 Online Help Topics Start
Slack and Finish Slack.
Module 2.2 41

Try This: How a Deadline Affects the Late Finish
On the previous page, we reviewed four scenarios where Deadlines do not affect
how Late Finish is calculated. Here you will recreate one of those scenarios.
1. With a partner, select one of the four scenarios as reviewed on the previous
page.
2. In a new Project, recreate the scenario.
3. With another group, explain how you created the scenario and discuss the
following questions:

Why does it make sense for Late Finish not to equal the earlier of the
Deadline or the Late Finish Date?

How does this affect the calculation of the critical path?

How does this affect the way this task is scheduled?

How does this affect leveling?
42 Module 2.2

Outline Codes and WBS

Microsoft Project 2000 includes enhanced functionality of the WBS (Work
Breakdown Structure) field. In addition, ten new custom Outline Code fields,
Outline Code1 through Outline Code10, have been added for both tasks and
resources.

WBS Field Enhancements
The enhanced WBS field allows users to do the following:
 Create a mask for the field so only WBS codes can be entered that adhere to
the outline structure and the format specified in the code mask.
 Renumber the WBS codes based on the outline and the mask.
 Maintain the codes so they are unique and will change only under specified
circumstances.
 Verify uniqueness of any user-entered codes.

Outline Codes
Custom Outline Codes give users the following new features:
 Users can define a custom outline structure that is unrelated to the task
outline.
 A mask can be created for the fields so the user can only enter codes that
adhere to the code mask.
 Users can create a lookup table, and can optionally ensure that codes entered
are one of the values listed in the lookup table.
 The lookup table provides a field picklist to help users assign codes to tasks
or resources.
 Users can perform hierarchical grouping with rollups based on the codes
entered.

Distinctions Between WBS and
Outline Code Fields
WBS is a predefined task field, which always corresponds to the task outline
structure. Because it is possible for each task to have a unique WBS code, the
WBS field can be used much like the task Name or ID fields to refer to tasks.
The project manager can specify that codes be verified as unique whenever a
code is entered or modified on a task. (For more information on ensuring that
codes are unique throughout a project, see “Uniqueness of WBS Codes” later in
this lesson.)
Custom Outline Code fields, on the other hand, allow users to outline tasks
and/or resources in ways unrelated to the task outline structure or resource
group codes. There is no provision to require a unique Outline Code for each
task, but the project manager can specify that only codes that are predefined in a
lookup table be used.
Module 2.2 43

The following are examples of scenarios in which each type of code might be
used: 
A company requires that all project tasks adhere to a WBS code format used
throughout the company, so the project manager creates a WBS code mask
based on the company’s WBS format. Whenever a new task is created,
Microsoft Project 2000 generates a unique code for the task that adheres to
the code mask. Maintaining the WBS codes is much easier now because of
intelligent behavior of the codes, plus the ability to renumber all or selected
tasks. 
Different groups in the company want to view the Project data in different
ways. The project managers are most interested in the critical path, and have
defined the project outline based on project phases. The accounting
department wants to see a different set of rollups based on cost centers, and
HR wants to see the information based on the company’s organizational
structure. The accounting department creates a custom task Outline Code
field called Cost Code, and populates the lookup table with a hierarchical
list of codes based on cost centers. They then use the field picklist to assign
the appropriate code to each task, thus ensuring that only valid codes are
entered. Once codes are assigned, they can use Group By to arrange the
project by Cost Code with the desired outline and rollups. 
The HR department designs a custom resource Outline Code called
Departmental Workload, and creates a lookup table corresponding to the
company’s organizational chart. They assign each resource the appropriate
code so that they can view resource usage grouped by department and job
category.

Sharing WBS and Custom Outline Code
Definitions Across Projects
A new tab labeled “Fields” has been added to the Organizer which allows WBS
code definitions and custom Outline Codes to be copied from one open project
to another or to the Global template. If an Outline Code has been renamed, its
new name will appear in the Fields tab in the Organizer.
For Outline Codes only, code masks and lookup tables can also be imported
from another project using the Import Outline Code command in the Outline
Code Definition dialog.
Module 2.2 23
PSS Learning Services

Module 2.3

Contents

Lesson 3: Entering Resources 45
Information in this document is subject to change without notice. The names of companies,
products, people, characters, and/or data mentioned herein are fictitious and are in no way intended
to represent any real individual, company, product, or event, unless otherwise noted. Complying
with all applicable copyright laws is the responsibility of the user. No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose, without the express written permission of Microsoft Corporation. If, however, your only
means of access is electronic, permission to print one copy is hereby granted.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.

© 2000 Microsoft Corporation. All rights reserved.

Microsoft, Active Accessibility, ActiveX, FrontPage, MS-DOS, Outlook, PhotoDraw, PowerPoint,
SQL Server, Visual Basic, Visual C++, Visual J++, Windows, and Windows are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.
Module 2.3 47

Lesson 3: Entering Resources
Overview
In this lesson, we will discuss two new features of Microsoft® Project 2000:
Material Resources and Resource Contour Availability.

What You Will Learn
After completing this lesson, you will be able to:
 List and explain the differences between work and material resources
 Set up a material resource
 Troubleshoot issues related to material resources
 Create a Resource Contour
 Explain the differences between a resource contour and resource calendar
 Troubleshoot issues related to resource contours
48 Module 2.3

Material Resources

While it is possible to manage consumable material resources using previous
versions of Microsoft Project, Microsoft Project 2000 makes doing so much
easier through the addition of two new resource fields, “Type” and “Material
Label,” and their related functionality. The Type field allows the user to specify
one of two valid resource types, “Work” or “Material,” while the Material
Label field indicates the type of units by which the material resource is
measured.
Work resources represent the same resource type that was available in previous
versions of Microsoft Project (with enhancements as discussed in other
lessons). This lesson describes the new features and modifications to existing
functionality, which are related to material resources.

Setting Up a Material Resource
Resource Type can be specified either in a resource table or in the Resource
Information dialog.

Changes to Resource Sheet
Two new fields, “Type” and “Material Label,” have been added to the Entry
table in the Resource Sheet view to simplify initial setup of a material resource.
The table can also be applied or columns can be added in the Resource Usage
view.
When resource Type is Material, the Max. Units field in a resource table is
blank and unavailable.
When the user clicks in the Type column, a drop-down list is enabled with
Work and Material as the two options to choose from, as shown in the figure
below. Once Material has been selected as the Type, the Material Label column
is enabled for that resource. For more information on working with Material
Labels, see “Material Labels” later in this lesson.

Figure 1
Module 2.3 49

Changes to Resource Information Dialog
Modifications have also been made to the Resource Information dialog to
accommodate setup of material resources. The modified dialog appears as
shown below when a material resource has been selected.

Figure 2

New items in the Resource Information dialog and changes to existing behavior
are further described below:
General tab: Two new items related to material resources have been added to
the General tab: 
Resource type: Indicates Work or Material resource Type. The editing box
has the same drop-down control as shown in the Entry table. 
Material label: A new field indicating the kind of units or materials that the
material resource is measured in, for example, gallons, feet, tons, reams, and
so forth. (For more information on working with Material Labels, see
“Material Labels” later in this lesson.)
In addition, when the resource Type is Material, the Email, Workgroup,
Windows Account, and Resource Availability grid items are all unavailable.
When the resource Type is Work, the Material Label item is unavailable.
50 Module 2.3

Working Time tab: Because Resource Calendars are not available for material
resources; the Working Time tab in the Resource Information dialog is
unavailable if the resource Type is Material.
 Costs tab: All items in the Cost Rate Table are available for material
resources, but the functionality is different than for work resources in the
following ways:
 Standard Rate: Does not include the time value. Time value has a different
meaning for material resources, and is specified when assigning the
resource. For more information, see “Material Labels” and “Assigning
Material Resources” later in this lesson.
 Overtime Rate: Unavailable in the Cost Rate Table for a material resource.
 Cost per Use: Cost per Use is only charged once, regardless of the number
of units of the material resource that are assigned.
Otherwise, editing of the Cost Rate Table is the same as for a work resource
(that is, same as in Microsoft Project 98).
An example of the Costs tab, in the Resource Information dialog, filled in for a
material resource appears in the figure below.

Figure 3
Module 2.3 51

Material Labels
The Material Label field indicates the kind of units or materials that the material
resource is measured in, for example, gallons, feet, tons, or reams. After a
resource is assigned, Material Labels are displayed in the Units column of the
Assign Resources and Task Information dialogs, and are viewable in the
Resource Names column in a Gantt Chart view or Task Usage view, and in the
Work column in Resource Usage view. The labels are also appended to the
Detail style headings in the Resource Usage view, but are not displayed in the
timescaled columns of the Resource Usage view.
Labels must adhere to the following rules: 
Cannot exceed 32 characters in length. 
Cannot contain square brackets or the list separator character. 
Cannot consist solely of Duration, Work, or other reserved time units,
although these can be used in a modified form, such as by adding a period.
If a Material Label is entered which does not follow the above rules, the
following message is displayed:

Figure 4

When the user clicks OK, they are returned to the dialog or table where the
Material Label was entered, with the focus on the cell containing the entry.
52 Module 2.3

Assigning Material Resources
Material resources can be assigned in the same dialogs and views as work
resources. This section discusses the general differences in behavior when a
material resource is assigned.
 The option “Show assignment units as a” (Tools/Options on the Schedule
tab) has no effect on material resources. Material resource assignments are
always displayed as a decimal value.
 If the resource is assigned in the Assign Resources or Task Information
dialog, the number of units to be assigned are entered in the Units column.
If the resource is assigned in the Resource Names column of a task view, the
number of units to be assigned are typed in square brackets following the
resource’s name; if no units are entered, 1 unit is assumed.
 When entering the Units for a material resource, the user can simply specify
the number of units, in which case the resource’s default Material Label will
be appended. For example, if the material resource has the label “tons” and
the user enters 4 Units, the resulting assignment Units will display as “4
tons.” If the resource has the label “gallons/hour” and the user enters 5
Units, the resulting assignment Units will display as “5 gallons/hour.” Note,
however, that this does not mean that a Variable consumption rate has been
set for this assignment. For more information, see “Consumption Rate” later
in this lesson.
 The user can also enter both the units and the label, but in this case the label
must match the current value of the Material Label field; if the label does
not match, an error message is generated. For example, if the Material Label
is “reams” and the user enters Units as “4 boxes,” the following message
will be displayed:

Figure 5
Module 2.3 53

Consumption Rate
When a material resource is assigned, the user has the option to specify whether
the Units assigned are a fixed quantity regardless of the task Duration (“Fixed
consumption rate”), or will change when the task Duration increases or
decreases (“Variable consumption rate”).

Fixed Consumption Rate
Fixed consumption means that no matter the duration of a task, the same
quantity of material is consumed. The total Work for the assignment will equal
the Units specified. To specify a Fixed consumption rate, the user simply enters
either the number of Units, or the number of Units plus the Material Label. The
resulting assignment value will display as “<units> <label>”.

Variable Consumption Rate
Variable consumption means that the quantity consumed is based on the length
of the task, that is, the longer the task, the more quantity is consumed. The total
Work for the assignment will be calculated as:
Units x <time unit> x Task Duration
To specify a Variable consumption rate, the user enters the assignment Units
followed by a forward slash and a valid time unit. The resulting value will have
the form “<units> <Material Label>/<time unit>”. For example, if the Material
Label is “gallons” and the user enters assignment Units of “4/hr,” the resulting
assignment value will be “4 gallons/hr.” In this example, if the task has a
Duration of 2 days and days are defined as 8 hours, the total assignment Work
will be calculated as 4 gallons per hour times 16 hours, or 64.

Since a slash is a valid character for a Material Label, it is possible that an
assignment may incorrectly appear to be a Variable consumption rate. For example,
if the user creates a label such as “feet/day” and then assigns 4 Units of the resource,
the resulting assignment would have the value “4 feet/day” but would still be a Fixed
consumption rate. For this same example, if the Units were entered as “4/day,” the
resulting assignment would have the value “4 feet/day/day” and would then be a
Variable consumption rate.
Regardless of whether the consumption rate is Fixed or Variable, in the
timephased assignment, the total calculated assignment Work will be spread
across the timephased segments according to the assignment’s preset contour,
just as for a work resource.
54 Module 2.3

Consumption Rate Examples
The following example illustrates a material resource assigned at a Fixed
consumption rate with a Flat work contour, as it would appear in the Task
Usage view:
Resource Material Assignment Task Assignment
Name Label Value Duration Work
Concrete tons 5 tons 5 days 5 tons

Figure 6

The next example duplicates the above assignment, except a Front-loaded
contour has been applied:

Figure 7

The following example illustrates a material resource assigned at a Variable
consumption rate with a Flat work contour:
Resource Material Assignment Task Assignment
Name Label Value Duration Work
Concrete tons 5 tons/hr 5 days 200 tons

Figure 8
Module 2.3 55

Scheduling Issues and Calculations Related to Material
Resources

Calendars
Material resources do not have a resource calendar. Material resources are
scheduled according to the Project Calendar, unless a task calendar is assigned
to the task, in which case the material resource is scheduled according to the
task calendar.

Effect of Task Types
Task types affect only material resource assignments that have a Variable
consumption rate. Behavior according to task type setting when a field is edited
by the user is summarized as follows:
Field that
is changed Fixed Duration Fixed Units Fixed Work
Work Units are Duration is Duration is
recalculated recalculated recalculated
Duration Work is Work is Unites are
recalculated recalculated recalculated
Units Work is Work is Duration is
recalculated recalculated* recalculated
Table 1

This is the only case where material resources are not treated like work
resources with respect to task type. The assumption is made that users will
regard the Work value as a function of Duration and Units.

Effect of Effort Driven Setting
The Effort Driven setting has no direct relationship to material resources,
because the Work value for material resources is not included in total task
Work. Thus, if a material resource is assigned or removed, there is no effect
either on task scheduling or on the assignments of any work resources.
However, when a work resource is assigned or removed on a task that also has
material resources assigned, if the task duration changes due to the Effort
Driven setting, the material resource assignment duration will change. If the
assignment units were Fixed consumption type, total assignment Work value
will remain the same and timephased work will be redistributed according to
the assignment contour. If assignment units were Variable consumption type,
total assignment Work will change and will then be redistributed according to
the assignment contour.
56 Module 2.3

Effect of Changing Definition of “Day”
If the definition of a “day” is changed (Tools/Options on the Calendar tab), the
Unit value for a Variable consumption material resource assignment will be
recalculated to accommodate the new definition so that the total Work value of
existing assignments is kept constant.
For example, if the definition of “day” is changed from 8 hours to 4 hours, that
is, divided by 2, an assignment that was originally 80/day will be changed to
40/day, and an assignment that was originally 1/day will be changed to .5/day.
If the definition is changed from 8 hours to 24 hours, that is, multiplied by 3, an
assignment that was originally 80/day will be changed to 240/day.

Assignment Start and Finish
Assignment Start and Finish can be edited, but this will have no effect on total
work or units for the assignment, only on how the assignment appears across
time (see “Effect of Task Types” above).

Behavior of Work Field
Task Level Work (task views): At task level, work for a material resource is not
included in calculation of the Work field. Only Work values for work resources
are included. If only material resources are assigned to a task, task level Work
will be 0 hrs unless the user has manually entered a Work value.
Resource and Assignment Level Work (usage views): At resource and
assignment level, the Work column displays the number of Units assigned, with
the Material Label appended if present. Resource-level Work represents the
sum of calculated Work for all units assigned to all tasks in the project.
Assignment-level Work represents the calculated Work value for the
assignment.

Figure 9

The assignment Work field is editable for a material resource in Resource
Usage views, but Unit values which are invalid for a material resource, such as
hours or days, cannot be entered except in the format required for a Variable
consumption rate; nor can a label be manually entered which does not match the
Material Label field for the resource.
Timescaled Work (usage views): Timescaled assignment Work can be edited and
manually contoured as for work resources, and edits will impact the resource’s
total assignment Work and assignment unit values if the sum of the edited
values is different than the Work value before editing. This is true for both
Fixed and Variable consumption types.
The underlying assumption is that if the user deliberately edits timescaled
Work, they want the manually edited values to take precedence over the
previous values, even if this means new total Work for a Fixed consumption
assignment.
Module 2.3 57

Behavior of Assignment Units Field
For material resources, the Assignment Units column displays the number of
Units assigned, with the Material Label and Variable consumption time unit
appended if present. For an example, see task T2 in Figure 9.

Leveling
Leveling does not apply to material resources. The Max. Units field and
Resource Availability grid are not applicable to material resources, and the
Overallocated field is always set to No for a material resource.

Resource Pools; Inserting Projects into Master
Project Without Linking
When projects are inserted into a master project with the “Link to project”
option unchecked, or when a project is connected to an existing resource pool,
if a material resource has the same name as a work resource, they will not be
merged into one resource. Similarly, two material resources with the same name
but with different Material Labels will not be merged. In either of these cases,
the following message will be displayed to alert the user that the duplicate
names exist:

Figure 10
58 Module 2.3

Entering Actuals

Behavior when tracking progress for material resources generally works the
same as tracking work resources, with the following exceptions:
 If there are both work and material resource assignments on a task, only
work resources are considered in calculation of task %Complete, task
Actual Duration, and task Actual Work.
 If there are only material resource assignments on a task, Task Actual Work
is set to 0%. Task %Complete is calculated as the sum of all assignment
actual durations divided by the sum of all assignment durations, and task
%Work Complete is set to equal task %Complete and is read-only.
 At the assignment level, if a material resource assignment with a Fixed
consumption rate has Actual Work and the task Duration changes, the
Remaining Work value will not change but will be redistributed over the
new remaining contour.
Module 2.3 59

Changes to Resource Graph View

Changes to the Resource Graph view to accommodate material resources are
summarized as follows: 
Because they do not apply to material resources, the following details are
disabled for material resources in the Resource Graph view:
• Overallocation
• Percent Allocation
• Availability
• Work Availability
• Unit Availability 
The availability line cannot be drawn for a material resource. If a graph is
set to display any of the details listed above, and the user switches from a
work to a material resource, all bars will be drawn with 0 values. 
Unit totals only (without the associated Material Label or time unit) will be
shown for the following details:
• Peak Units
• Work
• Cumulative Work 
For the following graph details, when in dual pane mode with a combination
of resource types selected, material resources will be ignored when
calculating the total value for the Selected Resources bar:
• Peak Units
• Work
• Cumulative Work
• Overallocation
• Percent Allocation
• Remaining Availability
• Work Availability
• Unit Availability.
If the selection includes only material resources, total value for these details
will be zero.
60 Module 2.3

Fields Disabled for Material Resources
Category Disabled Fields
Resource Fields Actual Overtime Rate
Overtime Work Overtime Work
Actual Percent Allocation
Overtime Cost Remaining Overtime Work
Available From Remaining Overtime Cost
Available To Resource Availability
Base Calendar Work Availability
Max. Units
Overallocated
Overtime Cost
Assignment Fields Actual Overtime Work
Overtime Cost Percent Allocation
Actual Remaining Overtime Cost
Overtime Work Remaining Overtime Work
Leveling Delay
Overallocated
Overtime Cost

VBA Methods, Properties and Constants
Related to Material Resources

New Properties
New properties related to Material Resources include the following:
Item Applies to Description
Type Property Resource object Returns or sets the resource
type of a resource. Can be one
of the PjResourceWorkType
constants.
Material Label Property Resource object Returns or sets the Material
Label of a material resource.
Non-editable for a work
resource.
Resource Type Property Assignment object Returns the type of the
assignment’s resource. Can be
one of the
PjResourceWorkType
constants.
FixedMaterialAssignment Assignment object Returns True if consumption
Property rate is fixed, False if
consumption rate is variable.
Also returns True if it is the
assignment of a work resource.
Module 2.3 61
62 Module 2.3

Unavailable Methods and Properties
The following methods and properties are not applicable and are therefore
unavailable when referencing a material resource:
Category Items not Available
Application methods ResourceCalendarEditDays, ResourceCalendarReset,
ResourceCalendars
Resource properties AvailableFrom, AvailableTo, ActualOvertimeWork,
ActualOvertimeCost, Base Calendar, Calendar, Can
Level, Max Units, Overallocated, OvertimeCost,
OvertimeRate, OvertimeWork,
RemainingOvertimeWork, RemainingOvertimeCost,
ResourceAvailabilities, WorkAvailability,
UnitAvailability
Assignment properties ActualOvertimeCost, ActualOvertimeWork,
LevelingDelay, Overallocated, OvertimeCost,
OvertimeWork, RemainingOvertimeCost,
RemainingOvertimeWork

New Constants
The existing pjField enumerator has the following new members related to
material resources:
Constant Description
PjResourceMaterialLabel References the Material Label field.
PjResourceType References the resource Type field.
PjTaskResourceType References the assignment resource Type field.

The new pjResourceTypes enumerator has the following members:
Constant Description
PjResourceTypeWork References the resource work setting for the resource
Type field.
PjResourceTypeMaterial References the resource material setting for the
resource Type field.
Module 2.3 63

Contoured Resource Availability
Microsoft Project 2000 allows contouring a resource’s availability to reflect the
Max. units of a work resource that will be available over the course of a project.
This feature will be most useful in defining available Max. units over time for a
resource that represent a group of multiple available units, such as “Engineers,”
since resource calendars already provide this functionality for individual
resources. Contoured Resource Availability is not available for material
resources.
For example, suppose a building contractor employs two electricians year-
round. For May through September, they plan to hire three additional
electricians to handle increased summer workload; and in August they know
that one of them will retire. They need to reflect this in their resource pool so
that their project plans will know about this variable availability and flag over
allocations, and so that the information will be available when leveling.
Resource availability is entered in the Resource Availability table on the
General tab of the Resource Information dialog. The Maximum Units,
Availability From, and Availability To fields are no longer available in the
dialog, though they are still available to insert in a resource table. (For more
information on the new behavior of these fields, see “New Fields; New
Behavior of Existing Fields” later in this lesson.) Up to 100 unit changes can be
specified for each resource. In the table, the date fields have date picker
controls, and the Units field has a spin control which increments by 50%.

Figure 11 - Resource Availability
64 Module 2.3

Resource availability can be viewed in Resource Usage view by inserting the
new Unit Avail. and/or Work Avail. details in the timephased portion of the
view. For more information on these new fields, see “New Fields; New
Behavior of Existing Fields” later in this lesson.

Figure 12 - Resource Availability in Usage View

Changing availability dates does not affect a resource’s calendar. Changes to
resource availability settings do not cause tasks to reschedule automatically, but
will be taken into account when leveling. If resource availability changes such
that fewer units are now available than are required to complete tasks for that
period, the resource will become overallocated and require leveling.
Module 2.3 65

Meaning of “NA” in the Resource Availability Table
Before the table has been edited, the first row contains NA in both the From and
To fields. Units defaults to 100%, unless a different Units value has previously
been specified in the Maximum Units field in the Resource Sheet or another
resource view.
NA in the From date of the first row of the table implies that the Units specified
are applicable “from the start of time” until the To date specified. Similarly, NA
in the To date of the last row of the table implies that the Units specified are
applicable from the From date specified “to the end of time.”
If the first From date or last To date is not filled with NA, zero availability is
assumed for the period preceding the first period or following the last period.

Editing the Resource Availability Table
No time of day can be entered in the table. All From dates start at 12:00
midnight, and all To dates end at 12:00 midnight. This is so that the resource
can have its calendar working time set to any time of day.
The user is allowed to enter rows out of sequence, but when the dialog is closed
or the user clicks another tab, the rows are automatically resorted by the
Available From field.
When a user enters a From or To date in a new row, Microsoft Project 2000
will try to interpret the user’s intent, supplying default dates according to the
following logic:
If the user enters a From date and then moves to another row, check whether
there is a conflict with the date range in another row. 
If there is a conflict, the To date is left blank. 
If there is no conflict, the To date is filled with a date one day earlier than
the earliest From date in the table that is later than the From date just
entered. 
If there is no later From date, the To date is filled with NA

If the user enters a From date and then selects the blank To date in the same
row, the same rules as in (1) are applied, except that if there is a conflict, or if
there is no later From date, the To date will be the same as the From date just
entered.
If the user enters the To date first in a new row and then moves to another row,
check whether there is a conflict with the date range in another row.
1. If there is a conflict, the From date is left blank.
2. If there is no conflict, the From date is filled with a date one day later than
the latest To date in the table that is earlier than the To date just entered.
3. If there is no earlier To date, the To date is filled with NA.

If the user enters a To date and then selects the blank From date in the same
row, the same rules as in (3) are applied, except that if there is a conflict, or if
there is no earlier To date, the From date will be the same as the To date just
entered.
66 Module 2.3

After both the From and To dates are filled, Microsoft Project 2000 fills the
Units with the same value as in the preceding row, or with 100% if there are no
other rows.
If there is a gap in the time periods entered, the gap will be considered as a
period of zero availability for the resource, but no row representing the gap will
show in the table. However, the user can enter a period specifying zero as the
Units, and a row entered in this way will be retained in the table.

Consistency Checking
Consistency Within Rows
When the user moves to another rowand tries to exit the Resource Information
dialog, or clicks another tab within the dialog, Microsoft Project 2000 checks
the row just edited for a From date which is earlier than the corresponding To
date. On detection, the following message is displayed:

Figure 13 - Availability dates

 On clicking OK, the user is returned to the Resource Availability table, with
the focus placed on the row containing the inconsistency.

Consistency Across Multiple Rows
When the user tries to exit the Resource Information dialog, or clicks another
tab within the dialog, Microsoft Project 2000 first checks for consistency within
the last edited row as described above. If no inconsistency is found, the entire
table is next sorted by the Available From date and then checked for
inconsistencies across multiple rows.
If a row is found with a missing From or To value, the following message is
displayed:
Module 2.3 67

Figure 14 - Missing From or To Value

If the user clicks OK, the row is deleted. If the user clicks Cancel, they are
returned to the Resource Availability table with the focus on the row containing
the blank date.
If an overlapping date range is found, the following message is displayed:

Figure 15 - Overlapping Date Range

On clicking OK, the user is returned to the Resource Availability table, with the
focus placed on the first row containing an inconsistency.

New Fields; New Behavior of Existing Fields
To handle contoured resource availability, the behavior of the Maximum Units,
Availability From, and Availability To fields have been modified, and two new
fields, Unit Availability and Work Availability, have been added. These fields
are available and populated for work resources only.

New Field -- Unit Availability
Unit Availability is a new read-only field containing the percentage or number
of maximum units that a work resource is available to accomplish any tasks
during any selected time period, as distributed over time. When inserted in the
timephased area of the Resource Usage view, this field shows a timephased
representation for any changes in unit availability for different time periods, as
established in the Resource Availability table of the Resource Information
dialog box.
68 Module 2.3

Because the Resource Availability periods will seldom coincide with the
periods represented by the Resource Usage timescale, the units displayed for
Unit Availability are calculated as average availability for the timescale period,
calculated against working time periods only and using minute values rather
than hours in order to account for small changes in the resource calendar. Let’s
use the following contour as an example:
Available From Available To Units
NA 7/15/98 100%
7/16/98 NA 200%
Table 2

In addition, we’ll assume that there are ten 8-hour working days between 7/1/98
and 7/15/98, that 7/16/98 is an 8-hour working day, and that the remainder of
the month is nonworking time for the resource.
For this example, the average for the month of July would be calculated as ((10
days times 480 minutes per day) * 100) + ((1 day times 480 minutes per day) *
200), divided by (11 days times 480 minutes per day):

New Field: Work Availability
The new Work Availability field is also a read-only field and contains the
maximum amount of time a work resource is available to be scheduled for work
during any selected time period, as distributed over time. When inserted in the
timephased area of the Resource Usage view, this field shows a timephased
representation for any changes in unit availability for different time periods.
The displayed amount of work is based on the resource calendar and the
Resource Availability table in the Resource Information dialog box, and is
calculated as follows:
 Work Availability = Unit Availability X Time in Resource Calendar

New Behavior of Maximum Units Field
Though the Maximum Units field will still be editable, the behavior of the field
has been modified to include the possible presence of a resource availability
contour.
If there is no resource availability contour (the From and To dates in the top
row of the Resource Availability table both contain NA), the Maximum Units
field will contain the same value as the Units column in the Resource
Availability table. If the value is edited in either location, the other location will
reflect the change.
If there is a resource availability contour, then the Maximum Units field
Note: contains the current Units value derived from the Resource Availability table
The current date in this
discussion means the
and the current date as shown in the Project Information dialog. If the current
current date from the Project date is outside the range of any period currently shown in the table, then the
Information dialog, not the Maximum Units field will contain 0%.
system date.
If the user edits the Maximum Units field, then Microsoft Project 2000 will
update the Units value of the corresponding row in the Resource Availability
table. If the current date is outside the range of any period currently shown in
the table, then the behavior is as follows:
Module 2.3 69 

If the current date is before any shown period, then a new row will be added
to the table with a From date of NA and a To date equal to the latest From
date minus 1. 
If the current date is after any shown period, then a new row will be added
to the table with a To date of NA and a From date equal to the latest To date
plus 1. 
If the current date is between two shown periods, a new row will be added
between the two rows, which chronologically bracket the current date. The
new row will have a From date that is one day later than the To date on the
previous row, and a To date that is one day earlier than the From date on the
following row.

New Behavior of Availability From
and Availability To Fields
These two fields are now read-only, and will contain the values of the period in
the Resource Availability table corresponding to the current date. If there is no
contour, or if the current date is outside the range of any period currently shown
in the Resource Availability table, then these fields will both contain NA.
70 Module 2.3

Default Units For New Assignments
When resources are assigned, the default behavior is basically the same as in
Microsoft Project 98. That is, the default assignment units’ value is the lesser of
either 100% or the value of Maximum Units. The value of Maximum Units for
the assignment is calculated as the value from the Resource Availability table
for the period, which corresponds to the Start date of the assignment, except
that if the value from the table is 0%, then 100% will be used (since it makes no
sense to have a default assignment of 0%).
For example, consider a resource with the following contour:
Available From Available To Units
NA 7/1/98 75%
7/7/98 7/14/98 125%
7/15/98 NA 100%
Table 3

If the resource is assigned to a task that starts on 6/25/98 and ends on 7/15/98,
the default assignment units will be 75% over the span of the assignment.
If the resource is assigned to a task that starts on 7/7/98 and finishes on 7/15/98,
the default unit assignments will be 100% over the life of the assignment (100%
is less than the Maximum Units of 125% that would be calculated as of 7/7/98).
If the resource is assigned to a task that starts on 7/5/98 and finishes on 7/15/98,
the default unit assignments will be 100% over the life of the assignment (the
Maximum Units would be calculated as 0% on 7/5/98, since 7/5 falls during a
gap in the availability periods, so 100% will be used for the unit assignment
value).

If a resource is based on a “split shift” calendar such as the Night Shift base calendar,
there may be cases where the unit assignment value is not calculated as desired. A
calendar must be set up with the earliest period in the day listed first even though the
resource’s workday really begins before midnight, whereas the From and To dates in
the Resource Availability table always begin/end at midnight.

Changes to Resource Graph View
In the Resource Graph view, the Availability detail item has been renamed to
“Remaining Availability” for consistency with the Resource Usage view. In
addition, detail items have been added for Work Availability and Unit
Availability.
Module 2.3 71

Try This: Setting Resource Availability
Do the following exercise to understand how user’s might

1. In a new project create a two-day task.
2. Create a working resource and assign it to the new task.
3. In the resource information dialog box for the resource created in step 2,
click the General tab.
4. In the Resource Availability section, change Units to 50%. Do not change
anything else.
5. Notice that your resource is now over allocated. Attempt to level your
project.

Where you able to level your project? If not, why?
PSS Learning Services

Module 2.4

Contents

Lesson 4: Entering Assignments 71
Information in this document is subject to change without notice. The names of companies,
products, people, characters, and/or data mentioned herein are fictitious and are in no way intended
to represent any real individual, company, product, or event, unless otherwise noted. Complying
with all applicable copyright laws is the responsibility of the user. No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose, without the express written permission of Microsoft Corporation. If, however, your only
means of access is electronic, permission to print one copy is hereby granted.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.

© 2000 Microsoft Corporation. All rights reserved.

Microsoft, Active Accessibility, ActiveX, FrontPage, MS-DOS, Outlook, PhotoDraw, PowerPoint,
SQL Server, Visual Basic, Visual C++, Visual J++, Windows, and Windows are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.
Module 2.4 71

Lesson 4: Entering Assignments
Overview
In this lesson we will discuss two items related to assignments: assignment
contours and leveling.

What You Will Learn
After completing this lesson, you will be able to:
 Describe how a contour will change based on varying criteria
 Troubleshoot scheduling issues related to custom contours
 Describe the differences in leveling between Microsoft® Project 2000 and
Microsoft Project 98
 Describe troubleshooting steps to resolve unexpected results when leveling
72 Module 2.4
Module 2.4 73

Assignments
Assignments and assignment contours have not changed in
Microsoft Project 2000. However, these areas can be confusing, so it is
important to gain a firm understanding of them. Before we look at assignment
contours, let’s take a look at assignments and break them down into some
simple parts that we can use to discuss assignment contours.

Parts of an Assignment
An assignment consists of two levels: the assignment level and the assignment
timephased level. Within each level exist fields that display essentially the same
information. For example, there is a work field in both levels. The way the
fields of each level are calculated, however, is different.
At the assignment level, we have three fields that we are concerned with for
this discussion: Duration, Units, and Work. As we know from
Microsoft Project 98, these three fields are interdependent and a change in one
can affect the others. At the assignment level, we can summarize the interaction
of these three fields via the following equation:
D = U ×W
Where D is duration, U is units, and W is work.

Note
For the purposes of our discussion, when we refer to the assignment level, we
are not referring specifically to assignment fields. The assignment level is
referring to that area that is not timephased. In other words, it incorporates task,
resource, and assignment fields.

At the assignment timephased level, we have timephased information that
essentially displays the information displayed at the assignment level in more
detail. Contours, by definition, exist at the assignment timephased level.
However, to preserve predefined contours, changes can only be made at the
assignment level. When changes are made at the assignment timephased level, a
contour instantly changes to an edited contour. Edited contours are discussed
later on in this lesson.
To understand how changes at the assignment level affect contours, we must
first understand the changes that happen at this level. We shall then look at how
Microsoft Project recalculates the assignment timephased level based on this
data.
74 Module 2.4

Assignment Contours

As we mentioned before, assignment contours have not changed in
Microsoft Project 2000. Fundamentally they behave the same way in
Microsoft Project 2000 as they did in Microsoft Project 98. However, because
they can play an important role in how a project is scheduled and because they
can be confusing, we will review some of the basics of assignment contours.

What is an Assignment Contour?
An assignment contour is the timephased distribution of resource units on an
assignment. (Note: In most cases, assignment contours refer to the distribution
of work. However, in order to better understand how Microsoft Project
calculates the work distribution in a contour, we will define it as the distribution
of units.) There are two main categories of contours in Project: predefined
contours and edited contours.

Predefined Contours
Understanding predefined contours and their behaviors will help us in
understanding edited contours, so let’s take a look at them first. Like
Microsoft Project 98, Microsoft Project 2000 ships with eight predefined
contours. Each contour takes an assignment and divides it into ten segments. In
each segment, work is calculated using the units predefined per that contour’s
definition. Below are the eight predefined contours and a table showing how
each distributes units in each of the ten segments.

Note
Note that each table shows the percentage of the units a resource is assigned for
a particular timephased segment in relationship to the units a resource is
assigned to a task as a whole.
So for example, if a resource were assigned to a task at 50%, it would be shown
as being assigned at 5% for the first segment of an assignment with a Back
Loaded contour applied. (See table for Back Loaded Contours.)
Module 2.4 75

The eight predefined contours and their contour definition tables are:

1. Flat
1 2 3 4 5 6 7 8 9 10
Units 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%

2. Back Loaded
1 2 3 4 5 6 7 8 9 10
Units 10% 15% 25% 50% 50% 75% 75% 100% 100% 100%

3. Front Loaded
1 2 3 4 5 6 7 8 9 10
Units 100% 100% 100% 75% 75% 50% 50% 25% 15% 10%

4. Double Peak
1 2 3 4 5 6 7 8 9 10
Units 25% 50% 100% 50% 25% 25% 50% 100% 50% 25%

5. Early Peak
1 2 3 4 5 6 7 8 9 10
Units 25% 50% 100% 100% 75% 50% 50% 25% 15% 10%

6. Late Peak
1 2 3 4 5 6 7 8 9 10
Units 10% 15% 25% 50% 50% 75% 100% 100% 50% 25%

7. Bell
1 2 3 4 5 6 7 8 9 10
Units 10% 20% 40% 80% 100% 100% 80% 40% 20% 10%

8. Turtle
1 2 3 4 5 6 7 8 9 10
Units 25% 50% 75% 100% 100% 100% 100% 75% 50% 25%
76 Module 2.4

How Assignment Contours Work
Assignment contours work in the following manner:
 First, Microsoft Project takes the duration of a task and divides the
assignment into 10 equal contour segments. This is done on a minute-by-
minute level.
 Next, Microsoft Project applies Units to each contour segment per the
contour’s definition as shown in the tables above. Remember, the contour
definition tables show the percentage of the units a resource is assigned for a
particular timephased segment in relationship to the units a resource is
assigned to a task as a whole.
 The work for each contour segment is then calculated based on units and
duration for the segment.
 Finally, the above figures are calculated for display in the timephased
segment that is specified.
Module 2.4 77

What Happens When Changes Occur
Understanding the definition of a contour and its basic functionality is
important, but seeing how it really works when changes occur in a project is
where we really begin to understand assignment contours. And to understand
this, it’s important to remember the two levels of an assignment: the assignment
level and the assignment timephased level. Because predefined contours, by
definition, cannot be edited at the timephased level, we shall only look at the
assignment level.

Making Changes At the Assignment Level
At the assignment level, making a change to duration, units, or work will cause
a change in one of the other two variables, depending on the task type. This is
accordance with the following equation:
D = U ×W
Where D is duration, U is units, and W is work.
The changes that can occur when a variable is changed are reflected in the three
tables below. Each table represents a task type as denoted in the upper left hand
corner. The leftmost column shows the variable that is changed by the user.
Each subsequent column shows status of the variable upon making the change.
A changed variable is denoted by the Greek symbol delta (∆) that is generally
used in mathematics as the symbol to denote change. When delta (∆) is
followed by the variable’s first letter, it denotes the variable that has been
changed by the user. When delta appears alone, it means that Microsoft Project
has calculated that variable’s value based on the change by the user and the task
type.
Fixed Duration Duration Units Work
Task
∆D ∆D No Change ∆
∆U No Change ∆U ∆
∆W No Change ∆ ∆W

Fixed Units Task Duration Units Work
∆D ∆D No Change ∆
∆U ∆ ∆U No Change
∆W ∆ No Change ∆W

Fixed Work Task Duration Units Work
∆D ∆D ∆ No Change
∆U ∆ ∆U No Change
∆W ∆ No Change ∆W
78 Module 2.4

Calculated Changes At the Assignment Timephased Level
At the assignment timephased level, there are three possible scenarios. These
are reflected in the table below.
When this situation occurs… …Microsoft Project does the
following for contours.
Duration and Units have both 1. The 10 Contour Segments are re-
changed at the Assignment Level (∆D calculated.
& ∆U) 2. Units are applied to each contour
segment per the contour definition.
3. Work for each segment is
recalculated.

Duration and Work have both 1. The 10 Contour Segments are re-
changed at the Assignment Level (∆D calculated.
& ∆W) 2. Units are applied to each contour
segment per the contour definition.
3. Work for each segment is
recalculated.

Units and Work have both changed at 1. Units are applied to each contour
the Assignment Level (∆U & ∆W) segment per the contour definition.
2. Work for each segment is
recalculated.
Module 2.4 79

Other Possible Changes at the Assignment Level
Changing one of the three variables (duration, units, work) is not the only thing
that can affect a predefined contour.

Assigning Additional Resources to a Task
Assigning additional resources to a task can also affect a current assignment
contour.

Assignment contours will only be affected if a task has Effort Driven turned on.
Assigning additional resources to a non-effort driven task does not affect an existing
resource contour at all.
When new resources are assigned to an effort driven task, the first thing
Microsoft Project must do is distribute work on the task amongst the assigned
resources. To divide up the work amongst each resource (or to calculate each
assignment’s work), Microsoft Project does the following:
1. First, Microsoft Project calculates a temporary value for the newly assigned
resource’s assignment work by assuming it was assigned without the effort
driven option being turned on. It does this by using the following equation:

Dt
Wat =
Ua

Where Wat is the temporary assignment work, Dt is the task duration, and
Ua is the assignment units. [capitalization should be consistent with below
under #3]
2. Next, Microsoft Project calculates a temporary value for the total work on
the task by summing all temporary assignment work values. This gives a
value that we will call the temporary task work, or Wtt.
3. Microsoft Project then calculates a temporary value for the assigned units
for an assignment (or Uat) by using the following equation:

Wat
Uat =
Wtt

Where Uat is the temporary assignment units, Wat is the temporary
assignment work, and Wtt is the temporary task work.
4. Next, the effort driven assignment work is calculated using the following
equation:

Wa = Uat × Wt

Where Wa is the assignment work, Uat is the temporary assignment units,
and Wt is the original task work.
80 Module 2.4

Once the assignment work is calculated, Microsoft Project then makes the
following calculations depending on the task type:

1. For a Fixed Duration Task, Microsoft Project recalculates the assignment
units using the following equation:

 Wa 
 
Ua =  Dt 
Usa

Where Ua is the assignment units, Wa is the assignment work, Dt is the task
duration, and Usa is the assignment units scaled average.
2. For a Fixed Units or Fixed Work Task, Microsoft Project recalculates the
task duration using the following equation:

 Wa 
 
Dt =  Ua 
Usa

Where Dt is the task duration, Wa is the assignment work, Ua is the
assignment units, and Usa is the assignment units scaled average.

Note
The Assignment Units Scaled Average (Usa) is the variable that takes
predefined contours into account. When assigning new resources to a task that
has an assigned resource with a predefined contour, this value maintains the
contoured assignment’s relevancy when calculating duration or assigned units.
This value is calculated by taking the average value of the units from each
predefined contour segment.
The Usa value for each predefined contour is noted in the following table:

Once the new values are calculated, Microsoft Project calculates the new
assignment contours as noted above, using the new values.

Changing Working Times
Changing working times may also appear to affect assignment contours.
However, when working times change, assignment contours remain essentially
unchanged when considered over working times. That is to say, when working
times are changed, the contour is simply moved around non-working times. For
example, if you had a two-day task with a flat contour, inserting a non-working
day (Day Two) between the two working days leaves the contour setting at
“flat.” It does not change to “contoured.”
Module 2.4 81

You should note, however, that in a literal sense (and to many users), the
contour has changed. This is because units have gone from being distributed
over two days at 100%, to being distributed over three days in the following
manner:
Day One Day Two Day Three
100% 0% 100%

In actuality, there is no units’ value for day two in Microsoft Project. However,
it is important to understand how other users of Microsoft Project 2000 may
view contours. As noted before, many users define assignment contours as the
timephased distribution of work. If viewed from this viewpoint, the contour
appears to have changed. It is important to be able to understand both views in
order to explain Microsoft Project’s behavior to others.
82 Module 2.4

Edited Contours
So far we’ve taken a broad look at predefined resource contours and what
happens when we make changes at the assignment level. On many occasions,
however, we may want to make changes to an assignment at the assignment
timephased level. Doing so changes our contour from a predefined contour to
an edited contour. In other words, an edited contour is, by definition, a contour
that has been edited at the timephased level.

Predefined Contour Units Scaled Average (Usa) Value
Flat 100%
Back Loaded 60%
Front Loaded 60%
Double Peak 50%
Early Peak 50%
Late Peak 50%
Bell 50%
Turtle 70%

Making Changes at the Assignment Timephased Level
When we make a change at the assignment timephased level, we are actually
creating a new edited contour. Once a contour is an edited contour, it has
different behavior when responding to changes made at the assignment level.
To understand these changes, however, we must first understand how edited
contours differ structurally from predefined contours. (That is, we need to
understand how contour segments behave in edited contours.)
As discussed earlier, predefined contours are divided into ten equal contour
segments. Each contour segment has a predefined level of units that is applied
to that segment based on the contour definition table. Edited contours, however,
differ in that they are not divided into ten segments of equal duration. First, the
number of contour segments in an edited assignment contour depends on the
actual edits made. The duration of each contour segment depends on the
timescale in which the edit was made.
Module 2.4 83

For example, suppose you had a 12-day task and you edited the assignment
contour as follows:
1 2 3 4 5 6 7 8 9 10 11 12
20% 15% 20% 15% 20% 25% 40% 25% 40% 25% 15% 20%
1.6h 1.2h 1.6h 1.2h 1.6h 2h 3.2h 2h 3.2h 2h 1.2h 1.6h

Note
In the timescaled view, you cannot directly edit the units assigned to each
timephased segment; instead you would directly edit the work. However, to
better understand edited contour segments, we will look at the units assigned.

In this example, you have 12 contour segments of equal duration. However, if
you changed your minor timescale to weeks, you would end up with the
following:
Week 1 Week 2 Week 3
18% 31% 7%

At this point the assignment contour still consists of 12 segments of equal
duration. However, if we then make an edit to Week 2, our contour segments
change. The five segments that make up Week 2 become one segment with a
five-day duration, and we are left with a total of eight contour segments. In our
example, if we change Week 2 to 38%, we are left with the following contour
segments.
Contour
Segment
Number 1 2 3 4 5 6 7 8

Units 20% 15% 20% 15% 20% 38% 15% 20%
Duration 1d 1d 1d 1d 1d 5d 1d 1d

Note that Contour Segment Number 6 has a five-day duration. If we
subsequently were to change our timescale back to days, we would see that
units are spread evenly over the segment. In other words, each day of the
second week would have 38%.

Important:
It is important to recognize that contour segments are independent from the
timescale units that we view timephased information with. When we change our
timescale units to days, we do not suddenly have additional assignment contour
segments. We are simply viewing existing segments differently. This will be
shown in more detail in the following example.

Now that we understand how edited contours deal with contour segments, let’s
take a look at what happens when we begin to make changes to assignments
with edited contours.
84 Module 2.4

Making Changes at the Assignment Level
The most important difference between predefined contours and edited contours
is the way in which segments are handled when changes are made at the
assignment level. As we noted above, segments are not necessarily equal in
duration, nor are they consistent in number. (That is, there can be more or less
than 10 contour segments.)
When the duration of an assignment changed with a predefined contour applied,
Microsoft Project recalculated the duration of the 10 contour segments so that
there were consistently 10 segments of equal duration. Like predefined
contours, Microsoft Project only changes edited contour segments when
duration changes. However, unlike predefined contours, the way in which
contour segments change is dependent on what else is changing at the
assignment level.
If both duration and units change at the assignment level, contour segment
length will change, but proportionality will be maintained. This means that if
you have three contour segments of 8 hours in length, making a change at the
assignment level where both duration and units change will cause the contour
segment length to change, but all three contour segments will still be the same
length.
If both duration and work are changed at the assignment level, contour segment
length proportionality will not be maintained. Instead, Microsoft Project will
simply extend or truncate the right most contour segment as needed. All other
contour segments will maintain the same length.
The way that changes at the assignment level affect contour segments of edited
assignment contours in Microsoft Project 2000 is detailed in the following
table. There are three distinct scenarios for edited contours when making
changes at the assignment level. They are as follows:
Changes at the Reaction of Contour Segment Lengths
Assignment Level
∆D, ∆U Segment lengths recalculated, proportionality
maintained.
∆D, ∆W Last Segment Extended/Truncated
∆U, ∆W Segment Length doesn’t change.

Note
To see which variables are changing under what circumstances, refer to the
table on page 74
Module 2.4 85

Example
Let’s look at an example that shows some of the possible changes and
calculations. Suppose we had a Fixed Units task with a three-day duration and
that we edited the assignment contour as shown below.
Day One Day Two Day Three
38% 88% 50%
3.03h 7.03h 4h

If we increase the assignment units from 88% to 100%, we get a timephased
assignment information as shown in the following table:
Day One Day Two Day Three
50% 90% 36%
4.02h 7.17h 2.9h

At first glance, it may appear that Microsoft Project is randomly changing our
assigned units. In fact, however, it is being very consistent in how it maintains
our assignment contour. Because the task is a fixed units task and we are
changing units at the assignment level, duration must be recalculated. From our
table on page 84 we know that this will cause contour segment lengths to
change, but their proportionality to be retained.
This gives us a situation where our timescale units (days) overlap our contour
segments as shown in the following table:
Day One – 50% Day Two – 90% Day Three – 36%
Contour One –42.94% Contour Two – 100% Contour Three – 56.5%
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

Now let’s look at how Microsoft Project makes the exact calculations to come
up with the scenario shown in the above table. The first thing that
Microsoft Project does in this situation is calculate duration. To do this,
Microsoft Project first calculates the assigned units scaled average (Usa) for the
edited contour by using the following equation:

Usa =
∑Us
Ns

Where Usa is the units’ scaled average, ∑U is the sum of all of the segments’
units, and Ns is the number of segments.
86 Module 2.4

Note Contour segments units are [please review this] usually not the units for
the assignment during a period of time. In other words, Us does not usually
correspond to the % allocation values found in the time-phased portion of the
Task Usage view. Rather, Us values correspond to the values shown in the
definition tables for predefined contours. In equation form:

%A
Us =
Ua

Where Us is the units for the contour segment, %A is the % allocation for the
time period and Ua is the units for the assignment.

In our scenario, calculating the Usa value gives us the following:

42.94% + 100% + 56.5%
Usa = -OR- Usa = 66.48%
3

Note
When segments are of unequal duration, Usa should be calculated as follows:
Usa =
∑ (Usx × Dsx )
Da
Where x is the segment number, Usx is the Units of segment number x, Dsx is
the duration of segment number x, ∑ (Usx × Dsx ) is the sum of all segments
units multiplied by their segment duration (that is,
(Us1 × Ds1) + (Us 2 × Ds 2)... ), and Da is the duration of the assignment.

Once Usa is calculated, Microsoft Project then recalculates the duration of the
assignment according to the following equation:

 Wa 
 
Dt =  Ua 
Usa

Where Dt is the task duration, Wa is the assigned work, Ua is the assigned
units, and Usa is the units’ scaled average.
Module 2.4 87

In our example, this works out to the following:

 14.07h 
 
Dt = 
100% 
-OR- Dt = 21.16h -OR- Dt = 2.64d
66.48%

Because duration changes, Microsoft Project is forced to recalculate the
assignment contour segments while maintaining their proportionality. This it
does in two steps. First, it calculates a ratio for the change in duration. This is
done using the following equation:

Dt
R=
Do

Where R is the ratio, Dt is the new task duration calculated above and Do is the
old task duration. In our scenario, R = 0.88.
Then Microsoft Project multiplies each contour segment’s duration by this ratio
to determine the new contour segment duration. In this scenario, all contour
segments are equal and end up being 7 hours in length.

Note When both duration and work change, contour segments are not
recalculated. Instead, the rightmost contour is extended or truncated. In such a
scenario, if duration is increased, the rightmost segment is extended. If duration
is decreased, the rightmost contours are truncated as needed.

Once segment durations are recalculated, Microsoft Project calculates a
multiplier by which to proportionately adjust our contour segment’s units. This
is done using the following equation:

Uan
M =
Ua

Where M is the multiplier, Uan is the new assigned units and Ua is the assigned
units. In our scenario, M = 1.13 or

100%
M =
88%

Next, Microsoft Project recalculates the assigned units for each contour
segment by multiplying the assigned units for each segment by the multiplier.
The results for our scenario are shown in the following table:

Contour One Contour Two Contour Three
42.94% 100% 56.5%
Table 1
88 Module 2.4

Microsoft Project then calculates what is displayed to the user based on what
timescale is selected. In our example, we are showing days. Because our
contours are only 7 hours in duration, segment contours overlap timephased
contours. Microsoft Project averages the contour segment’s units as they
overlap the timephased segment and displays the value as the timephased
segment’s units. This is demonstrated in the following table:
Day One – 50% Day Two – 89% Day Three – 36%
Contour One –42.94% Contour Two – 100% Contour Three – 56.5%
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

Table 2

Making Changes at the Assignment Timephased Level
When changes are made at the assignment timephased level, the change only
affects the timescale segment in which that edit was made. Note however, that
the timescale segment may overlap contour segments. Take the following table
for example:
Day One – 50% Day Two – 89% Day Three – 36%
Contour One –42.94% Contour Two – 100% Contour Three – 56.5%
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

Table 3

If you changed the units on day two to 50%, you would end up with the
following:
Day One – 50% Day Two – 50% Day Three – 36%
Contour One –42.94% C Contour Three – 50% Contour Four –
2 56.5%

1
0
0
%
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

Table 4

Note that you now have four assignment contours of varying length.
All edits to the timescale segment are spread evenly throughout the segment.
For example, if you assigned 50% units to a day and then changed the timescale
to hours, you would see 50% units for each hour as well.
Module 2.4 89

Other Possible Changes to Edited Contour Assignments
Adding Additional Resources to a Task with an Edited Contour Assignment
Adding a resource to a task with an edited contour assignment is not very
different from adding a resource to a task with a predefined contour. The only
difference that applies is the Usa value. For predefined contours, this is a fixed
value. However, for edited contours, this value is calculated based on the
following calculation:

Usa =
∑Us
Ns

Where Usa is the units’ scaled average, ∑Us is the sum of all of the segments’
units, and Ns is the number of segments.
When segments are of unequal duration, Usa should be calculated as follows:
Usa =
∑ (Usx × Dsx )
Da
Where x is the segment number, Usx is the units of segment number x, Dsx is
the duration of segment number x, ∑ (Usx × Dsx ) is the sum of all segments
units multiplied by their segment duration (THAT IS,
(Us1 × Ds1) + (Us 2 × Ds 2)... ), and Da is the duration of the assignment.
90 Module 2.4

Leveling

Leveling in Microsoft Project 2000 behaves very similarly to leveling in
Microsoft Project 98. However, because of new feature enhancements, leveling
has changed somewhat. It now takes into account some of the new features that
have been added to Microsoft Project 2000. Before we take a look at which new
features are related to leveling, let’s review what Leveling does in
Microsoft Project.

Leveling in Microsoft Project
It is important to remember what Microsoft Project is doing when it is leveling.
Although the end objective is to schedule resource work as efficiently as
possible, we must remember that leveling does not change work or units on an
assignment or task. Instead, when leveling makes a change, it does so by adding
leveling delay or splitting work. These are the only ways in which leveling can
make changes to a project. As we look at the new features related to leveling,
this will become more obvious.

Microsoft Project 2000 Features Related to Leveling
There are only a few new features that are related to leveling. They are as
follows:

Leveling From Current Schedule
If you’ve used Microsoft Project 4.x, you’ll be familiar with this option, which
is a reintroduction of an old feature. Microsoft Project 2000 gives you the
option to clear leveling values before leveling. This option is checked by
default.
With this option off, any previous leveling delay remains and can only be added
to which means the result of a previous leveling will likely be unchanged and
only newly overallocated assignments and their tasks will be leveled. For
example, if a task currently has 3ed of leveling delay, with this option turned
off, during subsequent leveling passes, this value may increase, but will not
decrease.
When this option is not checked, the time it takes to level a large project can be
reduced and is especially useful when leveling calculations have been set to
automatic.
Module 2.4 91

Figure 1 - Clear Leveling

Task Calendars
In Microsoft Project 98, when leveling delayed the start of an assignment, it
gave a delay value to the assignment. This value was then applied against the
resource calendar to get a new starting time for the assignment.
In Microsoft Project 2000, the calendar used by an assignment is not
necessarily the resource calendar. It may be the task calendar. When leveling,
Microsoft Project now looks at any applied task calendars and also checks to
see if the Ignore Resource Calendar setting is on.

Try This: Leveling with a Task Calendar
Create a Customer Scenario where Leveling with Task Calendars does not behave as
expected.
1. With a partner, create a project where task calendars are applied and
resources are assigned to tasks. Make sure some resources are overallocated.
2. Attempt to level your project.

Did your project level as most customers might expect? Why or why not?
92 Module 2.4

Material Resources
Material Resources are normally not leveled by Microsoft Project. This is
because they have no way of measuring capacity (that is, max units) and thus
cannot tell when they are overallocated.
Leveling will affect material resource, however, when they are assigned with
other resources and those resources’ assignments are delayed. In this situation,
material resources use the task delay value to move their assignments.

Try This: Leveling and Material Resources
Experiment with how leveling can affect material resources.

1. In a new project, create two three-day tasks that start on the same day.
2. Assign one working resource and one material resource to each task. Split
your screen and note the start and finish dates for each assignment.
3. Level your project.

Did any of your assignment dates change unexpectedly? Why or why not?
Module 2.4 93

Priority Levels
Microsoft Project 2000 has increased the amount of priority levels from 10 to
1000. They work in exactly the same fashion as they did in
Microsoft Project 98. Microsoft Project 98 values map to the new
Microsoft Project 2000 values as shown in Table 5.
Microsoft Project 98 Value Microsoft Project 2000 Value
Do Not Level 1000
Highest 900
Very High 800
Higher 700
High 600
Medium 500
Low 400
Lower 300
Very Low 200
Lowest 100
Table 5

Note
When saving a project in the 98 format, you should note that the values map
somewhat differently than noted above. This is detailed in the following table.
Note in particular that priority values from 801-999 are mapped to Highest and
that only values of exactly 1000 are mapped to Do Not Level.
94 Module 2.4

Microsoft Project 2000 Value Microsoft Project 98Value

1000 Do Not Level
801-999
701-800 Very High
601-700 Higher
501-600 High
401-500 Medium
301-400 Low
201-300 Lower
101-200 Very Low
0-100 Lowest
Table 6

Priority values can now also be used to set the priority of project summary tasks
(also can be set in the Project Information dialog). Because of this, inserted
projects can now contain a priority level and this priority can be taken into
account when leveling multiple inserted projects.
Module 2.4 95

Contoured Resource Availability
We’ve already discussed contoured resource availability, but let’s take a look at
its affect on leveling. We know that contoured resource availability does not
change work. Instead, it changes the percentage a resource is allocated. When
this percentage is over 100%, the resource is marked as overallocated.
Like manually editing a resource contour, contoured resource availability
spreads evenly throughout the segment in which it’s designated. In other words,
if you set a resource’s availability at 50% for a week, that availability is 50%
from the minute level on up through the week. If an assignment is made at
100%, leveling cannot schedule any work during that week and will move it to
another time where resource availability is 100% or greater.
For example, suppose we had a 10-day task and assigned a resource to it so that
the resource has 80 hours of work and is assigned at 100% every day of the
task. If we then contoured the resource’s availability so that the resource is only
available 50% of the time during the first 5 days of the task, the resource will
appear as overallocated. (Note: the resource is available 100% of the time for
all other periods.) If we then level the task, the resource will not be scheduled
to work during the week at which he is available 50% of the time. Instead his
work will begin in the second week.
This behavior may be different from what you might first expect. Since the
resource has four hours of available time each day during the first week, you
may assume that leveling should fill those hours first. It is at this point that we
must remember that leveling only adds delay or splits work. It cannot change
work or units. Thus, leveling cannot schedule four hours of work each day
during the first week. Instead it must move the assignment to an availability
contour that can accommodate the assigned units.
96 Module 2.4

Leveling Related VBA
Because Leveling has changed very little since Microsoft Project 98, there have
been very few changes to the Microsoft® Visual Basic® for Applications (VBA)
Object model. Below are the changes that have been made.

New Leveling Related Methods
LevelingOptions
[application].LevelingOptions Automatic, DelayInSlack,
AutoClearLeveling, Order, LevelEntireProject, FromDate, ToDate,
PeriodBasis, LevelIndividualAssignments, LevelingCanSplit.
All the arguments are optional. If any argument is not specified, then the values
that are currently used in the dialog are assumed as the values for the
arguments.

New Leveling Related Properties
AutoClearLeveling [application]. AutoClearLeveling[= value] as Boolean
Returns or sets the 'Clear old leveling values before performing leveling'
setting. The value argument has two settings: True or False

Priority [project]. Priority[= value] as number
Returns or sets the project priority value. This is the same value as the Project
Summary Task (or Project Information dialog) priority setting.
[task]. Priority[= value] as number
Returns or sets the task priority value.
THIS PAGE INTENTIONALLY LEFT BLANK
PSS Learning Services

Module 2.5

Contents

Lesson 5: Using Multiple Projects 97
Information in this document is subject to change without notice. The names of companies,
products, people, characters, and/or data mentioned herein are fictitious and are in no way intended
to represent any real individual, company, product, or event, unless otherwise noted. Complying
with all applicable copyright laws is the responsibility of the user. No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose, without the express written permission of Microsoft Corporation. If, however, your only
means of access is electronic, permission to print one copy is hereby granted.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.

© 2000 Microsoft Corporation. All rights reserved.

Microsoft, Active Accessibility, ActiveX, FrontPage, MS-DOS, Outlook, PhotoDraw, PowerPoint,
SQL Server, Visual Basic, Visual C++, Visual J++, Windows, and Windows are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.
Module 2.5 97

Lesson 5: Using Multiple Projects
Overview
In this lesson we will discuss the differences between Microsoft® Project 98 and
Microsoft Project 2000 when using multiple project files. We will discuss both
Resource Pools and Inserted Projects.

What You Will Learn
After completing this lesson, you will be able to:
 Describe differences with multiple projects in Microsoft Project 2000 vs.
Microsoft Project 98
 Describe Resource Pool differences between Microsoft Project 2000 and
Microsoft Project 98
 Move file locations without breaking links
 Troubleshoot common problems with multiple projects
 Work with multiple projects in the Microsoft Project 98 format
98 Module 2.5

Multiple Projects in Microsoft Project 2000
Using inserted projects in Microsoft Project 2000 is essentially the same as it
was in Microsoft Project 98. The method for inserting a project and the user
interface remain largely unchanged. Internally, however, Microsoft Project
handles inserted projects differently.
The most important difference is the way in which Microsoft Project references
inserted projects and resource pools. In Microsoft Project 98, a full path to the
file referenced inserted projects internally. For example, the path might be
“C:\My Documents\Client 1\project1.mpp.” Because of the way that inserted
projects were referenced, moving groups of project files could be difficult.
In Microsoft Project 2000, relative UNC paths are used in addition to full UNC
paths to reference inserted projects and resource pools. The relative paths are
used first. For example, if the file project1.mpp were inserted into a project
stored in the same directory, it would be referenced by both “\project1.mpp”
and “C:\My Documents\Client 1\project1.mpp.” Microsoft Project 2000 would
use the relative path first to locate the project. If it could not be found using the
relative path, the full path is used.
Because of this additional relative path, you can now easily move groups of
projects from one location to another and still maintain cross project links or
links with resource pools and inserted projects. The only requirement is that
files’ relative locations remain constant. So if you have a group of project files
originally located in the same directory, you simply have to place the files in
the same directory in the new location.
In Microsoft Project 2000, you have the opportunity to delete external
predecessor links to files that cannot be found. The following dialog box will
appear allowing you to delete the external link or relocate the file

Figure 1 - Links could not be found
Module 2.5 99

When opening a consolidated file in which an inserted project cannot be
located, the following dialog box is offered to locate the missing file. Notice the
title of the window “ Cannot find inserted project -…..”

Figure 2 - Cannot find inserted project
100 Module 2.5

Try This: Move Linked Files
Experiment with moving linked files to see how Microsoft Project 2000 behaves.

1. Create a Master Project with two inserted projects. Insert one project
that is stored in the same directory as the master project, and insert the
other from a location at the root.
2. Save all projects and close Microsoft Project 2000.
3. Save all projects to a floppy disk.
4. Choose a partner and exchange floppy disks.
5. Copy the files from the disk you received to the desktop.
6. Open the master project.

Was Microsoft Project 2000 able to find both inserted projects? What
happens if you move the inserted projects to other locations?
Module 2.5 101

Resource Pools
On the surface, Resource Pools have not changed in Microsoft Project 2000.
The user interface and overall usage remains the same. Below the surface,
however, there are a few significant changes in the way Resource Pools work.
Let’s take a look at dialog box changes first.

Opening a File Attached to a Resource Pool
In Microsoft Project 98, opening a file attached to a resource pool causes a
dialog box with three options to be displayed. In Microsoft Project 2000, this
has been reduced to two options as shown in the following figure:

Figure 3 - Open Resource Pool Information

The first option, “Open resource pool to see assignments across all sharer files”
opens the resource pool read only, along with the file. The second option, “Do
not open other files” corresponds to the third option in the Microsoft Project 98
dialog box, which reads, “Do not open resource pool.” It opens only the file
being opened.

Note
The second option found in the Microsoft Project 98 dialog box, “Open
Resource Pool Read-Write…” has not been removed from
Microsoft Project 2000. It is still found in the dialog box launched when
opening the resource pool directly. This option can also be accessed via
Microsoft® Visual Basic® for Applications (VBA).
102 Module 2.5

Opening Master Projects with Multiple Inserted Projects
Attached to a Resource Pool
In Microsoft Project 98, when you open a master project with multiple inserted
projects, each attached to a resource pool, you would receive the following
dialog box for each inserted project.

Figure 4 - File shares resources

In Microsoft Project 2000, you receive the new dialog with only two options as
shown below.

Figure 5 - Opening Projects attached to Pool

This dialog appears only once and the selection will be applied to all inserted
projects attached to a resource pool, even if each is attached to a different
resource pool.
Module 2.5 103

Similarly, you will no longer be prompted to update the resource pool multiple
times when saving or closing a master project. Instead you will receive the
following dialog only once and the selection will apply to all inserted projects.

Figure 6- Update Resource Pool

Note
You will still be prompted to save each individual project unless you choose
“Yes to all” or “No to all.” But you will not be asked if you want to update the
resource pool for each individual project.
104 Module 2.5

The Link (not the file) Takes Precedence
Dialog boxes are not the only change to Resource Pools. In
Microsoft Project 98, sharing resources made your project dependent on that
particular file. In Microsoft Project 2000, it is the link (not the file) that takes
precedence. Because of this, you can replace the resource pool file with another
file, simply by putting it directly where the old pool resided.

Writing to the Resource Pool When It’s Opened Read
Only
Another change is the way in which Microsoft Project 2000 treats the resource
pool when it is opened read only. In Microsoft Project 98, any update to the
Resource Pool, whether editing assignment information or adding new
resources, caused Microsoft Project to re-open the resource pool as read write.
In Microsoft Project 2000, this has changed. When the Resource Pool is opened
read only, any edits to assignments are written to the Resource Pool while it is
opened read only. This is accomplished by editing the file via a binary stream,
as opposed to rewriting to the whole file. When adding or deleting resources,
however, the resource pool must be re-opened as read write.

Only One Resource List
Another change is that only one resource list is maintained in
Microsoft Project 2000. This is true regardless of whether “Pool takes
precedence” or “Sharer takes precedence” is selected. Because only one list is
maintained, resources have the same ID and Unique ID numbers and order
whether in the resource pool or in the sharer file.
Module 2.5 105

Try This: Working with a Resource Pool
Experiment to see how Microsoft Project 2000 employs resource pools.

1. Create a new project with 3 tasks. Save the project as Project1.mpp, but
leave it open.
2. Create a resource pool with three resources named R1, R2, and R3.
3. Save the file as RP.mpp and leave it open.
4. Have Project1.mpp use RP.mpp as a resource pool.
5. Assign each resource to one task each.
6. In the resource sheet of Project1.mpp, add a new resource named R4.
7. Save both the files and close them.
8. Open Project1.mpp. When prompted, choose do not open other files
and click OK.

Is there anything unexpected about your resource list from Project1.mpp?
Does anything change when you also open RP.mpp?
106 Module 2.5

Working With Inserted Projects, Resource Pools, and Cross Project
Links in the Microsoft Project 98 Format

In some organizations, there may be situations where users of Microsoft Project
may want to use both Microsoft Project 98 and Microsoft Project 2000 files
together. For example, a Microsoft Project 2000 user may want to use a
Resource Pool that is still being maintained as a Microsoft Project 98 file.

Caution Microsoft strongly suggests that users do not use files of both
Microsoft Project 98 and Microsoft Project 2000 format together in Inserted
Project, Resource Pool, or Cross Project Link situations.

Microsoft strongly suggests that users do not use files of both
Microsoft Project 98 and Microsoft Project 2000 format together in Inserted
Projects, Resource Pools, or Cross Project Links situations. Doing so may cause
problems with inconsistent scheduling or other odd behavior. Microsoft Project
will not, however, explicitly stop you from doing so. You will not receive a
message indicating that you are using an inconsistent project file type. For
example, when you insert a Microsoft Project 98 project into a
Microsoft Project 2000 project, you will receive no message indicating it is a
Microsoft Project 98 file until you attempt to save your master project. At that
point you will be asked if you want to save your inserted project in the
Microsoft Project 2000 format.
If a there is an intermingling of Microsoft Project 98 and
Microsoft Project 2000 files, there may be some situations where it seems to
work well. More than likely, though, there will be problems. In order to
troubleshoot such situations, however, you must understand the designed
behavior in different situations. There are five scenarios that exist for using the
two file types together.
Module 2.5 107

Scenario 1 – Master Project in Microsoft Project 98 Format with some
sub-Projects in Microsoft Project 2000 Format
Microsoft Project 98 – When opening in Microsoft Project 98, sub-projects
will not be able to be expanded.
Microsoft Project 2000 – When opening in Microsoft Project 2000, sub-
projects will be able to be expanded. The master project will appear just as a
Microsoft Project 2000 master project would appear. For example, if one of the
inserted projects has an estimated duration, that estimated duration will be
reflected in any related summary tasks. However, any new features used
directly in the master project itself will be lost when you save your master
project. For a detailed list of what features will be lost, please refer to the new
feature list in Module 1.

Scenario 2 – Master Project in Microsoft Project 2000 Format with some
sub-projects in Microsoft Project 98 Format
Microsoft Project 98 – When attempting to open in Microsoft Project 98, you
will fail. You cannot open Microsoft Project 2000 files in Microsoft Project 98.
Microsoft Project 2000 – When you open in Microsoft Project 2000, you will
be able to open both the master and subprojects. However, if you apply any new
features to a sub-project, you will lose them when you save the sub-project in
the Microsoft Project 98 format. For a detailed list of what features will be lost,
please refer to the new feature list in Module 1.

Scenario 3 – Resource Pool in Microsoft Project 98 format, some
sharers in Microsoft Project 2000 format
Microsoft Project 98 – When attempting to open the pool and all sharers in
Microsoft Project 98, those sharers that are in the Microsoft Project 2000
format will not open. Instead, the resource pool will use replicated assignment
data for these sharers.
Microsoft Project 2000 – Everything will open correctly when opening the
resource pool and all sharers in Microsoft Project 2000. However, if the sharers
use new features, these will not be saved to the resource pool. When opening
the resource pool and sharers the next time, the resource pool may overwrite the
share data or vice versa, depending on the precedence settings and the type of
data in question.

Data may be overwritten if using a resource pool and sharers of different versions
and one of the files uses features new to Microsoft Project 2000. This is because
Microsoft Project 2000 features will not be saved in a Microsoft Project 98 files.
Thus when files are saved, the data between the resource pool and the sharer become
out of sync. When they are re-opened together, one or the other may overwrite the
other. Which overwrites which is determined by the precedence setting found in the
Share Resources dialog box titled “On conflict with calendar or resource
information.”
108 Module 2.5

For assignment data, the sharer will always take precedence. For resource data,
the precedence setting determines which file will overwrite which. For
example, in Scenario 3 where a Microsoft Project 2000 sharer uses a new
feature like Task Calendars or Estimated Durations, data for these features does
not get saved to the resource pool (which is saved in the Microsoft Project 98
format.) When the files are next opened together, all assignment information
from the sharer file overwrites the assignment information in the resource pool.
Thus estimated duration information will be copied over. However, resource
data from the resource pool may overwrite that in the sharer if “Pool takes
precedence” is set. Thus data for any new features used in the sharer (that is,
Material Resources or Resource Availability) will be overwritten and lost.

Scenario 4 – Resource Pool in Microsoft Project 2000 format, some
sharers in Microsoft Project 98 format
Microsoft Project 98 – The pool and the sharers in the Microsoft Project 2000
format cannot be opened. Only sharers saved in the Microsoft Project 98 format
can be opened.
Microsoft Project 2000 – All files will open correctly in
Microsoft Project 2000. However, like Scenario 3, if you use new features in
any of the files, that data will only be saved to the Microsoft Project 2000
format file. In this case it would save to the resource pool. Thus data between
the resource pool and the sharer would become out of sync and may be
overwritten.

Scenario 5 – Cross-project links from a task in a Microsoft Project 98
file to a task in a Microsoft Project 2000 file
Microsoft Project 98 – When opening a Microsoft Project 98 file with a cross-
project link to a Microsoft Project 2000 file, the link will show with a task name
of “Inserted 2000 Link.” When you attempt to open the project by double
clicking the task, you receive an error message indicating that the file cannot be
opened. This is because Microsoft Project 98 cannot open a
Microsoft Project 2000 format file.
Microsoft Project 2000 – When opening a Microsoft Project 2000 file with a
link to a Microsoft Project 98 file, the link will appear correctly. However, the
ghost task in the Microsoft Project 98 file will not save any data from a new
feature.
THIS PAGE INTENTIONALLY LEFT BLANK
PSS Learning Services

Module 3.1

Contents

Lesson 1: The Network Diagram View 1
Information in this document is subject to change without notice. The names of companies,
products, people, characters, and/or data mentioned herein are fictitious and are in no way intended
to represent any real individual, company, product, or event, unless otherwise noted. Complying
with all applicable copyright laws is the responsibility of the user. No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose, without the express written permission of Microsoft Corporation. If, however, your only
means of access is electronic, permission to print one copy is hereby granted.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.

© 2000 Microsoft Corporation. All rights reserved.

Microsoft, Active Accessibility, ActiveX, FrontPage, MS-DOS, Outlook, PhotoDraw, PowerPoint,
SQL Server, Visual Basic, Visual C++, Visual J++, Windows, and Windows are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.
Module 3.1 1

Lesson 1: The Network Diagram View
Overview
Microsoft® Project 2000 offers new tools to view your project information the
way you want. These include the Network Diagram, Custom Fields and
Grouping. In this lesson we will discuss the first of those tools, the Network
Diagram (formerly known as the PERT Chart.)

What You Will Learn
After completing this lesson, you will be able to:
 Describe features of the Network Diagram
 Use formatting features of the Network Diagram
 Describe limitations of Network Diagram and potential workarounds
 List new views and tables and describe their uses
2 Module 3.1

Network Diagram (formerly the PERT Chart)
Of all the new ways to view your information, the Network Diagram is
arguably the biggest change. Formerly known as the PERT Chart, the Network
Diagram offers a new way for Microsoft Project users to view their projects.

Formatting Box Styles
As in the Gantt Chart, you can use the Box Style dialog box to format types of
tasks in the Network Diagram. To bring up the Box Styles dialog box, go to the
Format menu and click Box Styles.

Figure 1 - Box Styles

In the Style Settings For section of the dialog box, you can select the type of
task that you would like to format. If you select multiple types of tasks, you can
simultaneously change attributes of all the types of tasks you have selected. The
Preview section displays how the node will look with the currently selected
settings. If multiple types of tasks are selected, the preview will be blank.
Module 3.1 3

Directly below are the options Set highlight filter style and Show data from task
ID. The Set highlight filter style option allows you to preview the highlight
filter style for that particular task type. It also changes the options below it to
those of the highlight filter style and allows you to customize the style by
changing those options.
When entering the task ID, the “Show data from Task ID” option allows you to
view that task’s information with the currently selected formatting options.
In the Data template drop down list box you can select the data template on
which the selected task type is based. Data templates setup up pre-defined
groups of fields to be displayed inside nodes. Data templates will be discussed
in more detail latter on in this lesson.
This dialog box also contains options for formatting borders and backgrounds
for the nodes. There are also toggles for displaying vertical and horizontal
gridlines within a node.
4 Module 3.1

Data Templates
Data templates allow you to set up predefined groups of fields to display in
your Network Diagram nodes. You can both import or create data templates in
the Data Templates dialog box. To access the Data Templates dialog box, click
the More Templates button in the Box Styles dialog box.

Figure 2 - Data Templates

Creating New Data Templates
To create a new data template, click the New button in the Data Templates
dialog box to display the Data Template Definition dialog box.
Module 3.1 5

Figure 3 - Data Template Definition

The name of the new template is entered into the Template Name field. Below
the template name is the Format Cells section. This section is a preview pane,
which displays actual task information in the preview. You can format the
number of rows and columns, cell width and blank cells by using the Cell
Layout dialog box. Clicking the Cell Layout button displays the following
dialog.

Figure 4 - Data Template Cell Layout
6 Module 3.1

Network Diagram nodes are divided into cells similar to cells found in a
spreadsheet. Each cell displays a field. It is in the Cell Layout dialog that you
select the number of cells to display in a node. A node can contain anywhere
from 1 to 16 cells. In other words, it can be anywhere in size from 1 column by
1 row to 4 columns by 4 rows. In the Cell Layout dialog box, you can also
change the cell width (anywhere from 50% to 400% of the standard size) and
allow blank cells to merge.
In the Data Template Definition dialog box you can choose the fields you wish
to display in each cell. To do so, click on the desired cell, click the down arrow,
and select the field from the drop down list. You may also type the field name
in the cell.
After you have chosen the fields to display, you can choose options for
adjusting fonts, lines per cell, horizontal and vertical alignment, displaying
labels, and adjusting date formats for fields that display dates. To add the new
data template to the list of available templates in the drop down list, click OK.

Note
Each individual cell can be formatted separately from the rest. For example,
you can have some cells with Times 11 pt, Bold fonts and others with Tahoma
8 pt, Italic. As in other Microsoft Office Applications, you can format multiple
cells at the same time by selecting the cells and holding down the Ctrl key.

In the Data Templates dialog box, you can also copy, edit, import and delete
templates.

If you delete a data template, there is no way to recover it. Nodes that are based on a
deleted data template will revert back to the default template.
Module 3.1 7

Microsoft Project 2000 ships with two Network views, Network Diagram view
and Descriptive Network diagram view. The following data templates, are part
of the Descriptive Network Diagram View:
Data Template Name Included Fields
Standard Name, Start, ID, Finish, Duration,
Resource Names
Critical Name, ID, Duration, Percent
Complete, Start, Finish, Resource
Names
Critical External Name, ID, Duration, Percent
Complete, Start, Finish, Project
Critical Inserted Project Name, ID, Duration, Percent
Complete, Start, Finish, Subproject
File
Critical Marked Name, ID, Duration, Percent
Complete, Start, Finish, Resource
Names
Critical Milestone Name, ID, Start, Actual Start

Data Template Name Included Fields
Critical Summary Name, ID, Duration, Percent
Complete, Start, Finish
Noncritical Name, ID, Duration, Percent
Complete, Start, Finish, Resource
Names
Noncritical External Name, ID, Duration, Percent
Complete, Start, Finish, Project
Noncritical Inserted Project Name, ID, Duration, Percent
Complete, Start, Finish, Subproject
Noncritical Marked Name, ID, Duration, Percent
Complete, Start, Finish, Resource
Names
Noncritical Milestone Name, ID, Start, Actual Start
Noncritical Summary Name, ID, Duration, Percent
Complete, Start, Finish
Project Summary Name, ID, Duration, Percent
Complete, Start, Finish
8 Module 3.1

Formatting Individual Nodes
So far we’ve looked at formatting groups of nodes based on predefined types of
tasks. Similar to the way Microsoft Project allows you to format Gantt Bar
styles and Gantt Bars, Microsoft Project also allows you to format individual
nodes. To do this, you must use the Format Box dialog box. To display the
Format Box dialog box, on the Format menu, click Box:

Figure 5 - Format Box Dialog

As you can see from the above figure, this dialog box is similar to the Box
Styles dialog box. The only differences are that there are no options to select the
type of task, set the highlight filter style, or select a task ID to display in the
preview section. All other options work similarly to those found in the Box
Styles dialog box.
Individual node formats can be removed by clicking the Reset button. This
causes the node to be formatted in the default style for the task type.
Module 3.1 9

Layout
One large improvement in Microsoft Project 2000 is the control that users have
over the layout of a project’s nodes. An entire new dialog box has been created
with all available layout options. To display this dialog box, go to the Format
menu and click Layout.

Figure 6 - Layout Dialog

As you can see from the above figure, the first option of the Layout dialog box,
Layout Mode, allows you to choose between automatic and manual positioning.
Automatic positioning positions nodes at all times and does not allow you to
manually customize a node’s position. Manual positioning allows you to
position nodes as you want. When manual positioning is selected,
Microsoft Project never moves nodes.
The next section of the Layout dialog box is the Box Layout section. Here you
can choose from seven node layout schemes. The available schemes are as
follows:
1. Top Down From Left – this is the default layout scheme, which starts
laying out nodes from the upper left corner.
2. Top Down by Day – this scheme lays out nodes starting from the upper left
corner, but groups tasks starting on the same day within the same column.
3. Top Down by Week – this scheme lays out nodes starting from the upper
left corner, but groups tasks starting in the same week within the same
column.
10 Module 3.1

4. Top Down by Month – this scheme lays out nodes starting from the upper
left corner, but groups tasks starting in the same month within the same
column.
5. Top Down – Critical First – this scheme lays out nodes from the upper left
corner, but lists critical nodes first, then lists all other nodes.
6. Centered From Left – this scheme lays out nodes from the center left, and
expands evenly up and down while flowing to the right.
7. Centered From Top – this scheme lays out nodes from top to bottom,
expanding evenly to both the right and to the left while flowing down.

The other options found in the Box Layout section of the dialog box deal with
node layout within the virtual grid which overlays the Network Diagram. The
virtual grid can be thought of as a set of rows and columns that covers the entire
Network Diagram. Rows and columns overlap in virtual cells. A virtual cell can
generally be thought of as the space in which one node resides, although more
than one node can exist in a virtual cell. Microsoft Project allows you to
control the alignment of nodes within the virtual cell, the spacing between the
cells, and the size of the cells.
To control the alignment of nodes within virtual cells, Microsoft Project uses
the following two options:
 Row Alignment – This option affects the vertical alignment of the node
within the virtual cell. Available options are Top, Center, and Bottom.
 Column Alignment – This option affects the horizontal alignment of the
node within the virtual cell. Available options are Left, Center, and Right.

To control the spacing between virtual cells (or more accurately the white space
between rows and columns) Microsoft Project uses the following two options:
 Row Spacing – this option ranges from zero to 200. Each number
represents one pixel when the zoom setting is set at 100%. The default for
this option is 40.
 Column Spacing – this option ranges from zero to 200. Each number
represents one pixel when the zoom setting is set at 100%. The default for
this option is 60.

The size of virtual cells is dependent on the row and column in which it resides.
It is set via the following two options:
 Row Height – this option sets the vertical size of a virtual row. There are
two available options. The default, Best Fit, allows each virtual row to be a
different height with the tallest node residing in the row determining the row
height. The other available option, Fixed, sets all rows to the same height
with the tallest node in the diagram determining all row heights.
 Column Width – this option sets the horizontal size of a virtual column.
The default, Best Fit, allows each virtual column to be a different width with
the widest node residing in the column determining the column width. The
other available option, Fixed, sets all columns to the same height with the
widest node in the diagram determining all column widths.
Module 3.1 11

Three other options exist in the Box Layout section. They are listed below: 
Show summary tasks – This option shows summary tasks. It is the same
setting as that found in Tools/Options on the View tab. It is simply
replicated here for ease of discovery. 
Keep tasks with their summaries – This option allows you to chose
whether summary tasks or predecessors should take precedence when nodes
are laid out. If you check this option, Microsoft Project will position nodes
in relationship to their summary tasks over their predecessors. Not checking
this option does the opposite. This option comes into play when a task in a
link chain has a predecessor that belongs to a different summary task; it is
grayed out if Show Summary Tasks is not checked. 
Adjust for page breaks – This option keeps nodes from breaking across
pages. It is on by default.

Below the Box Style section is the Link Style Section. Here you can choose
between Rectilinear or Straight links. You can also choose to not display links
and to display link labels. Link Labels show the type of link. (that is, SF, SS,
etc.)
The next section is the Link Color section. Here you can choose between
manually setting the link color for non-critical and critical tasks, or allowing
links to be the same color as the preceding node’s border color.
The final section of the Layout dialog box is Diagram Options. Here you can
set the Network Diagram background color and pattern. You can also choose
options to show page breaks, mark in-progress and completed tasks, and to hide
all fields within a node except ID. You should note that internally, choosing the
option to hide all fields except for ID applies a hidden internal template to all
nodes. This template does not show up in the list of data templates. For all
practical purposes, it is a part of the Network Diagram view.

Manual Layout Mode Extras
When manual layout is selected in the Layout dialog box, there are some extra
options that become available. These options allow you to manually lay out
some nodes while automatically laying out others, and automatically lining up
nodes.

Selective Layout
Microsoft Project 2000 allows you to manually layout some nodes while it
selectively lays out other nodes automatically. To have Microsoft Project
automatically arrange nodes, select the nodes, right-click your mouse, and
choose Layout Selection Now.
When you do this, Microsoft Project internally calculates the layout of the
entire project, but then moves only the selected nodes to their positions.
12 Module 3.1

Automatically Align Nodes
The align option allows you to line up selected nodes with others selected
nodes. To do this, Microsoft Project uses the first node selected (also called the
master node) and aligns all other selected nodes to it. When you select multiple
nodes, right-click your mouse, and choose Align, you are presented with the
following options:
 Lefts – changes the X coordinate of the upper left corner of each node to
that of the master node.
 Centers – changes the X coordinate of the center of each node to that of the
master node.
 Rights – changes the X coordinate of the upper right corner of each node to
that of the master node.
 Tops – changes the Y coordinate of the top left corner of each node to that
of the master node.
 Middles – changes the Y coordinate of the center of each node to that of the
master node.
 Bottoms – changes the Y coordinate of the top right corner of each node to
that of the master node.

Using the Align option can potentially cause your nodes to overlap. As a result,
users might think that nodes have been deleted. Actually, the nodes still exist, they
just overlap. If tasks still exist in another view, they should also exist in the Network
Diagram view.

Viewing Summary Tasks
Like summary tasks in other views, summary tasks in the Network Diagram are
affected by the options found on the View tab under Tools/Options. Note that
these settings are specific to each view. In other words, settings for one view do
not affect other views. If you look at the View tab while in the Network
Diagram view, you will notice that Indent Name and Show Outline Number are
both grayed out. This is because these options are not available in the Network
Diagram view.

Although most options on the View tab are not global throughout all views, the
Project Summary Task option is global and will affect all views.
Module 3.1 13

Printing Network Diagrams
Printing the Network Diagram is essentially the same as printing other views in
Microsoft Project 2000. Regardless of the background color and pattern chosen
for the view, Microsoft Project only prints the Network Diagram with a white
background.
Legends for the Network Diagram are dependent on the settings made in the
Box Styles dialog box. Note that although the names of the types of tasks
cannot be changed and you cannot add custom types, any changes to the nodes
are reflected in the printed legend.
One scenario that is fairly unique to Network Diagrams occurs when attempting
to use the Fit to option located on the Page tab in the Page Setup dialog box
(File menu/Page Setup). When this option is set, the Adjust For Page Breaks
option (found in the Layout dialog box) is disabled. This may cause nodes to
break across pages if attempting to fit to more than one page.
To work around this issue, set the option to fit to the desired pages to see the
scaling units used. Then manually adjust the scaling units to this amount while
making sure Adjust For Page Breaks is enabled. This may require that you
adjust the scaling units to ensure only the desired amount of pages are used.

Filtering in the Network Diagram View
One powerful improvement in Microsoft Project 2000 is the ability to filter in
the Network Diagram view. Filters can be applied in the Network Diagram
view just as they can be in any other view. There are no special filters for
Network Diagrams.

Displaying Task chains
One of the powerful features that filtering allows is the ability to display a link
chain of tasks. This can be done by holding down the Shift key and selecting
the first task in the chain you want to display.
A link chain can be even more clearly displayed by splitting the screen so that
the top pane displays the Network Diagram view and the bottom pane displays
the Gantt chart view. Selecting the first chain task in the Network Diagram
while holding down the Shift key will list all tasks in the link chain in the Gantt
chart.

Figure 7 - Task Chain
14 Module 3.1

VBA Related to the Network Diagram
Because the Network Diagram is essentially a new feature set in
Microsoft Project and not simply a new view, there has been extensive work
done on the VBA Object Model. Below are some of these changes.

Methods
BarBoxFormat Method
Displays the Bar Format or Box Format dialog box, which prompts the user to
specify bar format (Gantt Chart, Resource Graph, and Calendar view) or box
format (Network Diagram) respectively.
Syntax
expression.BarBoxFormat
expression Optional. An expression that returns an Application
object.
Remarks
The BarBoxFormat method has the same effect as the Bar Format
command (Gantt Chart, Resource Graph, and Calendar view) or the Box
Format command (Network Diagram) on the Format menu.

BoxStylesEdit Method
Sets the style of boxes on the Network Diagram.
Syntax
expression.BoxStylesEdit (Style, BoxTemplate, HorizontalGridlines,
VerticalGridlines, BorderShape, BorderColor, BorderWidth,
BackgroundColor, BackgroundPattern)
expression Optional. An expression that returns an Application object.
Style Required Long. The box style to change. Can be one of the following PjBoxStyle
constants:
PjBoxCritical pjBoxNoncritical
pjBoxCriticalMarked pjBoxNoncriticalExternalTask
pjBoxCriticalMilestone pjBoxNoncriticalMarked
pjBoxCriticalSubproject pjBoxNoncriticalMilestone
pjBoxCriticalSummary pjBoxNoncriticalSubproject
pjBoxExternalTask pjBoxNoncriticalSummary
pjBoxHighlightedTasks pjBoxProjectSummary
BoxTemplate Optional String. The name of the box template to use for the style.
HorizontalGridlines Optional Boolean. True if horizontal gridlines separate each row in the box.
VerticalGridlines Optional Boolean. True if vertical gridlines separate each cell in the box.
BorderShape Optional Long. The shape of the box border. Can be one of the following
PjBoxShape constants:
PjBoxRectangle pjBoxRightParallelogram
pjBoxWideRectangle pjBoxLeftParallelogram
Module 3.1 15

pjBoxRoundedRectangle pjBoxCapsule
pjBoxWideRoundedRectangle pjBoxUpTrapezoid
pjBoxPointedEnds pjBoxDownTrapezoid
BorderColor Optional Long. The color of the box border. Can be one of the following PjColor
constants:
PjColorAutomatic
pjAqua pjNavy
pjBlack pjOlive
pjBlue pjPurple
pjFuschia pjRed
pjGray pjSilver
pjGreen pjTeal
pjLime pjYellow
pjMaroon pjWhite
BorderWidth Optional Long. The width of the box border. Can be one of the following
PjBoxBorderWidth constants:
PjBorderWidth1 pjBorderWidth3
pjBorderWidth2 pjBorderWidth4
BackgroundColor Optional Long. The color of the box background. Can be one of the PjColor
constants.
BackgroundPattern Optional Long. The pattern for the background. Can be one of the following
PjFillPattern constants:
PjBackgroundHollow pjBackgroundDarkDiagonalLeft
pjBackgroundSolidFill pjBackgroundDarkDiagonalRight
pjBackgroundLightFill pjBackgroundThinVerticalStripe
pjBackgroundMediumFill pjBackgroundMediumVerticalStripe
pjBackgroundDarkFill pjBackgroundLightDither
pjBackgroundDiagonalLeft pjBackgroundMediumDither
pjBackgroundDiagonalRight pjBackgroundDarkDither
Remarks
To display the Box Styles dialog box, use the BarBoxStyles method.
16 Module 3.1

BoxFormat Method
Formats individual boxes in the Network Diagram.
Syntax
expression.BoxFormat (ProjectName, TaskID, BoxTemplate,
HorizontalGridlines, VerticalGridlines, BorderShape, BorderColor,
BorderWidth, BackgroundColor, BackgroundPattern, Reset)
expression Optional. An expression that returns an Application object.
ProjectName Optional String. If the active project is a consolidated project, specifies the name of
the project for the identification number specified by TaskID. If TaskID is not
specified, ProjectName is ignored. The default value is the name of the active
project.
TaskID Optional Long. The identification number of the task represented by the box to be
changed. The default is to change the boxes of the selected tasks.
BoxDataTemplate Optional String. The name of the data template.
HorizontalGridlines Optional Boolean. True if horizontal gridlines separate each row in the box.
VerticalGridlines Optional Boolean. True if vertical gridlines separate each cell in the box.
BorderShape Optional Long. The shape of the box border. Can be one of the following
PjBoxShape constants:
PjBoxRectangle pjBoxRightParallelogram
pjBoxWideRectangle pjBoxLeftParallelogram
pjBoxRoundedRectangle pjBoxCapsule
pjBoxWideRoundedRectangle pjBoxUpTrapezoid
pjBoxPointedEnds pjBoxDownTrapezoid
BorderColor Optional Long. The color of the box border. Can be one of the following PjColor
constants:
PjColorAutomatic
pjAqua pjNavy
pjBlack pjOlive
pjBlue pjPurple
pjFuschia pjRed
pjGray pjSilver
pjGreen pjTeal
pjLime pjYellow
pjMaroon pjWhite
Module 3.1 17

BorderWidth Optional Long. The width of the box border. Can be one of the following
PjBoxBorderWidth constants:

PjBorderWidth1 pjBorderWidth3
pjBorderWidth2 pjBorderWidth4
BackgroundColor Optional Long. The color of the box background. Can be one of the PjColor constants.
BackgroundPattern Optional Long. The pattern for the background. Can be one of the following
PjFillPattern constants:
PjBackgroundHollow pjBackgroundDarkDiagonalLeft
pjBackgroundSolidFill pjBackgroundDarkDiagonalRight
pjBackgroundLightFill pjBackgroundThinVerticalStripe
pjBackgroundMediumFill pjBackgroundMediumVerticalStripe
pjBackgroundDarkFill pjBackgroundLightDither
pjBackgroundDiagonalLeft pjBackgroundMediumDither
pjBackgroundDiagonalRight pjBackgroundDarkDither
Reset Optional Boolean. True if the box formatting is reset to the default formatting of the
style in the Box Styles dialog box. If Reset is True, all other arguments except
ProjectName and TaskID are ignored.
Remarks
If the TaskID argument is used to specify a box to format, the task
cannot be hidden due to application of a filter or a collapse of the outline
structure.
If no arguments are specified, the BoxFormat method displays the
Format Box dialog box for the selected tasks (if no tasks are selected, the
BoxFormat method has no effect).
Use the BoxFormat method to change the formatting of boxes from
their default styles. To define the default styles, use the BoxStylesEdit
method.

BoxDataTemplate Method
Creates, copies, renames, or deletes a Network Diagram box template.
Syntax
expression.BoxDataTemplate (Name, Action, NewName, Overwrite)
expression Optional. An expression that returns an Application object.
Name Required String. The name of the template to edit, create, copy or
delete.

Action Required Long. The operation to perform on the template. Can be
one of the following PjDataTemplate constants:
pjDataTemplateNew pjDataTemplateRename
pjDataTemplateCopy pjDataTemplateDelete
18 Module 3.1

NewName Optional String. The new name for an existing box template
(Action is pjDataTemplateRename) or a copied box template
(Action is pjDataTemplateCopy). For copying and renaming box
templates, NewName is required and must not be an existing box
template name. If Action is pjDataTemplateRename or
pjDataTemplateDelete, NewName is ignored.
Remarks
To determine if a box template exists, rename the template to the same name
(that is set NewName = Name) and check for success.

BoxCellLayout Method
Sets the cell layout and size properties for a Network Diagram box template.
Syntax
expression.BoxCellLayout (Name, CellRows, CellColumns, CellWidth,
MergeCells)
expression Optional. An expression that returns an Application
object.
Name Required String. The name of the box template to edit.
CellRows Optional Long. The number of rows of cells in the box
template. Can be one of the following PjRowCol
constants: pjRowCol1, pjRowCol2, pjRowCol3, or
pjRowCol4.
CellColumns Optional Long. The number of columns of cells in the
box template. Can be one of the following PjRowCol
constants: pjRowCol1, pjRowCol2, pjRowCol3, or
pjRowCol4.
CellWidth Optional Integer. The percentage between 100 and 200
by which to enlarge the width of every cell in the box
template.
MergeCells Optional Boolean. True if blank cells will be merged
with the cell to the left.

Remarks
If no arguments other than Name are specified, the BoxCellLayout method has
no effect.
The initial layout of a new box template is 2 rows by 2 columns of normal
(100%) width cells with cell merging enabled.
BoxCellEdit Method
Sets the properties for an individual cell in a Network Diagram box template.
Syntax
expression.BoxCellEdit (Name, Cell, FieldName, Font, FontSize, FontColor,
Bold, Italic, Underline, HorizontalAlignment, VerticalAlignment,
TextLineslimit, ShowLabel, Label, DateFormat)
Module 3.1 19

expression Optional. An expression that returns an Application object.
Name Required String. The name of the box template containing the cell to edit.
Cell Required Long. The cell being edited. Can be one of the following PjCell
constants:
pjCell1_1 pjCell2_1 pjCell3_1 pjCell4_1
pjCell1_2 pjCell2_2 pjCell3_2 pjCell4_2
pjCell1_3 pjCell2_3 pjCell3_3 pjCell4_3
pjCell1_4 pjCell2_4 pjCell3_4 pjCell4_4
FieldName Optional Long. The name of the field to display in the cell. Can be one of
the following PjField constants:
PjTaskActualCost
pjTaskActualDuration
(that is, all pjTask* values -- omitted for the sake of brevity)
pjTaskWorkVariance
Font Optional String. The name of the font.
FontSize Optional Integer. The size of the font in points.
20 Module 3.1

FontColor Optional Long. The color of the font. Can be one of the following
PjColor constants:
PjColorAutomatic
pjAqua pjNavy
pjBlack pjOlive
pjBlue pjPurple
pjFuschia pjRed
pjGray pjSilver
pjGreen pjTeal
pjLime pjYellow
pjMaroon pjWhite
Bold Optional Boolean. True if the font is bold.
Italic Optional Boolean. True if the font is italic.
Underline Optional Boolean. True if the font is underlined.
HorizontalAlignment Optional Long. A constant that specifies how to horizontally align the text
in the cell. Can be one of the following PjAlignment constants: pjLeft,
pjCenter, or pjRight.
VerticalAlignment Optional Long. A constant that specifies how to vertically align the text in
the cell. Can be one of the following PjVerticalAlignment constants:
pjTop, pjMiddle, or pjBottom.
TextLineslimit Optional Long. The maximum number of lines of text permitted in the
cell. Can be on of the following PjTextLine constants: pjLine1, pjLine2,
pjLine3.
ShowLabel Optional Boolean. True if a label should be displayed before the field
data in the cell.
Label Optional String. The label to display before the field data in the cell when
ShowLabel is True.
Module 3.1 21

DateFormat Optional Long. The date format for the cell when the field specified in
FieldName is a date field. Can be one of the following PjDateFormat
constants:
Constant Date format applied to
9/30/97 (12:33 PM)
PjDateDefault The default format, as
specified on the View tab
of the Options dialog box.
pjDate_mm_dd_yy_hh_mmAM 9/30/97 12:33 PM
pjDate_mm_dd_yy 9/30/97
pjDate_mm_dd_yyyy 9/30/1997
pjDate_mmmm_dd_yyyy_hh_mmAM September 30, 1997 12:33
pjDate_mmmm_dd_yyyy PM
pjDate_mmm_dd_hh_mmAM September 30, 1997
pjDate_mmm_dd_yyy Sep 30 12:33 PM
pjDate_mmmm_dd Sep 30, '97
pjDate_mmm_dd September 30
pjDate_ddd_mm_dd_yy_hh_mmAM Sep 30
pjDate_ddd_mm_dd_yy Tue 9/30/97 12:33 PM
pjDate_ddd_mmm_dd_yyy Tue 9/30/97
pjDate_ddd_hh_mmAM Tue Sep 30, '97
pjDate_mm_dd Tue 12:33 PM
pjDate_dd 9/30
pjDate_hh_mmAM 30
pjDate_ddd_mmm_dd 12:33 PM
pjDate_ddd_mm_dd Tue Sep 30
pjDate_ddd_dd Tue 9/30
pjDate_Www_dd Tue 30
pjDate_Www_dd_yy_hh_mmAM W41/2
W41/2/97 12:33 PM
Remarks
If no arguments other than Name and Cell are specified, the BoxCellEdit
method has no effect.
22 Module 3.1

BoxLayout Method
Controls the layout of boxes in the active Network Diagram.
Syntax
expression.BoxLayout (LayoutMode, LayoutScheme, SummaryPrecedence,
RowAlignment, ColumnAlignment, RowSpacing, ColumnSpacing, RowHeight,
ColumnWidth, AdjustForPageBreaks, ShowSummaryTasks,
ViewBackgroundColor, ViewBackgroundPattern, ShowProgressMarks,
ShowPageBreaks, ShowIDOnly)
expression Optional. An expression that returns an Application object.
LayoutMode Optional Long. A constant that specifies whether the layout of boxes in the
active Network Diagram occurs automatically or is controlled by the user. Can
be one of the following PjLayoutMode constants: pjLayoutAutomatic or
pjLayoutManual.
LayoutScheme Optional Long. The positioning scheme (algorithm) to use when laying out
boxes. Can be one of the following PjLayoutScheme constants:
PjLayoutTopDown
pjLayoutTopDownByDay
pjLayoutTopDownByWeek
pjLayoutTopDownByMonth
pjLayoutTopDownCriticalFirst
pjLayoutCenteredfromLeft
PjLayoutCenteredFromTop
SummaryPrecedence Optional Boolean. True if positioning a task in relation to its summary takes
precedence over positioning it in relation to its predecessors. False if task links
always take precedence when arranging boxes.
RowAlignment Optional Long. A constant that specifies how to align the boxes within each
column. Can be one of the following PjVerticalAlignment constants: pjTop,
pjMiddle, or pjBottom.
ColumnAlignment Optional Long. A constant that specifies how to align the boxes within each
row. Can be one of the following PjAlignment constants: pjLeft, pjCenter, or
pjRight.
RowSpacing Optional Integer. A number between 0 and 200 that represents the distance
between rows of boxes. Equivalent to the number of pixels, when measured at a
zoom setting of 100%.
ColumnSpacing Optional Integer. A number between 0 and 200 that represents the distance
between columns of boxes. Equivalent to the number of pixels, when measured
at a zoom setting of 100%.

RowHeight Optional Long. A constant that specifies the height of each row of boxes. Can
be one of the following PjRowColSize constants: pjSizeBestFit or pjSizeFixed
ColumnWidth Optional Long. A constant that specifies the width of each column of boxes.
Can be one of the following PjRowColSize constants: pjSizeBestFit or
pjSizeFixed
AdjustForPageBreaks Optional Boolean. True if the boxes will be adjusted around page breaks.
Module 3.1 23

ShowSummaryTasks Optional Boolean. True if summary tasks are displayed in the active Network
Diagram.
ViewBackgroundColor Optional Long. The color of the Network Diagram background. Can be one of
the PjColor constants.
PjColorAutomatic
pjAqua pjNavy
pjBlack pjOlive
pjBlue pjPurple
pjFuschia pjRed
pjGray pjSilver
pjGreen pjTeal
pjLime pjYellow
pjMaroon pjWhite
ViewBackgroundPattern Optional Long. The pattern for the Network Diagram background. Can be one
of the following PjFillPattern constants:
PjBackgroundHollow pjBackgroundDarkDiagonalLeft
pjBackgroundSolidFill pjBackgroundDarkDiagonalRight
pjBackgroundLightFill pjBackgroundThinVerticalStripe
pjBackgroundMediumFill pjBackgroundMediumVerticalStripe
pjBackgroundDarkFill pjBackgroundLightDither
pjBackgroundDiagonalLeft pjBackgroundMediumDither
pjBackgroundDiagonalRight pjBackgroundDarkDither
ShowProgressMarks Optional Boolean. True if in-progress tasks are marked with a diagonal line
from the top left of the box to the lower right and completed tasks are marked
with an additional line from the top right of the box to the lower left.
ShowPageBreaks Optional Boolean. True if page breaks are displayed in the Network Diagram.
ShowIDOnly Optional Boolean. True if only the ID field is displayed in each box. False if
all fields in the box template are displayed.

Remarks
Using the BoxLayout method without specifying any arguments displays the
Box Layout dialog box.

BoxLinks Method
Controls the appearance of link lines in the active Network Diagram.
Syntax
expression.BoxLinks (Style, ShowArrows, ShowLabels, ColorMode,
CriticalColor, NoncriticalColor)
Expression Optional. An expression that returns an Application
object.
Style Optional Long. A constant that specifies the style of
link lines connecting the boxes of the active Network
Diagram. Can be one of the following PjLinkStyle
constants: pjLinkStraight or pjLinkRectilinear.
24 Module 3.1

ShowArrows Optional Boolean. True if the link lines have arrows
that show the direction of the links.
ShowLabels Optional Boolean. True if the link lines have labels
attached that show the link type.
ColorMode Optional Long. A constant that specifies the way link
line colors are determined. Can be one of the following
PjLinkColorMode constants:
pjColorModeCustom Link line colors are
independent of
boxes and are
determined by
CriticalColor and
NoncriticalColor.
pjColorModePredecessor Link lines are the
same color as the
border of the
predecessor box.
CriticalColor Optional Long. The color of link lines between critical
tasks. The default is pjRed. If ColorType is not
pjColorModeCustom, CriticalColor is ignored. Can be
one of the following PjColor constants:
pjColorAutomatic
pjAqua pjNavy
pjBlack pjOlive
pjBlue pjPurple
pjFuschia pjRed
pjGray pjSilver
pjGreen pjTeal
pjLime pjYellow
pjMaroon pjWhite

NoncriticalColor Optional Long. The color of link lines between
noncritical tasks. The default is pjBlack. If ColorType
is not pjColorModeCustom, NoncriticalColor is
ignored. Can be one of the PjColor constants.
Remarks
If no arguments are specified, the BoxLinks method has no effect.
LayoutSelectionNow Method
Lays out the selected task boxes in the active Network Diagram view according
to its layout options.
Syntax
expression.LayoutSelectionNow
expression Optional. An expression that returns an Application
object.
Remarks
Module 3.1 25

Layout options can be set with the BoxLayout and BoxLinks methods.
The LayoutSelectionNow method is only available when a Network Diagram
view is active.

LayoutRelatedNow Method
Lays out all task boxes in the active Network Diagram that are successors or
subtasks of the task with the focus.
Syntax
expression.LayoutRelatedNow()
Expression Optional. An expression that returns an Application
object.
Remarks
The LayoutRelatedNow method is only available when a Network Diagram
view is active.

BoxGetXPosition Method
Returns the X position of the top-left corner of a task box in the Network
Diagram.
Syntax
expression.BoxGetXPosition (TaskID, ProjectName)
Expression Optional. An expression that returns an Application
object.
TaskID Required Long. The identification number of the task.
ProjectName Optional String. If the active project is a consolidated
project, specifies the name of the project for the
identification number specified by TaskID. The default
value is the name of the active project.
Remarks
The value returned by BoxGetXPosition is in non-scaleable units which are
equivalent to an equal number of pixels at a zoom setting of 100%.

BoxGetYPosition Method
Returns the Y position of the top-left corner of a task box in the Network
Diagram.
Syntax
expression.BoxGetYPosition (TaskID, ProjectName)
Expression Optional. An expression that returns an Application
object.
TaskID Required Long. The identification number of the task.
ProjectName Optional String. If the active project is a consolidated
project, specifies the name of the project for the
26 Module 3.1

identification number specified by TaskID. The
default value is the name of the active project.
Remarks
The value returned by BoxGetYPosition is in non-scaleable units which are
equivalent to an equal number of pixels at a zoom setting of 100%.

BoxAlign Method
Aligns the left sides, centers, right sides, top edges, middles, or bottom edges of
all selected boxes in the currently active Network Diagram with the
corresponding side of the box with the focus.
Syntax
expression.BoxAlign (Alignment)
expression Optional. An expression that returns an Application
object.
Alignment Required Long. A constant that specifies how to align all
of the selected boxes with the box with the focus. Can be
one of the following PjAlign constants:
PjAlignLefts pjAlignTops
pjAlignCenters pjAlignMiddles
pjAlignRights pjAlignBottoms
Remarks
If only one box is selected, the BoxAlign method has no effect.

BoxLinkStyleToggle Method
Toggles the box link style between rectilinear links and straight links for the
active Network Diagram.
Syntax
expression.BoxLinkStyleToggle (StraightLinks)
expression Optional. An expression that returns an Application
object.
StraightLinks Optional Boolean. True if straight link lines are
displayed. False if rectilinear link lines are displayed.
The default is to toggle the current setting.

BoxProgressMarksShow Method
Shows or hides progress marks in the active Network Diagram.
Syntax
expression.BoxProgressMarksShow (Show)
expression Optional. An expression that returns an Application
object.
Show Optional Boolean. True if progress marks are displayed
in the active view. The default value is True if progress
Module 3.1 27

marks are hidden and False if they are visible.

BoxLinkLabelsShow Method
Shows or hides link labels in the active Network Diagram.
Syntax
expression.BoxLinkLabelsShow (Show)
Expression Optional. An expression that returns an Application
object.
Show Optional Boolean. True if link labels are displayed in the
active view. The default value is True if link labels are
hidden and False if they are visible.
SummaryTasksShow Method
Shows or hides summary tasks in the active Network Diagram.
Syntax
expression.SummaryTasksShow (Show)
Expression Optional. An expression that returns an Application
object.
Show Optional Boolean. True if summary tasks are displayed
in the active view. The default value is True if summary
tasks are hidden and False if they are visible.
Remarks
SummaryTasksShow is available in a Network Diagram, Gantt, or Usage
view.
28 Module 3.1

Existing PERT Methods
Because the Network Diagram includes many different features than the PERT
Chart in Microsoft Project 98, many of the old methods used in
Microsoft Project 98 simply won’t work in Microsoft Project 2000. Below is a
detailed table of different methods related to the PERT chart from 98 and how
they have been modified in Microsoft Project 2000.
Microsoft Project 98 Microsoft Project 2000 Changes
Method
Layout No change. Displays the Layout dialog box.

LayoutNow No change. Lays out the active view based on its
current layout settings.
PERTBorders Hidden and ignored, along with the PjPERTField and
PjPERTBoxStyle constants.
PERTBoxStyles Hidden and ignored, along with the PjPERTBoxSize
constants.
PERTLayout Hidden and ignored.

PERTSetTask Renamed to BoxSet. Similar support as before, with
some changes and additional arguments. See
description below.
PERTShowHideFields Renamed to BoxShowHideFields. Sets or clears the
Display small boxes with ID only checkbox in the
Layout dialog. The result is the same as using
PERTShowHideFields in Microsoft Project 98, but in
Microsoft Project 98 the method set (or unset) the Size
control in the Box Styles dialog to ID only, since that's
how this functionality was controlled.
ZoomPERT Renamed to BoxZoom. Zooms in on or out from the
Network Diagram.
PageBreaksShow No Change. Shows or hides page breaks on the
Network Diagram.
Module 3.1 29

BoxSet Method
Creates, selects, or moves a task box in the Network Diagram.
Syntax expression.BoxSet(Action, TaskID, XPosition, YPosition,
ProjectName)
Expression Optional. An expression that returns an Application
object.
Action Optional Long. The operation to perform on the
specified task(s). The default value is pjBoxSelect.
Can be one of the following PjBoxSet constants:

PjBoxAddToSelection
PjBoxCreate
PjBoxMoveAbsolute
PjBoxMoveRelative
PjBoxSelect
pjBoxUnselect
TaskID Optional Long. The identification number of the task.
Required if Action is pjBoxCreate, TaskID is
ignored.
Xposition Optional Long. The horizontal position of the task, in
pixels. Required if Action is pjBoxMoveAbsolute or
pjBoxMoveRelative. If Action is pjBoxCreate or
pjBoxMoveAbsolute, XPosition is the absolute
horizontal position of the upper left corner of the task.
If Action is pjBoxMoveRelative, XPosition is the
amount to move the task horizontally relative to the
current position. If Action is pjBoxAddToSelection,
pjBoxSelect, or pjBoxUnselect, XPosition is ignored.
Yposition Optional Long. The vertical position of the task, in
pixels. Required if Action is pjBoxMoveAbsolute or
pjBoxMoveRelative. If Action is pjBoxCreate or
pjBoxMoveAbsolute, YPosition is the absolute
vertical position of the upper left corner of the task. If
Action is pjBoxMoveRelative, YPosition is the
amount to move the task vertically relative to the
current position. If Action is pjBoxAddToSelection,
pjBoxSelect, or pjBoxUnselect, YPosition is ignored.

RelativeMove Optional Boolean. True if XPosition and YPosition
are relative to the current position. False if XPosition
and YPosition are absolute coordinates. If Create is
True, RelativeMove is ignored. The default value is
False.
30 Module 3.1

ProjectName Optional String. If the active project is a consolidated
project, specifies the name of the project for the
identification number specified by TaskID. If TaskID
is not specified, ProjectName is ignored. The default
value is the name of the active project.
Remarks
All coordinates and move amounts are measured in pixels.
Module 3.1 31

Other Methods Affected by the Network Diagram
Although the following arguments are not changing, the following methods will
need to be updated to work with the new Network Diagram view and some
descriptions in Help will need to be rewritten in cases where they concern the
PERT:
Microsoft Project 98 Microsoft Project 2000 Changes
Method
DefaultView Now accepts and returns the strings
"Network Diagram" and "Relationship
Diagram." No longer accepts or returns the
strings "PERT Chart" or "Task PERT."
Filters Now enabled in Network Diagram views.

FilterApply Now enabled in Network Diagram views.

OutlineHideSubtasks Now enabled in Network Diagram views.

OutlineShowAllTasks Now enabled in Network Diagram views.

OutlineShowSubtasks Now enabled in Network Diagram views.

OutlineShowTasks New Microsoft Project 2000 method that
also applies to Network Diagram views.
OutlineSymbolsToggle Now enabled in Network Diagram views.

TextStyles No longer supported in Network Diagram
views. PERT-related PjTextItem constants
removed (that is, pjPERTCritical,
pjPERTNoncritical,
pjPERTExternalTask,
pjPERTNoncriticalExternalTask, etc.).
ViewEditSingle pjPERT and pjTaskPERT removed from
the PjViewScreen constants.
pjNetworkDiagram and
pjRelationshipDiagram added.
PSS Learning Services

Module 3.2

Contents

Lesson 2: Custom Fields and Grouping 33
Information in this document is subject to change without notice. The names of companies,
products, people, characters, and/or data mentioned herein are fictitious and are in no way intended
to represent any real individual, company, product, or event, unless otherwise noted. Complying
with all applicable copyright laws is the responsibility of the user. No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose, without the express written permission of Microsoft Corporation. If, however, your only
means of access is electronic, permission to print one copy is hereby granted.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.

© 2000 Microsoft Corporation. All rights reserved.

Microsoft, Active Accessibility, ActiveX, FrontPage, MS-DOS, Outlook, PhotoDraw, PowerPoint,
SQL Server, Visual Basic, Visual C++, Visual J++, Windows, and Windows are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.
Module 3.2 33

Lesson 2: Custom Fields and Grouping
Overview
Microsoft® Project 2000 includes two new powerful features: Custom Fields
and Grouping. In this lesson we will describe the various uses of Custom Fields
and Grouping.

What You Will Learn
After completing this lesson, you will be able to:
 Describe features of custom fields
 Create a value list
 Create complex formulas given a scenario
 Set up grouping given a scenario
 Describe rollup behavior when grouping
 Describe interaction and differences between filtering, sorting, and grouping
34 Module 3.2

Custom Fields
In previous versions of Microsoft Project, there has always been a set of custom
fields that could be used to provide data to supplement information available
from built-in field calculations. The functionality of these fields has been
limited, however, either to data manually entered by the user or to manipulation
using Microsoft® Visual Basic® for Applications (VBA).
Microsoft Project 2000 implements a number of changes that considerably
enhance the capabilities and usefulness of custom fields. These enhancements
include:
 Custom Outline Code fields (more fully described in an earlier module) that
allow the user to define a custom outline structure that is unrelated to the
task outline.
 The ability to define a table of possible values for custom fields, plus a
drop-down “picklist” to allow access to the value list when the field is
edited in a table.
 The ability to create custom fields containing values returned by formulas.
The formulas can produce calculations using the values contained in other
fields, can operate on almost any type of field, and can also utilize native
Visual Basic functions.
 Graphical indicators that can be displayed for a custom field in place of the
field’s actual value. This is useful as a highly visible warning when a field
meets conditions specified by the user, such as a custom Cost field that has
exceeded a specified dollar amount.

General Procedure for Creating Custom Fields
The new Customize Fields dialog (previously titled Customize Field Names) is
accessed by pointing to Customize on the Tools menu, and then clicking Fields.
The dialog initially appears as shown below:
Module 3.2 35

Figure 1 - Custom Fields

A brief description of each of the items in the dialog follows. Items requiring
more detailed description are noted and are more fully discussed in other
modules or later in this lesson as indicated.
Field (group):
Task / Resource: Option button group that specifies whether a custom task field
or a custom resource field is to be edited.
Type: Drop-down list from which the user can select a field from all available
custom fields for either tasks or resources.
Rename: Opens the Rename Field dialog in which the user can specify a new
name (up to 50 characters long) by which to refer to the selected custom field.
The name must be unique within the project. If the name has already been used,
the following message is displayed:
36 Module 3.2

Figure 2 - Field Name In Use

Clicking OK returns the user to the Rename Field dialog with the entered name
preselected for editing. If the user then specifies a blank name or re-enters the
default name and then clicks OK, the dialog is closed and the field retains only
its default name.
Define Outline Code…: If a custom Outline Code field is selected, this command
button opens the Define Outline Field dialog; for any other field type, the
button is disabled. The Define Outline Field dialog and other dialogs to which it
leads are covered in Module 2, Lesson 2, under the section “Outline Codes and
WBS.”
Custom Attributes (group): These options allow the user to specify whether all
data will be manually entered by the user or if the field will have an associated
formula or value list.

If the selected field is a custom Outline Code field, all of these options are
disabled.
None: When this option button is selected (the default), the field will not have
any special attributes. The user will manually enter any data in the field.
Value List…: When this option button is selected, the associated Value List…
command button is enabled. The Value List command button opens the Value
List dialog for the selected field, where the user can define the picklist to be
associated with the selected field.
Module 3.2 37

Figure 3 - Value List Data Entry Option

The Value List dialog is described in greater detail under “Defining a Value
List” later in this lesson. Selecting the Value List… option button brings up the
following alert:

Figure 4 – Restricted Value List Data Entry

Formula…: When this option button is selected, the associated Formula…
command button is enabled. The command button opens the Formula dialog for
the selected field, where the user can define a custom formula which will be
used to calculate the contents of the field. The Formula dialog is described in
greater detail under “Defining Custom Formulas” later in this lesson. Selecting
the Formula… option button brings up the following alert:
38 Module 3.2

Figure 5 - Existing data will be discarded

Calculation for task and group summary rows (group): These options allow the
user to specify what kind of value will be displayed in the summary task and
group header summary row fields for the selected custom field. If the selected
field is a custom Outline Code field, all of these options are disabled.
None: When selected (the default), the custom field will have default values in
the summary rows. The summary fields will be read/write for summary tasks,
and will be blank and non-editable for group header summary rows.
Rollup: When selected, the user can choose a method for rolling up the field
values for child tasks to their associated summary task. When field Type is
Outline Code or Text, this option is disabled. Otherwise, depending on the type
of data contained in the selected field, there will be up to six rollup methods
available as shown in the following table:
Cost Average, Average First Sublevel, Maximum,
Minimum, Sum,
Date, Finish, Maximum, Minimum
or Start
Duration Average, Average First Sublevel, Maximum,
Minimum, Sum,
Flag AND, OR
Number Average, Average First Sublevel, Count All, Count
First Sublevel, Maximum, Minimum, Sum
Outline Code N/A
Text N/A

Use Formula: This option is only enabled if Formula is selected in the Custom
Attributes group. When selected, summary task rows will be calculated using
the same formula specified for non-summary tasks.
Values to display (group): These options allow the user to specify whether data
is displayed as normal text or numeric data, or if the data should be replaced in
tables by graphical indicators. If the selected field is a custom Outline Code
field, all of these options are disabled.
Data: When selected (the default), normal data values will be displayed in the
custom field.
Graphical Indicators…: When selected, the Graphical Indicators command
button brings up the Graphical Indicators dialog, where the user can specify a
Module 3.2 39

series of value tests and an image to display depending on which test the field
contents matches. Up to 128 tests can be defined. The Graphical Indicators
dialog is described in greater detail under “Defining Graphical Indicators” later
in this lesson.
Graphical indicator information is retained with a custom field even if the
indicators are later disabled. For example, if the user specifies a set of tests,
values, and indicator images for a custom field and then changes the “Values to
display” option to Data, the graphical indicators are no longer enabled, but the
indicator criteria are retained if graphical indicators are re-enabled at a later
time.
OK: Sets or modifies the customization of the selected field and closes the
dialog.
Cancel: Cancels the dialog without setting or modifying the custom field.
40 Module 3.2

Defining a Value List
The Value List command button in the Customize Fields dialog brings up the
Value List dialog shown below, with the selected field name (or renamed alias)
as part of the dialog title:

Figure 6 - Value List dialog

A description of each of the items in the dialog follows.
Cut/Copy/Paste/Insert/Delete Row: These buttons work in the same way as in
other dialogs, such as the Edit Lookup Table dialog. Standard keyboard
shortcuts can also be used.
Row/Value/Description grid: Up to 10,000 entries can be added.
Row: Read-only column that contains the row numbers in the grid. Row
numbers are mainly for reference, and are only significant if the Display order
is set to By Row Number. The user can change the order of items in the grid by
inserting, deleting, or moving rows, but row numbers do not move with the
items.
Value: Contains the actual strings that will appear in the field’s drop-down
picklist and in the field once they are inserted. Can be up to 255 characters long.
Module 3.2 41

For date fields, the format for dates in the drop-down list cannot be modified
and will always have a long date/time form similar to “Wed 12/15/99 8:00
AM,” as shown below (though once they are inserted into the column they take
the default format as specified in Tools/Options or in the table definition).

Figure 7 - Date Formats

Description: Contains optional descriptive strings, up to 255 characters long,
that can be used to provide more information than is contained in the Value
column. If used, they will be displayed to the right of their corresponding
Values in the picklist, separated by a dash, as shown below. Once a Value is
inserted, however, the description is not included with the Value text.

Figure 8 - Value List Description
42 Module 3.2

Descriptions will also be used in the Name column of group header summary
rows, if the custom field is one of the fields being grouped. If no description is
present, then the Value will be displayed instead.

Values and Descriptions can each contain up to 255 characters, but in the picklist the
visible portion of the combined Value and Description will be truncated to the width
of the table column, or to a minimum width of about 20 characters if the column is
very narrow.
Use a value from the list as the default entry for the field: When checked (the
default is unchecked), specifies whether the custom field will have a specific
default value rather than simply containing Microsoft Project’s default value for
the field type (blank for text fields, N/A for date fields, $0.00 for cost fields, No
for Boolean fields, etc.) when new tasks are added. When checked, the Set
Default button is enabled so that the default value can be specified.
Set Default: When enabled, allows the user to select one of the values in the grid
and then click the button to set the chosen value as the default. Once set, the
text of the default value displays as red in the grid. If the selection is on an
empty row when Set Default is clicked, no default is set, or if a default was
previously set, it is not changed. If “Use a value from the list as the default
entry for the field” is subsequently unchecked, the default value is not
remembered.
Data entry options (group): These options determine the allowable operations
when entering data into a custom field that has an associated value list.
Restrict field to items in the value list: When selected (the default), specifies that
the only values allowed in the custom field are the items that already exist in
the value list. When this option is selected, both the “Append new entries to the
value list” and “Prompt before adding new entries” checkboxes are cleared and
disabled.
Allow additional items to be entered into the field: When selected, specifies that
the custom field can contain values that are not already in the existing value list.
When entering data, the user can select from the existing choices in the drop-
down, type in the name of an existing choice, or type in any new items. When
selected, this item also enables the “Append new entries to the value list”
checkbox.
Append new entries to the value list: When selected, if the user types in the
name of an item that is not already in the value list, the item is added to the grid
in the Value List dialog, and is then available in the drop-down list for new and
existing tasks. The position where the new item appears in the value list drop-
down is determined by the Display order setting.
If this checkbox is not checked and the user types in the name of an item that is
not already in the value list, the item is displayed in the custom field, but it is
not added to the value list and will not appear in the drop-down for the custom
field.
When checked, this option also enables the “Prompt before adding new entries”
checkbox.
Prompt before adding new entries: When checked, specifies that whenever a
new value is typed in that is not in the value list, the prompt shown below will
be displayed for the user to confirm that they want to add the value to the list.
Module 3.2 43

Figure 9 - Value not in the Value list

Display order for drop-down list (group): These options determine how value list
items will be arranged in the drop-down picklist for the custom field, and also
how they will be arranged in the grid the next time the Value List dialog for the
field is opened. While editing the Value List dialog, the order of the items is not
changed except for items inserted, deleted or moved by the user, but when the
dialog is closed and reopened, items are rearranged according to the option
chosen.
By row number: This is the default option. When switching from one of the
sorted options to this option, the items will remain in their current positions.
Sorted ascending: This option specifies that the items in the drop-down list will
be rearranged in a standard ascending sort order (lowest to highest) for the type
of field selected. With this item selected, the items in the grid will be sorted in
ascending order each time the dialog is closed and reopened.
Sorted descending: Similar to the Sorted ascending option, except that items
will be arranged in descending sort order (highest to lowest).
Import Value List: Opens the Import Value List dialog, so that the user can copy
a value list from a field in the Global template, from another open project, or
from another custom field in the current project. Only the grid data is imported.
Because no data verification is done during the import process, it is possible for
the user to import data of a type that does not match the field currently being
edited. In this case, any error messages due to type mismatches will be
generated when the user next clicks OK to close Value List dialog.
If there are already values in the Value List for the field being edited, the
imported entries will be appended to the current list. This allows users to
consolidate two or more lists by performing multiple imports.
Cancel: Closes the dialog and discards all changes made since the dialog was
opened.
OK: Saves the value list, reordering the list if necessary according to the current
Display order setting, and removing blank rows, trailing spaces, and duplicate
entries. For duplicate entries, only the Value is considered; the Descriptions are
ignored.
At this point Microsoft Project checks for the following conditions, updating
the data in the project or generating error messages depending on the condition
found:
Type mismatches: A value, which is invalid for the selected field, has been
entered, either directly by the user or by importing from another field. In this
case, the following message is displayed:
44 Module 3.2

Figure 10 - Value is not Valid

When the user clicks OK, they are returned to the Value List dialog with the
focus on the Value column of the first row in the grid containing a type
mismatch.
Editing the Value of an existing item: All records in the project containing the
old value are updated to reflect the new value.
Deleting a previously existing item, when “Restrict field to items in the
value list” is selected: In this situation, tasks may already contain the value,
which was just deleted, so they no longer adhere to the current list restriction.
The following message will be displayed:

Figure 11 - Deleting a value

If the user clicks OK, any values no longer in the list are removed from the
selected field throughout the project. If the user clicks Cancel, they are returned
to the Value List dialog, but any items deleted from the grid during the current
session are not restored. In order to restore deleted values to the grid, the user
Module 3.2 45

must click Cancel to close the Value List dialog, which means that any other
modifications will also be lost.

Changing from “Allow additional items to be entered into the field” to
“Restrict field to items in the value list”: In this situation, records may
already contain a value that is not in the just-edited list. The following message
will be displayed:

Figure 12 - Invalidating existing data

If the user clicks OK, any values no longer in the list are removed from the
selected field throughout the project. If the user clicks Cancel, they are returned
to the Value List dialog, but any items deleted from the grid during the current
session are not restored. In order to restore deleted values to the grid, the user
must click Cancel to close the Value List dialog, which means that any other
modifications will also be lost.
Selecting “Use a value from the list as the default entry for the field”: For
every non-blank task in the project where the selected field is blank, the default
value is supplied.
“Use a value from the list as the default entry for the field” is selected but
no default value is specified: This can occur either when the user has selected
this option during the current editing session without setting the default, or
when the item that was the default has been deleted during the current session.
In either case, no message is displayed and the checkbox for the option is
cleared. The task data is not affected, since removing the default does not
change the existing field contents.

Data Entry in Fields with Value Lists
When editing custom fields in the project, which have value lists defined,
options chosen in the Value List dialog can affect user interaction when
entering data in the following ways: 
If the user has a value list for a custom text field and the list does not have a
default value, then whenever the drop-down is displayed, there is a blank
entry at the top that can be used to set the field to a null string. For all other
data types, or for text fields that specify a default value, there is no blank in
the drop-down. 
If a value is typed into a custom field (rather than picking an item from the
drop-down list), the entered data is considered to match a list item as long as
46 Module 3.2

it is spelled the same; that is, case does not have to match. After the item is
entered, the value is converted to match the exact case of the list entry.
 If the user has specified that new values can be entered and they should be
added to the list, but “Prompt before adding new entries” is selected in the
Value List dialog, the following alert is displayed when something outside
the existing choices is typed in:

Figure 13 - Value not in Value List

Clicking Yes adds the item to the value list, while clicking No returns the user
to the cell in edit mode, with the text highlighted. The user can modify the
value they entered, select a different value list item from the drop-down, or
cancel out of edit mode.
If the user has specified that the field can only contain the values in the list and
no new values are allowed, the following alert is displayed when something
outside the existing choices is typed in:

Figure 14 -Value no valid

Clicking OK returns the user to the cell in edit mode, with the text highlighted.
The user can modify the value they entered, select a value list item from the
drop-down, or cancel out of edit mode.
 A custom field with a value list may display a value not in the list, even
though “Restrict field to items in the value list” is selected. This can happen
for field types that are never blank because Microsoft Project always
specifies a default value (that is, Cost, Date, Duration, Flag, Finish,
Number, and Start custom fields). If a new task is created and there is no
default value specified in the value list, the Project default will be filled in,
regardless of whether it is in the value list. For example, if the value list for
Duration1 is restricted to either 1d, 3d, or 5d, but none of these are specified
as the default, then the Microsoft Project default of 0d will be inserted for
all new tasks, even though it is not contained in the value list.
Module 3.2 47 

If the user has specified a value list for a custom date field, the date picker
drop-down will not be displayed when the user clicks in the cell. The user
will be limited to the value list choices. 
If there are external tasks in a project, data entered into the custom fields for
those tasks must adhere to any local value list restrictions (as opposed to
following any custom field settings in the external project).
48 Module 3.2

Defining Graphical Indicators
The Graphical Indicators command button in the Customize Fields dialog
brings up the Graphical Indicators dialog shown below, with the selected field
name (or renamed alias) as part of the dialog title:

Figure 15 - Graphical Indicators

A description of each of the items in the dialog follows.
Indicate criteria for (group): The Indicator Criteria dialog is used to set different
criteria for one or all, of the three different kinds of project tasks, non-summary,
summary and project summary. You toggle between the three different grids
that contain the three available types of indicator criteria lists.
Non-summary rows: When selected (the default), this option displays the grid
with the comparison tests and indicators for non-summary tasks or resources
(depending on the current field). The Non-summary rows grid is always
enabled (except in some cases with resource pools; see “Custom Field Behavior
with Consolidated Projects and Resource Pools,” later in this lesson).
Summary rows: When selected, this option toggles the display to show the grid
with the comparison tests and indicators that apply to summary rows, including
both summary tasks and group header summaries. The Summary rows grid and
the edit and Move buttons are all disabled whenever the “Summary rows inherit
criteria from non-summary rows” checkbox is checked:
Module 3.2 49

Summary rows inherit criteria from non-summary rows: When selected (the
default), this option determines whether the same set of indicators and test
criteria that apply to the non-summary task or resources will be applied to the
summary rows and group headers. This checkbox is checked by default, so any
non-summary criteria is automatically copied here. If the checkbox is cleared,
the grid and buttons are enabled.
If this item is selected after criteria different from that of non-summary rows
has already been specified, Microsoft Project will copy any data from the Non-
summary rows grid and overwrite the current list. Before proceeding, the
following alert is displayed so that the user can choose not to overwrite the
existing data:

Figure 16 - Summary rows inherit criteria

Clicking Yes copies the non-summary criteria (even if it is an empty list) and
disables the grid. Clicking No retains the existing criteria and leaves the
checkbox unchecked.
Project summary: When selected, displays the grid with the comparison tests
and indicators to be applied only to the project summary. The Project summary
grid and the row editing buttons are all disabled whenever the “Project
summary inherits criteria from summary rows” checkbox is checked. If the
selected field is a resource field, this option is disabled.
Project summary inherits criteria from summary rows: When checked (the
default), specifies that the same set of indicators and test criteria that apply to
summary tasks will be applied to the project summary. If the checkbox is
cleared, the grid and buttons are enabled as described above for Summary rows.
If the checkbox is re-checked and the grid is not empty, the same message
shown above for Summary rows is displayed. If the selected field is a resource
field, this option is disabled.
Cut Row, Copy Row, Paste Row, Insert Row, Delete Row: Standard editing
buttons, applying to whatever row currently has the focus. These buttons are all
disabled if the grid is disabled. Standard keyboard shortcuts can also be used.
Move up/down: Moves the row with the current selection up or down one
position. These buttons are disabled whenever the grid is disabled.
Show data values in ToolTips: When checked (the default), specifies that when
the user hovers the mouse over a custom field cell with a graphical indicator, a
ToolTip will be displayed that contains the actual underlying data value.
50 Module 3.2

Import Indicator Criteria: Opens the Import Graphical Indicator Criteria dialog
shown below, to allow the user to copy indicator criteria lists from the Global
template, from another open project, or from another field in the current project.

Figure 17 - Import Indicator Criteria

Only the criteria for enabled grids (as determined by the options specified in the
Graphical Indicators dialog) are copied. For example, if criteria are imported
while both the “Summary rows inherit criteria from non-summary rows” and
“Project summary inherits criteria from summary rows” checkboxes are
unchecked, only the non-summary criteria are imported.
When importing a criteria list, only the grid data is copied; no other options are
changed by the import operation. If the data type of the imported criteria is
incorrect for the current field, one or more error messages will be generated
when the user next clicks OK to close the Graphical Indicators dialog.
The entries from the other fields are always appended at the end of the current
list, so any existing entries are not overwritten. This allows the user to
consolidate criteria from multiple other lists into a single list. If the number of
imported rows combined with existing rows exceeds the maximum allowed
number of test conditions, the following alert is displayed:

Figure 18 – Maximum number of rows
Module 3.2 51

If the user clicks OK, Microsoft Project will append as many of the imported
tests as will fit in combination with the existing tests in the grid.
Indicator Criteria grid: Allows the user to specify up to 128 tests and
corresponding images to be displayed in the selected field, depending on which
criteria are met by the value in the field.
Test for '<field-name>': Contains operators used to define the criteria that must
be met by the values in the Value(s) column for the indicator in the Image
column to be displayed. The column header contains the name (or alias) of the
selected field to make it clear exactly what the test is referring to. Clicking in a
cell in this column enables a drop-down list with the following choices: 
equals 
does not equal 
is greater than 
is greater than or equal to 
is less than 
is less than or equal to 
is within 
is not within 
contains 
does not contain 
contains exactly 
is any value

Up to 128 different tests can be entered. If conflicting test conditions or data
ranges are specified, the order in which the tests are listed in the grid determines
which one takes precedence. The list is applied in top-to-bottom order, and
processing is halted as soon as a test evaluates to true; if there are overlapping
or conflicting tests conditions further down the list, they have no impact. The
Move buttons can be used to arrange the tests in the order that suits the
purposes of the user.
For example, if the first row says to show a yellow circle for values greater than
10 and the second row says to show a red circle for values less than 20, then a
yellow circle will be displayed for all values over 10 and a red circle will only
be displayed for values less than or equal to 10. Reversing the order of these
two rows will cause a yellow circle to only show for values above 20 and red
will be displayed for 20 or less.
Halting the process at the first successful test allows the user to enter specific
tests at the top followed by more general tests below. For example, the first test
could specify a blue flag for the value 75, the second test could specify a green
flag for values between 50 and 100, and the third test could specify a red flag
for every value greater than zero. The result would be equivalent to explicitly
specifying 75=blue, 50 to 74=green, 76 to 100=green, 1 to 49=red, and
>100=red.
“is any value” test: This test is exclusive to graphical indicators. The “is any
value” test means that the test is true for whatever value may be in the field, so
the chosen indicator will be displayed for every row. When “is any value” is
52 Module 3.2

selected, the label <All> is automatically inserted into the adjoining cell in the
Value(s) column and that cell is disabled:
The normal use of “is any value” would be to specify an indicator that applies
wherever no other comparison test is successful (that is, to serve as an "other"
or "else" condition). Since it always evaluates to true, no tests following it will
ever be evaluated, so it should always be put at the end of the list.
Similar to editing a filter, any test condition can be selected in the drop-down
independent of the data type of the custom field for which the test is being
specified, but once OK is pressed in the dialog, the following message is
displayed if the test is not valid for the current data type:

Figure 19 - Test is not apply

When the user clicks OK, they are returned to the Graphical Indicators dialog
with the focus on the first cell in the Test column containing a problem.
Value(s): This column is where the user enters the actual values or range of
values to which the test criteria are to be applied. Clicking in the column
enables a drop-down combo box. The user can type in an appropriate data value
up to 255 characters in length, or can use the value in another task or resource
field by selecting the field from the drop-down list. Each field is displayed in
square brackets to indicate that these are field references that will be replaced
by the actual field data.
Any type of data can be entered into the Value(s) column. When the user clicks
OK to close the dialog, if any value specified is the wrong data type for the
selected field, or if an invalid field name is referenced, the following message
will be displayed:

Figure 20 - Entry is not valid
Module 3.2 53

When the user clicks OK, they are returned to the Graphical Indicators dialog
with the focus on the first cell in the Value(s) column that contains a problem.
Image: Clicking on a cell in the Image column enables a drop-down list
containing all of the available graphical images. Examples of available images
include traffic lights, circles, flags, checkmarks, boxes, plus and minus signs,
and miscellaneous other images; most of the images are available in multiple
colors. The topmost item in the list is a blank entry, allowing the user to
explicitly map a set of criteria to display no indicator.

Behavior of Graphical Indicators When Editing a Table
When graphical indicators are displayed in a field, the behavior is governed by
the following rules: 
Graphical indicators are aligned based on the column alignment (left, center,
or right) specified in the Align data option of the Column Definition dialog. 
Any data contained in the field is not displayed and is replaced by the
appropriate indicator (except when editing an item). If the field contains a
value that is not covered by any indicator test, the cell will display as blank. 
If “Show data values in ToolTips” is enabled in the Graphical Indicators
dialog, the data value contained in the cell will be displayed as a ToolTip
when the user hovers the mouse pointer over the cell. 
If a cell with an indicator is selected and the cell is not read-only, the
indicator disappears and the underlying data is displayed in the cell and in
the Entry Bar; also, if there is a value list associated with the field, the drop-
down pick list will become available. 
If indicator ToolTips are enabled, the ToolTip is not displayed while the
data is showing in the cell. 
If a read-only cell is selected, the indicator is always displayed and the
Entry Bar always remains blank.
54 Module 3.2

Defining Custom Formulas
Formulas provide the user with the ability to perform custom calculations on
project data and display the result in a custom field. Formulas cannot be defined
for predefined fields.
Formulas are specified at the field level, so only a single formula can be applied
to all instances of a given custom field; formulas cannot be specified for
individual cells. Formulas may reference other fields in the same task, but not
from other tasks. Any custom field with a formula assigned becomes a read-
only field, and cannot be edited by the user, except by modifying or removing
the underlying formula.
The Formula command button in the Customize Fields dialog opens the
Formula dialog shown below, with the selected field name (or renamed alias) as
part of the dialog title:

Figure 21 - Custom Formulas

A description of each of the items in the dialog follows.
Edit formula: A text box where the user can type in a formula or use the
associated controls to select fields or Microsoft® Visual Basic® for Applications
(VBA) functions from a list.
The maximum length of a formula displayed in the edit box cannot exceed 1024
characters. However, the internal limit is set to 10K to allow for changes in the
length of field names (for instance, when custom fields are renamed by the
user). This allows for changes in field names, with out causing the formula to
stop functioning correctly.
If field names referenced by a formula have been lengthened to the extent that
they exceed the 1024-character display limit, when the user attempts to open the
Formula dialog in order to modify the formula the following message will be
displayed:
Module 3.2 55

Figure 22 - Maximum length of formula

If the user clicks OK, the formula will be truncated to the maximum length and
the remaining portion of the formula will be displayed in the Formula dialog. If
the user clicks Cancel, the formula remains intact and the user is returned to the
Customize Fields dialog so that they can shorten field aliases as necessary.
Operator buttons: The mathematical and logical operator buttons below the
formula box (that is, +, -, *, etc.) insert the operator at the current insertion
point when the button is clicked. These buttons all have ToolTips that describe
their operation, as shown in the following table:

Button ToolTip Text Button ToolTip Text

+ Addition ( Left Parenthesis

- Subtraction ) Right Parenthesis

* Multiplication = Equals

/ Division <> Not Equals

& String Concatenation < Less Than

MOD Modulus > Greater Than

\ Integer Division AND Logical AND

^ Exponentiation OR Logical OR

NOT Logical NOT
56 Module 3.2

Import Formula: Opens the Import Formula dialog where the user can copy a
formula from the Global template, from another open project, or from another
field in the current project. When importing a formula, the formula string from
the other field is appended after any existing text in the formula edit box for the
current field. If combining the existing text with the imported formula will
cause the text to exceed the 1024-character limit, the following alert is
displayed:

Figure 23 - Formula cannot be imported

When the user clicks OK, Microsoft Project appends as much of the imported
formula as will fit in combination with the current formula text. None of the
current formula is removed.
Field: Opens a popup menu listing all of the fields in a hierarchical structure
arranged by field type. The menu contains either all task fields or all resource
fields, depending on the Type for the selected field. For task fields, the menu
appears as shown below:
Module 3.2 57

Figure 24 - Formula Fields
58 Module 3.2

Selecting an item from the Field menu collapses the menu and enters the field
name into the formula at the current insertion point. The inserted field is
displayed with square brackets around the field name (for example, [%
Complete])
If a custom field has been renamed, then the alias and the original name both
show in the menu entry in the same manner as they appear in other field lists,
with the alias first, followed by the default name in parentheses (for example,
Salary (Cost4)). Clicking on the combined name inserts only the alias into the
formula (e.g., [Salary]). Though aliases are always displayed in the formula, the
user can type either the alias or the default field name. If default field names are
entered, the alias names will appear in place of the default names once the
Formula dialog has been closed and reopened.

If the user enters many default field names which have aliases longer than the default
names, it is possible that the formula will exceed the 1024-character display limit the
next time the Formula dialog is opened for the selected field.
Function: Opens a popup menu listing all supported functions in a hierarchical
structure arranged by function type:

Figure 25 - Supported Functions

The Function menu includes all intrinsic VBA functions as well as some special
Microsoft Project 2000 functions.
As shown above, each function name is displayed along with its related
arguments. Selecting a function from the Function menu collapses the menu
and enters the function name and the placeholder arguments into the formula at
the current insertion point. The user can then double-click on the placeholder
and replace it by selecting either a field name from the Field menu, another
function from the Function menu, or by just typing in a value.
Module 3.2 59

The special Project 2000 functions available are shown with their arguments in
the following image and are further described below:

Figure 26 - Microsoft Project 2000 Functions Available

ProjDateAdd: Adds a duration to a date and returns a new date based on a
calendar.
ProjDateConv: Converts a value to a date.
ProjDateDiff: Calculates the difference between two dates based on a calendar.
ProjDateSub: Returns the date that precedes another date by a specified duration
based on a calendar.
ProjDateValue: Returns the date value of an expression.
ProjDurConv: Converts a numeric duration value in minutes (which the
expression evaluator returns) to a display format duration with a value and label
in the units specified (e.g., converts 480 to 8h)
ProjDurValue: Returns the number of minutes in a duration.
OK: When the user clicks OK in the Formula dialog, Microsoft Project verifies
the formula syntax, checks for circular references, saves the formula, and then
closes the dialog. Correct functioning and result of the formula is not verified,
since there is potentially an unlimited interaction of functions, fields, and
operators that would make verification overly burdensome. For additional
details on formula calculation and error checking, see “Formula Calculation and
Error Checking,” later in this lesson.
60 Module 3.2

Syntax checking: If the user has incorrectly typed in a field or function name, or
has made some other detectable syntax error such as a missing bracket, the
following message is displayed when the user clicks OK in the Formula dialog:

Figure 27 - Syntax error

When the user clicks OK, they are returned to the Formula dialog with the
invalid item highlighted.
Circular references: If a formula causes a circular reference with other formulas
(for example, if a formula being entered for Number1 depends on the value in
Number2 and Number2 already depends on Number1), the following message is
displayed:

Figure 28 - Circular reference

Pressing OK in the dialog returns the user to the Formula dialog with the
invalid item highlighted.
If the user has left the formula blank, no message is generated when the user
clicks OK; the user is returned to the Customize Fields dialog, with None
selected for Custom attributes (instead of Formula).

Formula Calculation and Error Checking
The Microsoft Jet Expression Service (JES) is used as the expression evaluator
for custom field formulas. This section contains miscellaneous information on
how Microsoft Project custom field formulas work with the JES.
 Formulas can be created that will result in errors, since it is impossible to
check all the possible data types and compute what the type of the result
would be, and there is no way of insuring that all possible results of a
calculation will be within the range of permitted values. Therefore, if the
result of the calculation for a given custom field is invalid, "#ERROR" will
be displayed in the custom field.
Module 3.2 61 

Formula errors cascade to dependent fields, so whenever a calculation
results in #ERROR, all other fields with formulas that reference that field
will also show #ERROR. 
Fields in formulas are replaced with values that are in Visual Basic data
format, rather than the Microsoft Project 2000 internal data format. For
example, duration and work values are in minutes rather than tenths of
minutes, and dates are in vbDate format (a 64-bit (8-byte) number, where
the value to the left of the decimal represents a date, and the value to the
right of the decimal represents a time). 
Estimated durations can be used in formulas, but they will be treated as
normal durations, and the result is not flagged as estimated. 
When calculation is set to Manual in Tools/Options, custom fields will not
recalculate until the user forces a recalculation. When recalculation is
performed, every custom field will be recalculated, since due to
unpredictable formula interaction there is no easy way to detect which
values may have changed. 
If a custom formula is removed, any existing values in the affected custom
field are converted to static data, and the field reverts to its normal user-
editable state.

Formula Examples
In a text field, the following formula will display "zero" if Duration is zero,
"greater than 1" if a task's duration is greater than 1, and "less than 1" if a task's
duration is less than 1 day:
IIf([Duration]=0,"zero",(IIf([Duration]>1440,"greater than
1","less than 1")))

The following formula will take a task name like "My Task" and return only the
left portion of the name, e.g., "My":
Mid([Name],1,InStr(1,[Name]," "))

In a text field, the following formula will display "in progress" if a task is in
progress, meaning it has both Actual Work and Remaining Work. Otherwise, it
will display "not in progress":
IIf(([Actual Work]>0) And ([Remaining Work]>0),"in
progress","not in progress")
62 Module 3.2

The following formula concatenates the first names of the first two resources
assigned to a task, separated by a comma and a space; for example, if the first
resource is “Tom Smith” and the second resource is “Bill White,” the formula
will return “Tom, Bill”. (The formula assumes all resource names are in the
format "Firstname Lastname".):
Mid([Resource Names],1,InStr(1,[Resource Names]," ")-1) & ", "
& Mid([Resource Names],InStr((InStr(1,[Resource Names],"
")+1),[Resource Names],",")+1,InStr((InStr(1,[Resource
Names]," ")+1),[Resource Names]," ")-InStr((InStr(1,[Resource
Names]," ")+1),[Resource Names],","))
Module 3.2 63

Pasting Data Into Custom Fields;
Importing Selective Data

Importing Selective Data
When importing selective data using a data map, if the import/export map
specifies that the data is to be merged into the currently active project, custom
field data must adhere to any value list restrictions for the target field. Any data
that does not match a restricted value list cannot be inserted, and the standard
import error message for invalid data is displayed.
This also means that imported data is ignored and no merge occurs if an
import/export map specifies merging into a field with a formula, since custom
fields based on a formula are read-only.

Pasting Into a Custom Field
When a custom field has a formula, the field is treated as read-only, so the
normal read-only rules apply. Attempting to paste into a field with a formula
generates an error beep just as for any other read-only field.

Custom Field Behavior with Consolidated
Projects and Resource Pools
When projects with custom field attributes are inserted into a master project
with “Link to project” checked, all projects retain their own attributes. The
master project can have its own formulas, value lists, and graphical indicators
which will not affect the subprojects. The subprojects continue to reflect their
own custom field attributes for tasks and summary tasks contained within the
subproject. However, since the project summary tasks for the inserted projects
are considered tasks of the master project, the master project's summary rollup
method and summary formulas will apply to those rows.
On the other hand, if the “Link to project” checkbox is cleared when a project is
inserted, the tasks and resources in the subproject are inserted as if they were
typed directly into the master project, so any custom field attributes are not
carried over. If a master project custom field has a formula, the subproject data
is discarded and the values are calculated based on the master's formula. If a
subproject custom field has a formula and the master does not, the results of the
subproject calculations are just pasted into the master as plain data, similar to
when a formula is deleted. If a custom field in the master has a restricted value
list, the values in the subproject must conform to the list. If any values do not
conform, the following message will be displayed:

Figure 29 - Restricted value list
64 Module 3.2

If the user clicks OK, any non-compliant values are removed from the inserted
data and replaced with the custom field’s default value (if one is defined) or
with the Microsoft Project 2000 default for that field type if no custom field
default is defined.
When pooling resources, the resource pool always takes precedence for
resource custom field attributes. When a project is attached to a pool, the
attributes for all resource custom fields are copied to the sharing project.
Custom field properties can only be viewed or modified by opening the pool
and accessing the Customize Fields dialog within the pool file. In the sharing
project’s Customize Fields dialog, the Formula, Graphical Indicators, and Value
List options buttons are all disabled while connected to the pool.
If a new resource is added to a sharer while the pool is not open and a value list
item is specified for a resource custom field with a restricted value list, and in
the mean time, the original value list in the pool is modified and that same list
item is removed, then when the pool is opened for synchronization the value in
the sharer field will be considered invalid and the following message will be
displayed:

Figure 30 - Value list in Resource pool is modified

When the user clicks OK, synchronization with the pool continues, but the
offending custom field reverts to the default value.
Module 3.2 65

Programmability

Changes to Existing Methods
The following table lists existing Microsoft Project VBA methods that are
either custom field-related or are newly impacted by the enhancements to
custom fields.
Method New or Changed Functionality
CustomizeField Displays the new Customize Fields dialog.
Organizer The Type argument now accepts the new
PjOrganizer constant pjFields for displaying
the Fields tab in the Organizer dialog.
OrganizerDeleteItem The Type argument now accepts the new
PjOrganizer constant pjFields for specifying
Fields as the type of item to delete.
OrganizerMoveItem The Type argument now accepts the new
PjOrganizer constant pjFields for specifying
Fields as the type of item to move.

New Methods
A number of new VBA methods have been provided to work with the new
custom field functionality. The new methods are listed in the following table
along with a brief description. For more information on each method, use the
Object Browser in the Microsoft Project 2000 Visual Basic Editor.
Method Description

CustomFieldProperties Method Sets various attributes associated with
custom fields.

CustomFieldSetFormula Method Sets a formula for a custom field.

CustomFieldGetFormula Method Returns the formula associated with a
custom field.

CustomFieldIndicators Method Sets options for graphical indicators for a
custom field.

CustomFieldIndicatorAdd Adds a test condition for the value of a
Method custom field and associates a graphical
indicator to be displayed in place of the
data when the test is successful.

CustomFieldIndicatorDelete Removes a test condition from a custom
Method field graphical indicator criteria list.
66 Module 3.2

Method Description

CustomFieldValueList Method Sets options for a value list for a custom
field.

CustomFieldValueListGetItem Returns the value, description, or phonetic
Method spelling of an item in the value list for a
custom field.

CustomFieldValueListAdd Adds an item to a value list for a custom
Method field.

CustomFieldValueListDelete Removes an item from the value list for a
Method custom field.
Module 3.2 67

Try This: Create Custom Formulas for Customer Scenarios
Create a customer scenario and then create a formula to fit.

1. With a partner, write down a customer scenario that requires a custom
formula.
2. Create a custom formula that meets the needs of the scenario you created in
step one.
3. Exchange your scenario (but not the formula) with another group.
4. Develop a custom formula that fits the needs of the scenario you received.
5. Discuss your answers with the group you exchanged scenarios with.

Was your formula the same as the formula the other group developed? Did it
really meet the needs of the customer based on the scenario?
68 Module 3.2

Grouping
Grouping allows users to categorize and view rolled up information for their
tasks and resources in a variety of ways, using up to ten fields. Grouping gives
users the following new capabilities:
 Allows multi-level grouping of tasks and resources based on fields specified
by the user, in order to analyze and report project data in a variety of ways.
 Provides non-editable summary header rows for each value in the grouped
field, containing rollup totals similar to a summary task.
 Allows grouping on interval ranges for a given field, to reduce the number
of summary header rows in cases where fields contain a wide variation in
values.
 Allows grouping by custom Outline Code fields.
 “Intelligent” grouping allows users to perform hierarchical grouping based
on a single coding field.

Applying and Defining Groups
Grouping is applied or defined using the new Group By submenu available
from the Project menu. Similar to filters and views, a number of predefined
groups are listed on the menu by default and can be applied simply by clicking
on the desired group name. Predefined groups can also be applied using the new
Group By drop-down available on the Standard toolbar. Groups defined by the
user can be added to the default menu, and default groups that the user does not
want to see can be removed from the menu.

Figure 31 - Default Groups
Module 3.2 69

More Groups/Group Definition
If the user selects More Groups from the Project/Group By submenu, the
following dialog is displayed, which behaves just like the More Filters and
other similar definition dialogs

Figure 32 - More Groups - Task

Figure 33 - Default Groups - Resource

If the user clicks New or Edit in the More Groups dialog, the following Group
Definition dialog is displayed. Each item in the dialog is explained in greater
detail below.
70 Module 3.2

Figure 34 - New or Edit Group

Name: The name to be used for the new group. If one of the default groups was
selected and the user chose Edit in the More Groups dialog, then if a different
name is entered, a copy of the default group will be created and the default
group will remain unmodified. If one of the default groups was selected and a
different name is not entered, any modifications will be made to the default
group.
Shown in menu: When checked, allows the current group definition to be
displayed on the Group By menu so that the user can apply the group easily.
Group By, Field Name, Order: Columns that display the fields to be grouped by
and whether each field will be displayed in ascending or descending order. For
a group definition that contains more than one field, the fields are listed in
descending hierarchical order, similar to the Sort By dialog. Up to 10 fields can
be grouped.
Group by setting for: Allows the user to change the font formatting, cell
background color, and cell pattern to be used for the display of the group
heading summary associated with the field when the group is applied.
Show summary tasks: When checked, summary tasks will be displayed in the
grouped view. For more information on the behavior of summary tasks in a
grouped view, see “Grouping and Rollup Behavior of Summary Tasks” later in
this lesson. Show summary tasks is unchecked by default, and is unavailable if
the group is being defined for resources.
OK: Saves the current group definition and returns the user to the More Groups
dialog.
Module 3.2 71

Cancel: Cancels any changes made to the current group definition, and returns
the user to the More Groups dialog.
Define Group Intervals: For most fields, clicking the Define Group Intervals
button opens the dialog shown below, in which grouping intervals for the
selected field can be defined.

Figure 35 - Define Group Intervals

Define Group Intervals is unavailable for Boolean field types such as Flag
fields, and for fields which make no sense or which might cause a conflict in
connection with application of a custom group order, such as Outline Number.
The options in the Define Group Intervals dialog perform the following
functions:
Field name: Displays the name of the field currently being used to group by.
Group on: Depending on the field type, contains a drop-down list of choices for
grouping the selected field. The drop-down list contents depend on the field
being edited.
Start at: For date fields, this is a drop-down date picker control. For all other
fields, this is a spin control with increments appropriate to the field being
edited. Disabled for field types Custom Outline Codes, Percentage,
Percentage/Number, Notes, and Text.
Group Interval: A spin control with a default value of 1. For Custom Outline
Code fields, the button label is replaced with “Group Level.”
For a more detailed discussion of Group Intervals, see “Interval Grouping” later
in this lesson.
When an interval other than “Each Value” has been defined for a selected field,
the selected interval will be displayed to the right of the Define Group Intervals
button in the Group Definition dialog, so that the user does not have to open the
Define Group Interval dialog in order to see the current setting.
72 Module 3.2

Customize Group By
If Customize Group By is selected from the Project/Group By submenu, the
following dialog is shown, in which the user can customize the behavior for the
currently applied group definition:

Figure 36 - Customize Group By

Note that unless the user chooses to save the customized definition, settings in
the dialog will not be retained if a different group definition (or No Group) is
subsequently applied. Also, when a grouping is applied by clicking OK in the
Customize Group By dialog, unless the definition has been saved, the currently
applied group will be displayed as “Custom Group” in the Group By submenu
and drop-down list.
The items in the Customize Group By dialog behave similarly to those in the
Group Definition dialog as previously described, except that clicking OK
immediately applies the new settings. There are also two additional command
buttons, Save and Reset, whose behavior is described as follows:
Save: Opens the dialog shown below, in which the user can enter a name for the
new group and can optionally specify whether the new group should be shown
in the More Groups menu:
Module 3.2 73

Figure 37 - Customize Group By - Save

If the user clicks Cancel, the group is not saved and the user is returned to the
Customize Group By dialog. If the name entered is the same as for an existing
group definition, the following message is displayed:

Figure 38 - Group already exists

Reset: Clicking Reset returns all settings to their default values, that is, font and
cell formatting are reset to the application defaults, and all field names are
removed from the Field Name column. Note that clicking OK at this point
would have the effect of applying No Group, so to retain the previously applied
groupings, the user should instead click Cancel.
74 Module 3.2

General Grouping Behavior
The general behavior that applies to most grouping is outlined in the following
rules:
1. Group summary headers have no task numbers, that is, the ID column is
blank.
2. The Name column contains the heading for each level in a group definition.
The text in the Name column consists of the field name and a colon,
followed by the field value for the immediately following tasks. For
example, if the grouping is by Priority, there would be headings similar to
“Priority: <number>” for each Priority value contained in the available
tasks. For a grouping by Flag1, the heading would be either “Flag1: No” or
“Flag1: Yes” (because there are only two possible values for a Flag field).
• If the grouping is based on intervals, the Name text will consist of the
field name and a colon, followed by the interval grouping for the
immediately following tasks. For example, if the field is Cost, the
starting value is zero, and group intervals are $1000, the headings would
be “Cost: $0 - $999,” “Cost: $1000 - $1999,” etc.
• If the grouping is by custom Outline Codes, the Name text will consist
of the Description for each outline code level (as defined in the Custom
Field definition dialog). If the Description is blank, the Name text will
be the Outline Code itself.
• If the grouping is by customer fields other than customer Outline Codes,
the Name text will consist of the value only.
3. The display of font formatting, background color and pattern (or “data
banding”) for a group header row, as defined in the Group Definition
Dialog, will begin wherever the Name column appears in the current view
and extend across all columns to the right of the Name column. Formatting
and banding will not be applied to columns that appear to the left of the
Name column. The background color and pattern also appears as a vertical
bar on the leftmost side of the Name column.
If the Name column is not shown in the current view, there will be no obvious
indication that grouping has been applied except for the name displayed in the Group
By submenu and drop-down, because even the display of the vertical color bar is
controlled by the presence of the Name field.
4. Tasks with a blank value for a specified grouping field will be grouped
together at the top of the view, under a group header displaying the field
name but indicating “No Value.” For example, if the field being grouped is
Text1, any tasks having Text1 blank will be displayed together under the
heading “Text1: No Value.”
Module 3.2 75

Figure 39 - No Value Group

5. A separate group summary row is only created for those values that have at
least one entry; no summary item is created if no task meets a particular
value. In other words, if tasks are grouped by Priority, and no tasks have a
Priority equal to 700, then no summary item will be created for Priority:
700.
6. Actions that can be performed on regular summary tasks are not available
for group summary headers. For instance, the Task Information dialog, is
not available, nor is TeamAssign or cut-and-paste operations, and the values
for any fields displayed in the group summary header cannot be modified.
7. Editing individual field formatting is not allowed for any fields displayed on
a group summary header row. Users can only change the formatting for
group summary rows, using options in the Customize Group By or the
Group Definition dialogs.
8. A new default bar style called “*Group By Summary” has been added to the
Bar Styles dialog. The formatting is the same as the default bar style for
summary tasks. Users can change the default formatting, or can define
criteria for new bars using the “Group By Summary” item in the Show
For…Tasks column of the Bar Styles dialog. However, bars cannot be
individually edited.
9. Indenting and outdenting are unavailable, both for group summary headers
and for summary and subtasks.
10. Group summary headers can be expanded and collapsed, and the currently
expanded or collapsed state of a group summary heading will be
“remembered” when the grouping is reapplied. Summary tasks (if
displayed) cannot be expanded or collapsed in a grouped view.
11. For each separate field in a multiple field group definition, grouping can be
by each value or by specified intervals.
12. If a view has been filtered, rollup totals include values only for the filtered
tasks or resources.
13. Grouping is view-specific, so the user can have different grouping applied
in different views. Also, in the View Definition dialog a new Group item
has been added so that a predefined grouping can be included in custom
view definitions.
76 Module 3.2

Figure 40 - New View Definition

14. A new field, “Group By Summary,” is set to Yes for group summary
headers and No for all other tasks. Also, the existing Summary field is set to
Yes for group summary headers.
15. The principal difference between group rollups and summary task rollups is
that while summary tasks can include values entered directly for the
summary task, such as Fixed Costs, Work, or Priority, group rollups contain
only pure rollup values. Fields that can be edited on normal summary tasks
are unavailable for group rollup headers.

Grouping by Outline Number
Because the Outline Number field always exactly matches the project’s task
outline structure, using Outline Number as the primary grouping field allows
the user to keep the project’s outline structure but display rollup totals that
would otherwise not be available. For example, suppose we have the following
list of tasks:

Figure 41 - Group by: Outline Number
Module 3.2 77

If these tasks are grouped using the default Priority Keeping Outline Structure,
the result is as follows:

Figure 42 - Group by: Priority Keeping Outline Structure

Grouping Behavior for Inserted Projects
No distinction is made between tasks from inserted projects and those in the
master project. If the inserted project is expanded, then all its tasks are grouped
as along with the other tasks in the project. This behavior is different for a
regular summary task; its subtasks are still grouped regardless of the state of the
summary task.
If the user wants to see grouping project by project, the field can be included as
the first grouping level.
78 Module 3.2

Interval Grouping
In the Define Group Intervals dialog, the drop-down options available for
various field types are as summarized in the following table:

Field type Group on Start at Interval Notes
Range Range

Currency each value any real any real When grouping by each
interval number number value, $1.10 will be in a
separate group from $1.20
etc. In order that they be in
the same group, the user
will have to group on
interval set to 1.

Currency Rate each value any real any real
interval number number

Date each value Jan 1, integer > 0 The date format used for
minute 1984- display will be the format
hour Dec 31, specified in Tools. Options.
day 2049 View tab.
week The default for Group on is
month 'day'. If the user chooses to
qtr group on each value, dates
year with different times are
placed in separate groups.
If the user is grouping on
'week', the starting day of
week is defined in the
Tools. Options. Calendar
'Week starts on' setting.
Also, for the display of the
year, we will respect the
'Fiscal year starts in' as well
as the 'Use starting year for
FY numbering' settings in
Tools. Options. Calendar.
The 'Start at' datepicker for
date fields sets the
appropriate value
depending on the 'Group on'
item selected. For instance,
if the user is grouping on
'month', the day and time
entered does not matter -
just the month and the year.
The grouping intervals are
then constructed forward
and backwards from that
month and year. The same
Module 3.2 79

Field type Group on Start at Interval Notes
Range Range

applies to the rest of the
'group on' categories.

Duration each value integer integer > 0 This includes duration and
minutes >= 0 work fields. The format for
hours duration fields will be as
days specified in the Tools.
weeks Options. Edit tab. Also, in
months the calculation for duration
and work fields, we will use
the Tools. Options.
Calendar setting for
Hours/day, Hours/Week
and Days/Month.

Integer each value integer integer > 0
interval >=0

Number each value any real any real
interval number number

Custom Outline each value NA NA
Code level

Percentage each value integer integer > 0
interval >=0
0, 1-99, 100

0,1-50, 51-99,
100
0, 1-25, 26-50,
…, 100
0, 1-10, 11-20,
…, 100

Percentage/Number each value integer integer > 0
interval >=0

Text each value NA NA
prefix
characters

Note that when the “Group on” value is “Each Value,” the Group interval is set
to 1 and is disabled. When the “Group on” value is anything else (except as
noted in the above table), the Group interval can be increased to any number
that is valid for the field being edited.
80 Module 3.2

Errors Associated With Start At Values
If the user enters an invalid value for Start at for a date field, the following
message is displayed:

Figure 43 - Invalid value for Start at – Date field

If an invalid Start at value is entered for any other field type, the following
message is displayed:

Figure 44 - Invalid value for Start at - Other field type
Module 3.2 81

Errors Associated With Group Interval Values
If a user enters a value for the Group interval that is out of the valid range or
that does not match the field type (entering text for a number field, for
example), the following message is displayed:

Figure 45 - Invalid Group Interval Value
82 Module 3.2

Grouping By Custom Outline Codes
When one of the custom Outline Code fields is selected for grouping, the
following rules will apply:
1. A grouping header will be created for every value in the lookup table for the
specified Outline Code.
2. Tasks or resources that have a blank outline code value will be grouped at
the top of the view, just as for any other field.
3. Rollups for the non-Outline Code fields in the grouping header will behave
the same as in other situations. If the Outline Code field is one of the
displayed columns, the rollup value will be the value from the lookup table.
4. In a consolidated project, grouping will work across all tasks in all of the
projects, ignoring the projects’ outline structure, except if a project is
collapsed, only the collapsed project summary task will be included in the
grouping.
5. The order of grouping will depend on whether the group is by ascending or
descending order.

Sorting and Filtering
All standard sorting and filtering operations can be performed along with
grouping, either before or after grouping is applied. There are two exceptions
when sorting is combined with grouping; the sorting options to “Permanently
renumber tasks” and “Keep outline structure” are ignored and unavailable. For
filtering combined with grouping, the setting for “Show related summary rows”
is ignored. Any sorting or filtering performed, applies only to the actual tasks or
resources in the project, though the group summaries may be rearranged in
order to keep them with their subtasks after sorting.

Sorting
When sorting is combined with a grouped view, the tasks or resources are
sorted within each group. Group header rows always stay with their subtasks,
and the last operation performed (grouping or sorting) takes precedence in the
arrangement of the group headers.
For example, suppose we have the following list of tasks:
ID Name Work Start
1 T1 24h 1/1/98
2 T2 16h 1/1/98
3 T3 16h 1/2/98
4 T4 8h 1/2/98
Module 3.2 83

If these tasks are grouped by Start (Descending) and then sorted by Work
(Ascending), the following will be the result:
ID Name Work Start
Start: 1/2/98 24h 1/2/98
4 T4 8h 1/2/98
3 T3 16h 1/2/98
Start: 1/1/98 40h 1/1/98
2 T2 16h 1/1/98
1 T1 24h 1/1/98

If the tasks are then regrouped by Start (Ascending), the result is as shown
below. Note that within their groups the tasks remain sorted by Work
(Ascending), but the group headers have been rearranged according to the
group definition.
ID Name Work Start
Start: 1/1/98 40h 1/1/98
2 T2 16h 1/1/98
1 T1 24h 1/1/98
Start: 1/2/98 24h 1/2/98
4 T4 8h 1/2/98
3 T3 16h 1/2/98

Filtering
For non-highlight filtering, the order of applying the grouping or filtering
makes no difference. Grouping will be applied according to standard rules, on
all tasks remaining after the filter is applied.
For highlight filtering, grouping will be the same as when no filter is applied,
except that those items, which satisfy the filter criteria, will be highlighted
appropriately.
84 Module 3.2

Rollup Calculation for Non-Summary Task Fields

General Rollup Behavior for Group Summary Headers
Rollup behavior is essentially the same as for normal summary tasks. For
example, the Work value in a group summary header will be the sum of the
Work value for its subtasks; the Start value will be the lowest Start value for
any subtasks; Finish value will be the highest Finish value; etc.
Though external tasks are grouped along with other tasks, their field values are
not included in group summary header rollup values.

Rollup Calculation of Non-Timephased Task Fields
The value for specific rolled up task fields in a group summary header is
summarized in the following table:

Task Field Type Rollup Function

(Actual Duration /
% Complete Percentage
Duration) * 100

(Actual Work / Work) *
% Work Complete Percentage
100

Actual Cost Currency Sum

Actual Finish - Actual
Start based on project
Actual Duration Duration
calendar and
tools.option setting

Max(if there is an NA,
Actual Finish Date
then value = NA)

Actual Overtime Cost Currency Sum

Actual Overtime Work Duration Sum

Min(if there is an NA,
Actual Start Date
then value = NA)

Actual Work Duration Sum

ACWP Currency Sum

Assignment Boolean No

Assignment Delay Duration No
Module 3.2 85

Task Field Type Rollup Function

Assignment Units Percentage/Number No

Baseline Cost Currency Sum

Baseline Finish -
Baseline Start based on
Baseline Duration Duration
project calendar and
tools.option setting

Baseline Finish Date Max

Baseline Start Date Min

Baseline Work Duration Sum

BCWP Currency Sum

BCWS Currency Sum

Confirmed Boolean OR

Constraint Date Date No

Constraint Type Enumerated No

Contact Text No

Cost Currency Sum

Cost Rate Table Enumerated No

Cost Variance Currency Sum

Cost1-10 Currency Custom Field formula

Created Date MIN

Critical Boolean OR

CV Currency Sum

Date1-10 Date Custom Field formula

Duration Duration Shed. Finish - Sched.
Start based on project
86 Module 3.2

Task Field Type Rollup Function

calendar and
tools.option setting

Baseline Dur. - Sceh
Duration Variance Duration
Dur.

Duration1-10 Duration Custom Field formula

Early Finish Date Max

Early Start Date Min

Effort Driven Boolean No

Estimated Boolean OR

External Task Boolean No

Finish Date Max

Baseline Fin. - Sched.
Finish Variance Duration
Fin.

Finish1-10 Date Custom field formula

Fixed Cost Currency Sum

Fixed Cost Accrual Enumerated No

Flag1-20 Boolean Custom field formula

Free Slack Duration No

Hide Bar Boolean No

Hyperlink Text No

Hyperlink Address Text No

Hyperlink Href Text No

Hyperlink SubAddress Text No

ID Integer No
Module 3.2 87

Task Field Type Rollup Function

Ignore Resource
Boolean No
Calendar

Indicators Indicator No

Late Finish Date Max

Late Start Date Min

Level Assignments Boolean No

Leveling Can Split Boolean No

Leveling Delay Duration No

Linked Fields Boolean No

Marked Boolean OR

Milestone Boolean True if Dur=0

Name Text No

Notes Text No

Number1-20 Number Custom field formula

Objects Boolean No

Outline Code 1-10 Outline Code No

No: All values
Outline Level Integer recalculated based on
grouping structure

Outline Number Text No

Overallocated Boolean OR

Overtime Cost Currency Sum

Overtime Work Duration Sum

Predecessors Integer List No
88 Module 3.2

Task Field Type Rollup Function

Preleveled Finish Date Max

Preleveled Start Date Min

Priority Enumerated No

Project Text No

Recurring Boolean No

Regular Work Duration Sum

Remaining Cost Currency Sum

Remaining Duration Duration Sched. Dur. - Act. Dur.

Remaining Overtime
Currency Sum
Cost

Remaining Overtime
Duration Sum
Work

Remaining Work Duration Sum

Resource Group Text List No

Resource Initials Text List No

Resource Names Text List No

Resource Phonetics Text List No

Response Pending Boolean No

Resume Date Min

Rollup Boolean No

Start Date Min

Baseline Start - Sched.
Start Variance Duration
Start

Start1-10 Date Custom field formula
Module 3.2 89

Task Field Type Rollup Function

End of actual duration of
Stop Date
task

Subproject File Text No

Subproject Read Only Boolean No

Successors Integer List No

Summary Boolean No

SV Currency Sum

Task Calendar Enumerated No

TeamStatus Pending Boolean No

Text1-30 Text Custom field formula

Total Slack Duration No

Type Enumerated No

Unique ID Integer No

Unique ID Predecessors Integer List No

Unique ID Successors Integer List No

Update Needed Boolean OR

WBS Text No

Work Duration Sum

Work Contour Enumerated No

Work Variance Duration Sum

Rollup Calculation of Timephased Task Fields
Timephased task fields do not rollup when in the Task Usage view.
90 Module 3.2

Rollup Calculations for Summary Tasks

General Rollup Behavior for Summary Tasks
Users can choose whether to show regular summary tasks in a grouped view by
selecting the Show summary tasks checkbox in the Group Definition or
Customize Group By dialogs. When summary tasks are shown, they are treated
like non-summary tasks, except that they retain their default summary task
formatting (but not their indentation). Outline symbols are displayed for
summary tasks in a grouped view, but clicking the symbol does not expand or
collapse the summary task’s subtasks.
Group rollup totals will include only the totals attributable to all individual
tasks listed under them. If summary tasks are included, only the totals directly
attributable to the summary task are included in the group rollup total.
However, summary task fields will always include both the totals for their
subtasks plus the totals for any values associated directly with the summary
task, just as they do in non-grouped views. This can have the effect of
displaying rollup group summary totals, which do not appear to be the total of
their subtasks.
This behavior occurs because at the summary task level, summary tasks do not
store work and cost values separately for their own assignments; but group
rollup totals are based on the assignment values for any grouped subtasks,
regardless of whether the grouped subtasks are normal or summary tasks.
For example, consider Figure 46 - Group Rollup – Summary Task. Note that
Summary 2 has resource R2 assigned, and that the Group Work total of 24 hrs
includes 16 hours attributable to R2’s assignment plus 8 hours for R1 assigned
to task Task3.

Figure 46 - Group Rollup – Summary Task
Module 3.2 91

Suppose we have the following two group definitions. Note that the definitions
are essentially the same, except Group 1A has the Show summary tasks option
checked:

Figure 47 - Group 1 Definition

Figure 48 - Group 1A Definition
92 Module 3.2

When Group 1 is applied, we see the following. Note that all totals are correct
for the tasks which are currently displayed, and that totals for summary tasks
are not included.

Figure 49 - Group 1 - Show summary task not selected

When Group 1A is applied; it looks like the total Work should be 32hrs.
However, the Work total for the group summary row “Start: 12/28/99” is
correct at 24 hrs. It is the total of the work group summary rows, 16 hrs for
Summary2 plus 8 hrs for T1.

Figure 50 - Group 1A - Show summary task selected
Module 3.2 93

Rollup Calculations for Specific Summary Task Fields
The value for specific rolled up summary task fields in a group summary header
is summarized in the following table:

Task Field Type Rollup

% Complete Percentage No - Calced

% Work Complete Percentage No - Calced

Actual Cost Currency Sum of assign.

Actual Duration Duration No - Calced

Actual Finish Date Displayed

Actual Overtime Cost Currency Sum of assign.

Actual Overtime Work Duration Sum of assign.

Actual Start Date Displayed

Actual Work Duration Sum of assign.

ACWP Currency Sum of assign.

Assignment Boolean No

Assignment Delay Duration No

Assignment Units Percentage/Number No

Baseline Cost Currency Sum of assign.

Baseline Duration Duration No - Calced

Baseline Finish Date Displayed

Baseline Start Date Displayed

Baseline Work Duration Sum of assign.

BCWP Currency Sum of assign.

BCWS Currency Sum of assign.
94 Module 3.2

Task Field Type Rollup

Confirmed Boolean No

Constraint Date Date No

Constraint Type Enumerated No

Contact Text No

Cost Currency Sum of assign.

Cost Rate Table Enumerated No

Cost Variance Currency Sum of assign.

Cost1-10 Currency Custom Field formula

Created Date Displayed

Critical Boolean No

CV Currency Sum of assign.

Date1-10 Date Custom Field formula

Duration Duration No - Calced

Duration Variance Duration No - Calced

Duration1-10 Duration Custom Field formula

Early Finish Date Displayed

Early Start Date Displayed

Effort Driven Boolean No

Estimated Boolean No

External Task Boolean No

Finish Date Displayed

Finish Variance Duration No - Calced.
Module 3.2 95

Task Field Type Rollup

Finish1-10 Date Custom field formula

Fixed Cost Currency Displayed

Fixed Cost Accrual Enumerated No

Flag1-20 Boolean Custom field formula

Free Slack Duration No

Hide Bar Boolean No

Hyperlink Text No

Hyperlink Address Text No

Hyperlink Href Text No

Hyperlink SubAddress Text No

ID Integer No

Ignore Resource
Boolean No
Calendar

Indicators Indicator No

Late Finish Date Displayed

Late Start Date Displayed

Level Assignments Boolean No

Leveling Can Split Boolean No

Leveling Delay Duration No

Linked Fields Boolean No

Marked Boolean Displayed

Milestone Boolean No - Calced

Name Text No
96 Module 3.2

Task Field Type Rollup

Notes Text No

Number1-20 Number Custom field formula

Objects Boolean No

Outline Code 1-10 Outline Code No

No: All values
Outline Level Integer recalculated based on
grouping structure

Outline Number Text No

Overallocated Boolean Displayed

Overtime Cost Currency Sum of assign.

Overtime Work Duration Sum of assign.

Predecessors Integer List No

Preleveled Finish Date Displayed

Preleveled Start Date Displayed

Priority Enumerated Displayed

Project Text No

Recurring Boolean No

Regular Work Duration Sum of assign.

Remaining Cost Currency Sum of assign.

Remaining Duration Duration No – Calced

Remaining Overtime
Currency Sum of assign.
Cost

Remaining Overtime
Duration Sum of assign.
Work

Remaining Work Duration Sum of assign.
Module 3.2 97

Task Field Type Rollup

Resource Group Text List No

Resource Initials Text List No

Resource Names Text List No

Resource Phonetics Text List No

Response Pending Boolean No

Resume Date Displayed

Rollup Boolean No

Start Date Displayed

Start Variance Duration No - Calced

Start1-10 Date Custom field formula

Stop Date No - Calced

Subproject File Text No

Subproject Read Only Boolean No

Successors Integer List No

Summary Boolean No

SV Currency Sum of assign.

Task Calendar Enumerated No

TeamStatus Pending Boolean No

Text1-30 Text Custom field formula

Total Slack Duration No

Type Enumerated No

Unique ID Integer No
98 Module 3.2

Task Field Type Rollup

Unique ID
Integer List No
Predecessors

Unique ID Successors Integer List No

Update Needed Boolean Displayed

WBS Text No

Work Duration Sum of assign.

Work Contour Enumerated No

Work Variance Duration Sum of assign.
Module 3.2 99

Rollup Behavior of Resources

Non-Timephased Resource Fields
The following table summarizes the rollup behavior of various non-timephased
resource fields when a grouping is performed on resources. Note that the
following behavior only applies when the listed field is not actually one of the
fields being grouped; otherwise the behavior is as described under “General
Grouping Behavior,” earlier in this lesson.

Resource Field Field Type Roll Up function Material
Resource rolled
up?

% Work Complete Percentage Calculated: NA
Act. Work/Total
Work

Accrue At Enumerated No NA

Actual Cost Currency Sum Yes

Actual Finish Date Max (if there is an Yes
NA, then value =
NA)

Actual Overtime Currency Sum Yes
Cost

Actual Overtime Duration Sum No
Work

Actual Start Date Min (if there is an Yes
NA, then value =
NA)

Actual Work Duration Sum No

ACWP Currency Sum Yes

Assignment Boolean No NA

Available From Date Min Yes

Available To Date Max Yes

Base Calendar Text No Yes
100 Module 3.2

Resource Field Field Type Roll Up function Material
Resource rolled
up?

Baseline Cost Currency Sum Yes

Baseline Work Duration Sum No

BCWP Currency Sum Yes

BCWS Currency Sum Yes

Can Level Boolean No NA

Code Text No NA

Confirmed Boolean No NA

Cost Currency Sum Yes

Cost Per Use Currency Sum Yes

Cost Variance Currency Calculated NA

Cost1 - Cost10 Currency Custom Field Yes
formula

Date1 - Date10 Date Custom Field Yes
formula

Duration1 – Duration Custom Field Yes
Duration10 formula

Email Address Text No NA

Finish Date Max Yes

Finish1 – Finish10 Date Custom Field Yes
formula

Flag1 - Flag20 Boolean Custom Field Yes
formula

Group Text No NA

Hyperlink Text No NA
Module 3.2 101

Resource Field Field Type Roll Up function Material
Resource rolled
up?

Hyperlink Address Text No NA

Hyperlink Href Text No NA

Hyperlink Text No NA
SubAddress

ID Integer No NA

Indicators Indicator No NA

Initials Text No NA

Linked Fields Boolean No NA

Max Units Percentage/Number Sum No

Name Text No NA

Notes Text No NA

Number1 - Number Custom Field Yes
Number20 formula

Objects Boolean No NA

Overallocated Boolean No NA

Overtime Cost Currency Sum Yes

Overtime Rate Currency Rate No NA

Overtime Work Duration Sum No

Peak Percentage/Number Max No

Phonetics Text No NA

Project Text No NA

Regular Work Duration Sum No
102 Module 3.2

Resource Field Field Type Roll Up function Material
Resource rolled
up?

Remaining Cost Currency Sum Yes

Remaining Overtime Currency Sum Yes
Cost

Remaining Overtime Duration Sum No
Work

Remaining Work Duration Sum No

Response Pending Boolean No NA

Standard Rate Currency Rate No NA

Start Date Min Yes

Start1 - Start10 Date Custom Field NA
formula

Task Summary Text No NA
Name

TeamStatus Pending Boolean No NA

Text1 - Text30 Text Custom Field NA
formula

Type Enumerated No NA

Unique ID Integer No NA

Update Needed Boolean No NA

Work Duration Sum No

Work Variance Duration Sum No

Workgroup Enumerated No NA

CV Currency Sum Yes

SV Currency Sum Yes
Module 3.2 103

For material resources, fields which are not applicable to material resources will
not be included in rollup totals. These fields include Actual Work, Baseline
Work, Work, Standard Rate, Units, Max. Units, and Peak Units.

Timephased Resource Fields
Timephased resource fields do not rollup when in the Resource Usage view.

More Grouping Examples
For each of the following examples, we will use the following list of tasks:

Name Duration Start Cost
T1 2w 6/16/1997 "$1,500.00"
T2 1w 7/15/1997 "$2,200.00"
T3 3w 12/15/1997 $600.00
S1 3d 1/15/1998 $300.00
S2 4w 3/16/1998 "$1,700.00"
104 Module 3.2

Grouped by Cost, with Group on set to Interval, Start at set to 0,
and interval of 1000:

Grouped by Start, with Group on set to months, Start at set to 05/01/97,
and interval of 3:

Grouped by Duration, with Group on set to weeks, Start at set to 0, and
interval of 2:
Module 3.2 105

Grouped by Name, with Group on set to Prefix Characters and interval
of 1:
106 Module 3.2

Try This: Customer Grouping Scenario
Develop a grouping based on a customer scenario.

1. With a partner, write down a customer scenario where grouping is required.
2. Develop a grouping solution that meets the needs of the scenario developed
in step one.
3. Exchange your scenario (and not the grouping) with another group.
4. Develop a grouping for the scenario that you received.
5. Discuss the results with the other group.

Did your grouping meet the needs of the scenario? Was your grouping the
same as that of the other group?
THIS PAGE INTENTIONALLY LEFT BLANK
PSS Learning Services

Module 3.3

Contents

Lesson 3: Using E-mail Based Workgroup
Features 109
Information in this document is subject to change without notice. The names of companies,
products, people, characters, and/or data mentioned herein are fictitious and are in no way intended
to represent any real individual, company, product, or event, unless otherwise noted. Complying
with all applicable copyright laws is the responsibility of the user. No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose, without the express written permission of Microsoft Corporation. If, however, your only
means of access is electronic, permission to print one copy is hereby granted.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.

© 2000 Microsoft Corporation. All rights reserved.

Microsoft, Active Accessibility, ActiveX, FrontPage, MS-DOS, Outlook, PhotoDraw, PowerPoint,
SQL Server, Visual Basic, Visual C++, Visual J++, Windows, and Windows are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.
Module 3.3 109

Lesson 3: Using E-mail Based Workgroup Features
Overview
E-mail based workgroup messaging has changed little since
Microsoft® Project 98. However, it is important to revisit it to look at the few
changes that have occurred.

What You Will Learn
After completing this lesson, you will be able to:
 Setup and customize workgroup features
 Describe limitations in a multi-lingual environment
 Troubleshoot e-mail based workgroup related issues
110 Module 3.3

Workgroup Setup
Workgroup setup for e-mail has both changed and not changed in
Microsoft Project 2000. For users that do not have Microsoft Project installed,
things are still the same. If a resource that does not have Microsoft Project
installed wants to run workgroup messaging, they must still run
WGSETUP.EXE on their local machine. WGSETUP.EXE has not changed
from Microsoft Project 98. It still uses ACME setup.
Things are different for users who install Microsoft Project. When a user
installs Microsoft Project 2000 on their system, they are not installing the
workgroup messaging components that ship with the product. If they want to
install these components, they must also run WGSETUP.EXE.

Users that want to use e-mail based workgroup messaging components must run
WGSETUP.EXE, even if they have installed Microsoft Project 2000 on their local
machines.
Although the functionality has not changed since Microsoft Project 98, the
components used in workgroup messaging have been updated. The following
files have been updated in Microsoft Project 2000.
File Name Size Version Description
Openmail.exe 144kb 9.0 Open mail MFC
Olmenu.dll 32kb 9.0 Outlook Integration

Users may be running workgroup messaging components from Microsoft Project 98
and not know it. If they have Microsoft Project 98 installed on their system before
upgrading to Microsoft Project 2000, the workgroup messaging components will
remain and should work under most circumstances. Running WGSETUP.EXE from
Microsoft Project 2000 will update these files to their Microsoft Project 2000
versions.
Module 3.3 111

E-mail Clients
Workgroup Messaging still requires a 32-bit MAPI compliant e-mail client. The
clients that Microsoft Project 2000 has been tested to run with are as follows: 
Microsoft Outlook 2000. Earlier versions such as Microsoft Outlook 97 and
98, though not formally tested, will also work. 
Microsoft Exchange on Microsoft Windows 9.x and Microsoft® Windows
NT® 
Microsoft Mail for Microsoft Windows NT 
Lotus cc:Mail 7.0 for Microsoft Windows 9.x and Microsoft Windows NT 
Lotus Notes 4.5a for Microsoft Windows 9.x and Microsoft Windows NT.
Later versions, though not formally tested, should work fine.
112 Module 3.3

Registry and .ini Settings
Workgroup Messaging requires the following registry entries and/or .ini settings.
Note, however, that workgroup messaging will not be functional until windows’
messaging has been installed on the system. The registry entries required by e-mail
based workgroup messaging are as follows:

HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\MS
Microsoft Project\Workgroup Customization
This key reflects the customization options that are available under Tools,
Customize, Workgroup as seen below. Pictured below are the default settings
for Workgroup customization. The fields map is as follows:

Figure 1 - Workgroup Customization in the Registry Setting

Customize Registry
Workgroup
Task Name Field1
Work Field2
Start Field3
Finish Field4
Completed and Field5
Remaining Work
Comments Field6

When additional fields are added through Microsoft Project, they are reflected
in the registry. Below is a snapshot of the registry after adding the fields text1
(field7) and percent complete (field 8). The fields are numbered in the order
they appear on the Customize Workgroup dialog box.
Module 3.3 113

Figure 2 - Workgroup Customization Registry settings

KEY_CURRENT_USER\Software\Microsoft\Mail\Custom Messages
Value Entry: IPM.Microsoft Project.Workgroup Mail
Value Data: 3.0;;;;opml32.dll;openmail.exe
<PARAMBLK>;1111200000000000;;;;
Msmail32.ini (created) – This initialization file is created when windows’
messaging is installed. The entry should contain the same information as the
HKEY_CURRENT_USER\Software\Microsoft\Mail\Custom Messages
registry key and should appear as follows:
[Custom Messages]
IPM.Microsoft Project.Workgroup Mail=3.0;;;;opml32.dll;openmail.exe
<PARAMBLK>;1111200000000000;;;;
These entries allow mail programs that recognize custom message, such as
Microsoft Outlook, Microsoft Exchange, and MS Mail Client to know which
message handler to use to read the custom message. If the Msmail32.ini file is
missing, then the registry settings are used.
114 Module 3.3

Win.ini (modified) – the following section is added to the win.ini file when
Windows Messaging is installed.
[Mail]
MAPI=1
MAPIX=1
OLEMessaging=1
CMC=1
CMCDLLNAME=mapi.dll
CMCDLLNAME32=MAPI32.DLL
Exchange=E:\Program Files\Windows NT\Windows Messaging\exchng32.exe
MAPIXVER=1.0.0.1
The entries MAPI=1 and MAPIX=1 allow Microsoft Project to recognize that
Email messaging is available. If these entries are missing or set to “0” then the
Team Assign, Team Status, and Team Update buttons under Tools, Workgroup
will not be available.
Cc:mail uses windows messaging and will install the same registry and win.ini
settings as Microsoft Windows Messaging.

Note
At least the first two entries are needed for E-mail Workgroup messaging to be
available from Microsoft Project 2000. If these entries are not in place, the Verwijderd: .
Team Status, Team Update, Team Assign, Set Schedule note… menu items are
not available from the Tools, Workgroup menu.
Module 3.3 115

Configuration
Because Microsoft Project uses Microsoft Project Central for Web based
workgroup functions, the configuration dialog box under
Tools/Options/Workgroup has changed.

Figure 3 - Tools/Options/Workgroup

For e-mail based workgroup messaging, simply make certain that e-mail is
selected. Note that there is no longer any option to use both e-mail and Web
based messaging such that resources can track their tasks in either e-mail or a
browser or both. You must use one or the other in Microsoft Project 2000.
116 Module 3.3

Setting Up Resources
Setting up resources to use e-mail based workgroup messaging is the same as in
Microsoft Project 98. It still uses the information found in the e-mail field to
send messages, or it resolves the resource address from the name, just as in
Microsoft Project 98.

Figure 4 - Resource Information dialog

Notice that the Windows Account field is used strictly with Microsoft Project
Central. It does not affect e-mail based messaging at all. Thus if you have a
resource with a Windows Account set but no e-mail address entered,
Microsoft Project will still attempt to resolve an address for the resource based
on the resource name and will not look at the Windows Account information.
Module 3.3 117

Customizing Workgroup Messaging
Customizing workgroup messages has changed slightly in
Microsoft Project 2000. You can now add virtually any task field from your
project to your message. This greatly increases the information you can send.
Although the User Interface has changed slightly, all the options for
customizing Workgroup Messaging have remained the same.

Figure 5 - Customize Workgroup

Behind the Scenes
Because little has changed with e-mail based workgroup messaging in
Microsoft Project 2000, we have a good idea of where users may run into
problems. Let’s take a quick look at what’s going on behind the scenes in two
of these areas and then look at troubleshooting different scenarios.

How Custom Messages Work
One area that’s good to understand is what happens when a message is opened.
When a Workgroup message is sent to a mail recipient that recognizes custom
messages, it is recognized as a custom message by a hidden file named
WINMAIL.dat. Once the message is recognized as a custom message it searches
the registry key HKEY_CURRENT_USER\Software\Microsoft\Mail\
Custom Messages and MSMAIL32.ini files for further instructions.
The custom messages sections in the Registry and MSMAIL32.ini files direct
the Workgroup message to the OPML32.dll file. This file examines the
message, extracts the usable data, and passes it on to OPENMAIL.exe.
118 Module 3.3

When the message is passed on to OPENMAIL.exe, the user momentarily sees a
dialogue box with the title Opening Project Mail, followed by a dialogue box
similar to the one below (depending upon the type of workgroup message being
opened).

Figure 6 - Workgroup Messaging

The MSFLXGRD.ocx file controls the grid where the resource’s information is
entered such as Accept, Work, Start and Finish dates.
Module 3.3 119

Integration with Microsoft Outlook
Another area where it is good to understand what’s going on behind the scenes
is Microsoft Project’s integration with Microsoft® Outlook®.
Microsoft Project 2000 is designed to integrate with Microsoft Outlook. When
WGSETUP is run, it adds the menu item New Team Status Report under the
Actions menu of Microsoft® Outlook® 98 and Microsoft® Outlook® 2000. This
same menu item is added under the Tasks menu of Microsoft® Outlook® 97.
This menu item, which is used to send unsolicited Team Status reports, is
visible only when looking at the Task View from within Outlook. When the
recipient accepts a Team Assign message, the task name is added to the
recipient’s task list in Outlook.
The New Team Status Report menu option is automatically available after
WGSETUP.EXE is run. If there is no New Team Status Report menu item after
running WGSETUP.EXE, it can be added by following the steps below:
1. Search the customer’s hard drive for a file names OLMENU.ecf. This is an
add-in file that Outlook uses to insert the New Team Status Report menu
item.
2. From within Outlook 98 or Outlook 2000, click on Tools, Options and then
click on the Other tab.
(For Outlook 97 click on Tools, Options, General tab, Add-In Manager)
3. Click on Advanced Options… and click on Add-in Manager.
4. There should be an entry that reads Team Status Form. If it is not already
selected click to select it.
(If there is no Team Status Form listed, click Install… and browse to where
the OLMENU.ecf file is located. If this file is not on your hard disk then
you will need to copy it from the installation CD.)
5. Once the OLMENU.ecf file is located, click Open and OK to the remaining
dialogue boxes.

If you are still unable to add or run the New Team Status Report you may need
to copy the OLMENU.dll file into the System folder of your windows root.
Both OLMENU.ecf and OLMENU.dll can be found on the
Microsoft Project 2000 CD.
120 Module 3.3

Troubleshooting Workgroup Issues

There can be a wide range of issues that you may run into with workgroup
messaging. Depending on the issue, you may take different steps. However, you
should at least be able to answer the following three questions before
troubleshooting any workgroup messaging issue:
1. Is the e-mail client program fully MAPI compliant?
2. Is the e-mail client program able to recognize and use custom messaging
(for example Outlook, Exchange, MS Mail)? If not, then there is no need to
check the MSMAIL32.ini or
HKEY_CURRENT_USER\Software\Microsoft\Mail\Custom Messages
settings, as these are specific to custom messaging.
3. If the customer is using a 3rd party mail client, are the file associations set
correctly? The workgroup data file attached to the e-mail message has an
“.mxm” extension.

Workgroup Messaging Details and Troubleshooting
The following are details about the workgroup messaging and some common
problems.
 When a resource gets a message, the year displays only two digits. There is
no way to change this; years will always be two digits.
 When you send a TeamAssign, TeamUpdate or TeamStatus message, an
indicator is displayed. If you want to remove the indicator, you can do so by
switching to the Task Usage view inserting the Response Pending, Update
Needed or TeamStatus Pending field and on the assignment, setting the
value to No.
 When using email based workgroup messaging, you may get the message
"Microsoft Project was unable to load an electronic mail program. Reinstall
your electronic mail program and then restart your computer." It’s possible
that the registry has a setting that is incorrect. Check in the following
location for a key named MAPIDLL:

HKEY_LOCAL_MACHINE\Software\Microsoft\Office\8.0\Common

If this key exists, it likely shouldn't be there and is likely causing the
problem. You can rename the key to something else; restart Microsoft
Project 2000 and retest. Be sure that the Win.ini file has at least the
following:

[mail]
Mapi = 1
Mapix = 1
 If a client machine has the Workgroup features installed (WGSETUP has
been run) and if all messages are being intercepted by Microsoft Team
Manager (MTMAIL.exe) but Microsoft Team Manager isn't on the system
you'll need to completely uninstall WGSETUP and then install. If you just
reinstall, the proper registry settings are not going to be updated that will
allow things to work with OPENMAIL.exe.
Module 3.3 121 

When you open a TeamAssign message received in e-mail, work will
always be listed in hours as long as OPENMAIL.exe has opened the
message. If you see work listed in any thing other than hours, Microsoft
Team Manager (MTMMAIL.exe) has opened the mail. An easy way to tell
this is to look at the bottom of the TeamAssign form where you'll see a
drop-down list labeled "Make changes to:" and a Microsoft Team Manager
plan listed. 
When a project manager accepts a returned TeamAssign message the
associated task may receive a constraint.

You may see this behavior when the following occurs:

1. A TeamAssign message is sent to the resource(s).
2. The task is rescheduled in the project before the project manager
accepts the returned TeamAssign message.
3. The project manager accepts (clicks Update Project) the returned
TeamAssign message.

The task(s) now has a constraint date. The constraint forces the task to
reschedule to the date where it was when the TeamAssign message was sent
-- the agreed upon date. This is by-design. 
When you send TeamStatus messages, the smallest increment of time that a
resource can report time for is 1 day. Therefore, if you have a 1-day task and
a resource reports 1-minute of actual work, the 1-minute is going to spread
across the entire day and pushes out the finish date for the task. This means
that if this task has successors, they too will move because of the task's new
finish date. 
Trying to send a TeamUpdate message may fail if Microsoft Project does
not detect that a change in the task has occurred. This can happen if you
change work on resource assignments and the shuffling of work doesn't
change a task's or assignment's start or finish date. For example, suppose
you have a 1d fixed duration task with resource R1 assigned with 8h of
work. Suppose you've sent a TeamAssign message and R1 accepted and
you've updated the project. If you change R1's work to 16h and try to send a
TeamUpdate message, you won't be able to, because the task is fixed
duration the finish date does not change. Another example would be a 1d
task with R1 and R2 each with 8h of work. If the TeamAssign message has
been sent, accepted and the project updated, if you then change R1's work to
4h and units to .5 and R2's work to 12h and units to 1.5, no change will be
detected and you won't be able to send an Update message. 
If when a workgroup message is clicked to read it, the user may receive a
message that says "Attachment could not be retrieved..." Make sure the
default delivery point in their email profile isn't set to none. To find out,
open the Mail Control Panel and for the given profile, click the Delivery
tab; check the "Deliver new mail to the following location" option for the
correct location. 
When opening a team message from your inbox, you may receive the
message "An error occurred during initialization. The attachment file
could not be opened." If you open the attached file, however, everything
works correctly. This error may occur if your email profile Delivery option
is set to None. Verify by double clicking the Mail icon in the Control Panel,
switch to the Delivery tab and check the option “Deliver new mail to the
following location:” has something other than None selected. The custom
122 Module 3.3

message is trying to find the location of the "active" Inbox, whether it is in a
personal store (*.pst file) or your Mailbox on the mail server.
 If you receive an error message when opening a reply from a team status
report check both the registry entry
HKEY_CURRENT_USER\Software\Microsoft\Mail\Custom Messages
and the MSMAIL32.ini files. They should both have the following value
Under the registry key
HKEY_CURRENT_USER\Software\Microsoft\Mail\Custom Messages
Value Name: IPM.Microsoft Project.Workgroup Mail
Value Entry: 3.0;;;;opml32.dll;openmail.exe
<PARAMBLK>;1111200000000000;;;;
Under the MSMAIL32.ini the entry should read:
IPM.Microsoft Project.Workgroup Mail =3.0;;;;opml32.dll;openmail.exe
<PARAMBLK>;1111200000000000;;;;

3rd party and other Applications
If a user is using workgroup messaging via Lotus Notes, ccMail, Novell
Groupwise or any other MAPI compliant system, the manager must enter
his/her email address into the Tools - Options - General tab - User Name field.
Otherwise when resources try to reply to team messages there will be no
address on the To line.

Note
You can use the friendly name such as John Smith as long as it can be correctly
resolved to the correct email address or enter the actual email address such as
Johnsm or Johnsm@MSN.com.

Requirements to run cc: Mail: service, available for Microsoft Outlook, with
Microsoft Project.
 The post office database must be a DB6 database.
 You do need to make sure that the Win.ini file [Mail] section has at least the
values "MAPI=1" and "MAPIX=1".
 The project manager's name is in the User Name field in the General tab of
the Options dialog.
This ensures that replies to team messages can be sent back to the project
manager.
For information on the requirements for cc:Mail, see the following Knowledge Base
article: Q163290.
PSS Learning Services

Module 3.4

Contents

Lesson 4: Using a Foreign Language 125
Information in this document is subject to change without notice. The names of companies,
products, people, characters, and/or data mentioned herein are fictitious and are in no way intended
to represent any real individual, company, product, or event, unless otherwise noted. Complying
with all applicable copyright laws is the responsibility of the user. No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose, without the express written permission of Microsoft Corporation. If, however, your only
means of access is electronic, permission to print one copy is hereby granted.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.

© 2000 Microsoft Corporation. All rights reserved.

Microsoft, Active Accessibility, ActiveX, FrontPage, MS-DOS, Outlook, PhotoDraw, PowerPoint,
SQL Server, Visual Basic, Visual C++, Visual J++, Windows, and Windows are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.
Module 3.4 125

Lesson 4: Using a Foreign Language
Overview
In this lesson we will discuss the use of foreign languages in
Microsoft® Project 2000.

What You Will Learn
After completing this lesson, you will be able to:
 Discuss the use of the World Wide Executable and Language Pack versus
Localized versions of Microsoft Project 2000.
 Define the difference between a Code Page and Unicode
 Enable languages and keyboards for use in Microsoft Project 2000.
 Install and use the IME.
 Define the requirements for using Help in another language.
126 Module 3.4

Microsoft Project in Different Languages

There are three main groups of languages that Microsoft Project is released in.
These are noted in the table below:
Language Group Language Example Characteristics
European English, Italian, Single Byte Characters
French (256 possible
combinations) Horizontal
Text only.
Bi-directional Hebrew Double Byte Characters
(65,536 possible
combinations) Right-to-left
text with complex text
rendering requirements.
Far East Chinese, Japanese, Double Byte Characters
Korean (65,536 possible
combinations) vertical text,
requires Input Method
Editor (IME)

Microsoft Project 2000 is released in 18 languages worldwide. The specific
language versions that Microsoft Project is released in are as follows:

1. Chinese (Simplified)
2. Chinese (Traditional)
3. Czech
4. Danish
5. Dutch
6. English
7. Finnish
8. French
9. German
10. Hebrew
11. Italian
12. Japanese
13. Korean
14. Norwegian
15. Polish
16. Portuguese (Brazilian)
17. Spanish
18. Swedish
Module 3.4 127

Note
The above lists the languages that Microsoft Project 2000 is released in as
localized versions. This list is different than the available language packs that
run on the English version of Microsoft Project 2000.

World Wide Executable vs. Localized Versions
Microsoft Project 2000, like other Microsoft Office 2000 applications, is
designed to be a worldwide executable. In other words, Microsoft Project’s core
functionality is designed to be language independent. This allows easier
development of multiple language versions of the same product and reduces
Total Cost of Ownership (TCO) for corporations that deploy multiple language
versions of Microsoft Project. It also allows an individual user to create projects
using multiple languages and to utilize menus, online help, and proofing tools
from any language pack that is applied.

Program Structure
Microsoft Project 2000 accomplishes this by using an executable file that is
language independent. This executable (winproj.exe) uses global DLL’s,
supports International Keyboard and Input Method Editor (IME) support, and
allows for localized features to be added separately from the executable. It also
allows for language packs to be applied to the program. Language packs contain
in the designated language, the text that appears in menus and dialog boxes,
help files, wizards, proofing tools, add-ins, and sample files.
The structure of the Microsoft Project 2000 is summarized in Figure 1 below.

Figure 1
128 Module 3.4

LCID Folders
Microsoft Project 2000 (and other Microsoft Office 2000 applications) keeps
language specific information in folders called Local ID (LCID) Folders. LCID
Folders are folders denoted by a four-digit name that is specific to the language.
For example, the LCID number for English is 1033.
There are multiple LCID folders for the same language. They are placed in
locations that are relevant to the information they contain. For example,
templates that ship with the English version of Microsoft Project would be
installed by default to the following location:
C:\Program Files\Microsoft Office\Templates\1033

For more information regarding the locations and contents of LCID files, see the
documentation for the specific language pack you are installing.

Code Pages vs. Unicode
Although Microsoft Project 2000 is able to use multiple languages, in some
cases it is dependent on the underlying operating system. There are differences
between running Microsoft Project 2000 on Windows 9.x and running it on
Microsoft® Windows NT® or Microsoft® Windows® 2000. The difference is
due to how each operating system deals with displaying languages. Windows
9.x uses code pages. Windows NT and Windows 2000 uses Unicode.
Windows 9.x uses Code Pages to display language information. When you
press a key on your keyboard when using Windows 9.x, the corresponding
character is selected from a Code Page. Code Pages are tables of characters
containing a maximum of 256 characters per table. Each language (or set of
languages that use the same characters) is associated with its own code page.
Because only one code page can be accessed at a time, only one language can
be used in most programs.
Unicode is the method used to display language information in Windows NT
and Windows 2000. Unicode is a unified method of displaying every known
character from every known language on earth. It allows for a maximum of
65,536 characters. Because Unicode contains all characters for all languages,
programs and operating systems that use Unicode have no need to switch code
pages and can use multiple languages from within the same program.
Microsoft Project 2000 is Unicode compliant meaning that it will use Unicode
to display language information. However, it is dependent on the underlying
operating system in some situations. To fully utilize Microsoft Project in a
multi-lingual environment, you should run it on either Windows NT or
Windows 2000.
Module 3.4 129

Installing Different Languages

Microsoft Project 2000, like other Microsoft Office 2000 applications, uses
language packs to enable language specific information like text strings and
help files. However, installing a language pack may not be the only step
necessary to use multiple languages in Microsoft Project 2000. First, the desired
language group must be available at the operating system level. For example, if
you install the Japanese language pack on a Windows 9x English system and
you attempt to set Japanese as the default language for your Microsoft Office
2000 applications, you’ll see the following error:

Figure 2 – Unavailable System Language Support

Installing new languages on different operating systems requires different steps.
Each operating system is unique and in some cases such as Windows 9x, you
may not be able to change the operating system to the language of choice. It is
beyond the scope of this course to cover the steps for each operating system. In
this course, however, we will review the steps necessary to install a language on
Windows 2000.

Installing Languages on Windows 2000
Installing a language is a fairly simple process in Windows 2000. Available
languages are found in Regional Options in the Control Panel. On the General
Tab, you will see the option Language Settings For Your System. This option
lists available languages and installs all necessary components to use that
language at the operating system level.
130 Module 3.4

Figure 3 – Windows Regional Options

Note
Be aware that regional settings are different than language settings, even though
regional settings are termed in languages. Regional settings set the way in
which dates, numbers, currency and time are formatted. They are independent
from language settings.

Input Methods
Once the language is installed, you will be able to use it immediately within
Microsoft Project 2000. However, there are some considerations that you
should take into account. First, not all languages are input only via a keyboard.
For example, Japanese uses a tool called the Input Method Editor (IME). The
IME is a floating toolbar that gives you additional options for inputting the
pictographs (or Kanji) that the language uses.
Other languages use hot keys to switch between inputting from one language to
another. The options for all of these different input methods are found on the
Input Locales tab within Regional Options.

Try This: Install the Japanese Language on Your System
Install Japanese at the OS Level

1. In the Control Panel of Windows 2000, click Regional Options.
2. On the General tab in the “language Setting for the System” section, put a
check by Japanese. Click OK and restart your system.
Module 3.4 131

3. After rebooting, go back to Regional Options and click the Input Locales
tab.
4. Click Add and choose Japanese for the Input Locale. Click OK twice.

You should see a small square in your system tray with the letters EN. This
signifies that English is the language that you will enter in. If you click the
square, you will be able to choose Microsoft IME 2000 (Japanese) for
Japanese input.
132 Module 3.4

Language Packs
Microsoft Project Language Pack Install
There are five Multi-language packs available for Microsoft Project 2000.
They are French, German, Italian, Spanish and Japanese.

Microsoft Project Language Pack Settings
The Microsoft Office Language Settings tool is used to make your language
settings for your Microsoft Office 2000 applications. The tool allows you to
change the following language properties.

User Interface (UI) Language
This setting denotes which language you want menus and dialog boxes to be
written in. The UI language setting only applies if the application can natively
display the language you chosen or if a language pack is installed that matches
your UI setting. For example, suppose you have an English system, you have
installed English Microsoft Office 2000, and you have installed the German
language pack. Also, you have set the UI language option to German. If you
install an English version of Microsoft Project 2000 don’t install the German
language pack, Microsoft Project 2000 will appear in English.

Help File Language
This setting allows you to choose the language in which you want online help
topics to be written in.

Figure 4 – User Interface and Help Menu Language Settings
Module 3.4 133

Enabled Languages
This setting allows you to use proofing tools and localized formatting (that is,
for dates, time, etc.) within Microsoft Project 2000.

Installed Language Version
This setting denotes the original language version of Microsoft Office or
Microsoft Project that was installed

Figure 5 – Enabled Languages
PSS Learning Services

Module 3.5

Contents

Lesson 5: Sharing Information 133
Information in this document is subject to change without notice. The names of companies,
products, people, characters, and/or data mentioned herein are fictitious and are in no way intended
to represent any real individual, company, product, or event, unless otherwise noted. Complying
with all applicable copyright laws is the responsibility of the user. No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose, without the express written permission of Microsoft Corporation. If, however, your only
means of access is electronic, permission to print one copy is hereby granted.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.

© 2000 Microsoft Corporation. All rights reserved.

Microsoft, Active Accessibility, ActiveX, FrontPage, MS-DOS, Outlook, PhotoDraw, PowerPoint,
SQL Server, Visual Basic, Visual C++, Visual J++, Windows, and Windows are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.
Module 3.5 133

Lesson 5: Sharing Information
Overview
Microsoft® Project 2000 gives you various ways to share information from your
project. In this section, we will briefly discuss the methods available in
Microsoft Project 98 that have been improved in Microsoft Project 2000. These
include printing, exporting data to Microsoft Office 2000 applications, and
saving Web Pages.

What You Will Learn
After completing this lesson, you will be able to:
 Describe changes to the reporting feature in Microsoft Project 2000
 Describe changes to printing related features in Microsoft Project 2000
 Describe how to find the Analyze Timescaled Data Wizard
 Describe any changes when saving static Web content
134 Module 3.5

Working with Office 2000
Sharing information between Microsoft Project 2000 and
Microsoft Office 2000 has not changed significantly from what was available in
Microsoft Project 98. As in Microsoft Project 98, Microsoft Project 2000 has
the ability to save projects in both Microsoft Excel and Microsoft Access
formats. Microsoft Project 2000 also has the ability to export timescaled data to
be analyzed in Excel via the Analyze Timescaled Data Wizard. Although the
functionality of this tool has not changed in Microsoft Project 2000, its location
has changed significantly.
In Microsoft Project 98, the Analyze Timescaled Data wizard was invoked by
running the Analyze_Timescaled_Data macro. In Microsoft Project 2000, this
macro, along with PERT analysis related macros and the Adjust Dates macros
are now COM add-ins and can be found on the Analysis Toolbar.

If the Analysis Toolbar does not display one of the tools mentioned above, it is likely
because that components has not been registered. To use a missing component, add
the COM Add-ins button to a toolbar and click it. If the desired add-in is not listed,
you must add it. The following files correspond to their respective
Microsoft Project 98 Macros.

Adjust Dates Macro – adjdate.dll

Analyze Timescaled Data – anlyzts.dll

Pert Analysis – pertanl.dll
Module 3.5 135

Printing
Although printing is largely the same in Microsoft Project 2000, there have
been a few improvements. Most of these are found in the Page Setup dialog
box. Lets take a look at them.

Changing Paper Size
You can now control the size of the paper within Microsoft Project. This new
option is found in the Page Setup dialog box under the Page tab. Note that you
can only change paper size to one supported by the selected printer driver. If no
driver is selected, this option will be disabled.

Figure 1

First Page Number
Right below the option to change the paper size, you will find the First Page
Number option. This option allows you to start page numbers at the desired
number. The default for this option is AUTO and will start page numbering at
the number one.
136 Module 3.5

Project Fields in Headers, Footers, and Legends
Microsoft Project 2000 now also allows you to insert Project fields into your
Headers, Footers, or Legends. This allows you to place key information about
your project as a whole at the top or bottom of each page of your printed
document.

Figure 2 - Page Setup Headers

Behind the Scenes
There have also been a few printing improvements behind the scenes. Features
such as scaling, fit-to-page, and placement of text on a Gantt Chart timescale
have all been improved.
Module 3.5 137

Working on the Web
Microsoft Project 2000 is also capable of sharing information by publishing
static information to a web page. (Note that this is different than the dynamic
web solution that is provided by Microsoft Project Central. We will talk about
Microsoft Project Central later on in this course.) The process to save project
information to a static Web page is very similar to the process in
Microsoft Project 98. However, there have been a few improvements.

Copy Picture Command
The first step in saving to a static Web page is to save an image of your project.
This is accomplished via the copy picture command. Looking at the User
Interface, there are no changes to this process. However, this option has been
rewritten to allow users to create better GIF images of their project.
You are still limited to a certain size of GIF file when using Copy Picture.
However the permitted size has been increased over Microsoft Project 98. You
can now create a GIF image 100 inches by 100 inches in size. If you exceed this
size, you are notified by the following alert.

Figure 3 - Copy Picture Options

This alert gives you two options: scale the image to size or truncate the image.
The default is to scale the image. Although Microsoft Project 2000 does a better
job of scaling and maintaining a readable image than Microsoft Project 98, you
can create images that are too large to scale to a readable format. In some cases,
truncating may be a better choice.
138 Module 3.5

Save As Web Page
After creating a GIF image to save with your web page, you can create a static
HTML page by selecting Save to Web Page found on the File menu. Doing so
displays the following dialog box:

Figure 4 – Save As Web Page

Clicking Save takes you to the Export Mapping dialog box.

Figure 5 – Export Mapping
Module 3.5 139

Although this dialog box has changed in its appearance since
Microsoft Project 98, its functionality is the same. Here you can save the
information that you want by selecting, editing, or creating a data map. The
options available within data maps are also identical in functionality to their
Microsoft Project 98 counterpart.

Web Folders and My Network Places
When you are saving a file such as a static web page, you may notice a new
option. When running on Windows 9.x and Windows NT; this option is called
Web Folders. On Windows 2000, this option is called My Network Places. This
feature allows you to create links to locations on a network to which you can
save files. Web Folders in particular allow you to save files to web servers.

Figure 6
THIS PAGE INTENTIONALLY LEFT BLANK
PSS Learning Services

Module 4:
Microsoft Project 2000
Advanced Topics
Contents

Lesson 1: Installing Microsoft Project
Central 1

Lesson 2: Using Microsoft Project Central 24

Lesson 3: Microsoft Project 2000 OLE DB
Provider 56

Lesson 4: Working With Databases 62
Information in this document is subject to change without notice. The names of companies,
products, people, characters, and/or data mentioned herein are fictitious and are in no way intended
to represent any real individual, company, product, or event, unless otherwise noted. Complying
with all applicable copyright laws is the responsibility of the user. No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose, without the express written permission of Microsoft Corporation. If, however, your only
means of access is electronic, permission to print one copy is hereby granted.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.

© 2000 Microsoft Corporation. All rights reserved.

Microsoft, Active Accessibility, ActiveX, FrontPage, MS-DOS, Outlook, PhotoDraw, PowerPoint,
SQL Server, Visual Basic, Visual C++, Visual J++, Windows, and Windows are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.
Module 4: Microsoft Project 2000 Advanced Topics 1

Lesson 1: Installing Microsoft Project Central
Overview
Microsoft® Project Central is a separate software product that integrates with
Microsoft Project 2000 to provide interactive web-based communications for
managing a project. In this lesson we will discuss the installation of
Microsoft Project Central.

What You Will Learn
After completing this lesson, you will be able to:
 List system requirements for installing Microsoft Project Central
 Install Microsoft Project Central
 List and describe components of Microsoft Project Central
 List limitations related to installed browser
2 Module 4: Microsoft Project 2000 Advanced Topics

Setting up Microsoft Project Central
Microsoft Project Central is a web-based application that relies on Internet
Information Server (IIS) and Microsoft® SQL Server (or another database) to
provide web-based workgroup functionality to Microsoft Project 2000.
Although Microsoft Project Central is an application, its architecture is
somewhat different from that of a program such as Microsoft Project 2000.
Microsoft Project Central relies not only on the operating system for
functionality; it also relies on Back Office components IIS and SQL Server.

System Requirements
Microsoft Project Central has the following minimum requirements:
 Microsoft® Windows NT® Server version 4.0 with Service Pack 4 or later,
or Microsoft® Windows® 2000 (Advanced Server or Professional).
 If you use Microsoft® Windows NT® 4.0, then you also need Windows NT
Option Pack 4.0 so that you can install Microsoft Internet Information
Server version 4.0. If you use Windows 2000, you must install
Microsoft Internet Information Server 5.0, which is shipped with
Windows 2000.
 If you use Windows NT 4.0, you must install Microsoft Internet Service
Manager as an option with Microsoft Internet Information Server 4.0. If you
do not have Windows NT Server, you can also use Windows NT 4.0 Option
Pack 4.0 with Windows NT Workstation; however, you will be limited to 10
connections. (To obtain either the Windows NT Service Pack or Option
Pack 4.0, go to: http://www.microsoft.com/NTServer/all/downloads.asp).
 Microsoft Internet Explorer 5, available on the Microsoft Project 2000 CD.
 Microsoft® SQL Server 7.0, Oracle Server 8.0, or Microsoft Data Engine
(MSDE). MSDE is included and installed with the Microsoft Project Central
server setup. MSDE is installed if it's not already on the system and SQL
Server is not installed. Microsoft Data Access Components (MDAC)
version 2.5 is also installed with the Microsoft Project Central server setup.
 Available hard-disk space: 100–150 MB recommended.
 Processor: Intel Pentium 200 MHz or higher, or similar processor.
 Memory requirements: 128 MB RAM or more.
The hard disk and memory requirements are for a default installation. Your hard
disk and memory requirement may vary depending on your configuration and
the options you choose to install.
Module 4: Microsoft Project 2000 Advanced Topics 3

Microsoft Project Central Components
In general, Microsoft Project Central can be thought of in two parts: the Client
Side and the Server Side. The client side refers to the components of
Microsoft Project Central that are necessary to access Microsoft Project Central.
The server side refers to the components that serve up information to the client
via the web.
On the client side we have the following: 
Internet Explorer 4.01 or later, or the alternate Browser Module for
Microsoft Project Central 
Files installed with PJCLIENT.cab
We will discuss the client side and its components in more depth later in this
lesson.
On the server side we have the following components: 
Active Server Pages (ASP) running on IIS 
Microsoft Project Central connected to a database via OLE DB 
A Microsoft Project project connected to Microsoft Project Central via OLE
DB
Each of these components can be thought of as an architectural area. As we
look at the features of Microsoft Project Central in more depth, we will discuss
how each of these three components relates to Microsoft Project Central
features.

Microsoft Project Central Setup
Before viewing those features, however, let’s install Microsoft Project Central.
Like Microsoft Project 2000, Microsoft Project Central uses Windows Installer
during the installation process. Microsoft Project Central has the same general
steps to installation that Microsoft Project 2000 has. Running setup starts the
installation process and displays the following screen:
4 Module 4: Microsoft Project 2000 Advanced Topics

Figure 1 - Welcome to Microsoft Microsoft Project Central Server

After entering your name and organization and clicking Next, you are taken to
the licensing and support information displayed in the following figure.

Figure 2 - Licensing and Support

You must agree to the licensing agreement in order to continue setup. After
agreeing and continuing, you will be prompted to choose between Install Now
and a Custom Install.
Module 4: Microsoft Project 2000 Advanced Topics 5

Figure 3 - Ready to Install

Choosing Install Now installs all necessary Microsoft Project Central
components plus the Microsoft Data Engine (MSDE). MSDE is a scaled down
version of SQL server that is limited to ten connections. It is used as the back
end database for “Install Now” installations.
If you already have MSDE, SQL Server installed, or an Oracle database, you
must choose custom install. You may also want to choose custom installation if
you want to implement tighter security or use Microsoft Project Central for
large groups of resources. We will discuss custom installs later on in this
lesson.
After you choose Install Now, you will be prompted to input a password and to
confirm that password.
6 Module 4: Microsoft Project 2000 Advanced Topics

Figure 4 - Passwords

This password is the system administrator password for MSDE. After inputting
your password, you will see a progress bar. During the installation, you will
also see a dialog box indicating that MSDE is being configured. This
configuration may take several minutes.

Setup Behind the Scenes
Now that we’ve seen the setup process, let’s look at what happens behind the
scenes. During the setup process, there are three main things that are happening:
1. The files necessary to run Microsoft Project Central are being installed and
the necessary registry keys put in place.
2. The Microsoft Data Engine (MSDE) is installed and configured to work
with Microsoft Project Central. This includes running database scripts to
create the necessary tables, fields and default values for Microsoft Project
Central.
3. IIS is configured to work properly with Microsoft Project Central.

Each of these steps is essential for Microsoft Project Central to function
properly. Let’s take a look at each of these steps in more depth.
Module 4: Microsoft Project 2000 Advanced Topics 7

Microsoft Project Central Files and Registry Keys
Microsoft Project Central installs files and uses registry keys much like
Microsoft Project 2000. It installs its files in the C:\ProjectCentral directory. In
this directory it places 18 sub-folders. The sub-folders and a general description
of what each folder contains is shown in the following table:
Folder Name Contains
Admin Contains ASP pages that relate to
Administrative tasks within
Microsoft Project Central.
CustError Contains two HTML files that have
custom error messages for
Microsoft Project Central.
Download Contains the needed components for
the browser to prepare to use OCX
components.
Help Contains on-line help information in
HTML format
Home Contains ASP pages that relate to the
Home page within Microsoft Project
Central.
Images Contains images used within
Microsoft Project Central.
Includes Header files used by other ASP pages.
Isapi Contains main DLL’s for
Microsoft Project 2000 functionality
Library Additional ASP and Microsoft® Visual
Basic® Script info
Logon Contains ASP related to logging on to
Microsoft Project Central.
Objects OCX Controls for browser to connect
Shell More ASP and JavaScript to support
page shell related actions
StatusReports ASP related to status reports
Styles Cascading Style Sheets
Tasks ASP pages related to tasks within
Microsoft Project Central
Templates Contains templates used in generating
web pages related to responding to
messages.
Views ASP pages related to views within
Microsoft Project Central
8 Module 4: Microsoft Project 2000 Advanced Topics

WebCalendar ASP pages related to getting
information from Microsoft®
Outlook®.

The main registry key for Microsoft Project Central is the following key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\9.0\MS
Project\WebClient Server

Within this key are options for the following:
 Languages
 Query File
 Connection Strings
 Username and Password

Microsoft Data Engine
In addition to the files that are strictly Microsoft Project Central files, the
Microsoft Data Engine is installed. It is installed in the C:\MSSQL7 directory.
In some situations you may get a message indicating that MSDE is already
installed on your system. The following registry key indicates that
Microsoft Project Central installed MSDE.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\9.0\Web
Server\SQLInstalledByPRJ

You may have a similar registry key if MSDE was installed by another
application. If such a key exists, Microsoft Project Central will consider MSDE
to be installed, regardless of its actual install state. In such situations, MSDE
must be uninstalled and the registry key removed before Microsoft Project
Central can be installed using the default options.
Module 4: Microsoft Project 2000 Advanced Topics 9

Internet Information Server
During the installation process, Microsoft Project Central also makes some
configuration changes to IIS. First, installation creates a virtual directory (or
application) with the name Microsoft ProjectCentral. This virtual directory is
pointed at the local directory C:\ProjectCentral. Permissions on this virtual
directory are set for Read only. For the application Microsoft Project Central,
Execute Permissions is set to Scripts and Executables.

Figure 5 - Microsoft Project Central Properties – Virtual Directory

After the above are done, installation sets and enables default documents for the
application. These files are located in the local directory C:\ProjectCentral.
They are default.asp and default.htm. These documents are enabled as the
default documents via the documents tab as shown in the following image.
10 Module 4: Microsoft Project 2000 Advanced Topics

Figure 6 - Microsoft Project Central Properties - Documents
Module 4: Microsoft Project 2000 Advanced Topics 11

After the default documents have been enabled, authentication options are set
for the application as a whole. These options are accessed via the Directory
Security tab as shown below.

Figure 7 - Microsoft Project Central Properties - Directory Security
12 Module 4: Microsoft Project 2000 Advanced Topics

Clicking on the Edit button underneath Anonymous Access and Authentication
Control takes you to the following dialog box.

Figure 8- Microsoft Project Central Properties - Authentication Methods

At the application level, only Basic Authentication and Integrated Windows
authentication should be checked. (Note that there are also two individual files
on which we will configure authentication options and that their options are
different. We will discuss their configuration later on in this lesson.) In some
cases where security issues dictate, it is possible to turn off Basic
Authentication.
Module 4: Microsoft Project 2000 Advanced Topics 13

After Authentication options are set for the application as a whole, custom
errors are set for the application. This is done via the custom errors tab shown
below.

Figure 9 - Microsoft Project Central Properties - Custom Errors

Microsoft Project Central has two custom error messages. In the above dialog
box we can see that each of these messages are stored in basic HTML files
located in the C:\ProjectCentral\custerror directory.
14 Module 4: Microsoft Project 2000 Advanced Topics

Once Custom Errors have been configured, Microsoft Project Central
Installation configures authentication options for two individual files. The first
is pjdbcomm.dll located in the C:\ProjectCentral\ISAPI directory. Its
authentication options are set as shown in the following figure:

Figure 10 - Microsoft Project Central Properties - Authentication

Anonymous Access must be enabled. Basic Authentication and Integrated
Windows Authentication are also both enabled. Basic Authentication may be
disabled, however.
Module 4: Microsoft Project 2000 Advanced Topics 15

The second file whose authentication options are set is BasicAuth.asp. This file
is located in the C:\ProjectCentral\logon directory. Its authentication options are
set as shown in the following figure:

Figure 11 - Microsoft Project Central Properties - Basic Authentication

Anonymous Access and Integrated Windows Authentication are not enabled.
Basic Authentication is enabled.
16 Module 4: Microsoft Project 2000 Advanced Topics

Working With Databases other than MSDE
There are some situations where you may prefer to use a database other than
MSDE as the back end for Microsoft Project Central. Such situations include
those where you desire a more scalable web-based solution. For example, if you
have hundreds of resources connecting simultaneously to Microsoft Project
Central, you would want to use a more scalable database like Microsoft SQL
Server. Microsoft Project Central supports using MSDE, SQL Server, and
Oracle as its back-end database.

Preparing the Database
Before you can use a database with Microsoft Project Central, you must first do
some preparatory work. The database program must already be installed, a
database created, and the necessary tables and fields created before Custom
Installation can be run.

Database Installation and Creation
As mentioned above, Microsoft Project Central supports using both
Microsoft SQL Server and Oracle. These can be installed on either the same
server machine as Microsoft Project Central, or on another machine to which it
has a network connection. It is beyond the scope of this course to discuss either
the installation of SQL Server and Oracle or the creation of databases in either
of these products. For this help, please refer to the product documentation or
support offerings for these products.

Creating the Necessary Tables and Fields
Once a database is created, you must create the specific tables and fields that
Microsoft Project Central uses. Running three scripts that come with
Microsoft Project Central most easily creates these tables and fields.
These scripts are located in the following directory on the install media or
install folder:
…\ProjectCentral\ISAPI\1033
For Microsoft SQL Server, these scripts are Crttable.sql, Insdefsq.sql and
Insdefsi.sql. For Oracle, these scripts are Crttblor.sql, Insdefor.sql and
Insdefoi.sql.

On Oracle, in addition to creating the necessary tables and fields, you must install the
Oracle Net8 Client on the Microsoft Project Central server before Microsoft Project
Central will work correctly.

For more information, see the srvrsetup.htm document that ships with
Microsoft Project Central.
Module 4: Microsoft Project 2000 Advanced Topics 17

Try This: Run Scripts to Create Microsoft Project Central Tables and Fields
Run the scripts that ship with Microsoft Project Central.
1. Following the steps in the srvrsetup.htm document that ships with
Microsoft Project Central, identify the three scripts necessary to create the
tables and fields for Microsoft Project Central.
2. Using a text editor, examine the contents of each script.
3. Run the scripts from the command line and examine the database.

Based on your examination of the scripts, does everything look as you
expected? If no, what looks different?
18 Module 4: Microsoft Project 2000 Advanced Topics

Running Custom Installation
Custom installation is very similar to the Install Now option. In fact, only one
dialog box is different. That dialog is shown below:

Figure 12 - Custom Installation

The information asked for in the above dialog is necessary in order for
Microsoft Project Central to connect to the prepared database. Let’s look at
what each option is specifically asking for.
Database Selection – this selection simply asks if you are using SQL Server or
Oracle. Note that SQL and MSDE are grouped together. This is because MSDE
is essentially SQL server. It is simply a scaled down version of the database.
Database Server – this option asks for the name of the database server. This is
usually the machine name of the computer on which the database is running.
Logon Information – This information asks for the user name and password
necessary to logon to the database. By default the user name will be sa and the
password will be blank.
Database Name – The database name is the specific database in which the
Microsoft Project Central tables and fields were created. This option is not
available if you are using an Oracle server.
Module 4: Microsoft Project 2000 Advanced Topics 19

Try This: Custom Install Microsoft Project Central
Install Microsoft Project Central to your local SQL Server.

1. Run setup from the location provided by the instructor.
2. During setup, choose to do a custom installation.
3. Enter the appropriate information to install Microsoft Project Central to use
the database created in the previous try this.
4. Make certain to test your connection.
5. Finish Microsoft Project Central installation.
20 Module 4: Microsoft Project 2000 Advanced Topics

Preparing a Project to Use Microsoft Project Central
To use Microsoft Project Central with Microsoft Project 2000, you must set
your Workgroup Options similar to the following:

Figure 13 - Microsoft Project 2000 Workgroup Options

Default workgroup messages must be set to Web and a URL for the
Microsoft Project Central Server must also be input.
Microsoft Project Central also has two options for project managers logging
onto it. Identification can be accomplished via a Microsoft® Windows® user
account or by creating an account specific to Microsoft Project Central.
Accounts specific to Microsoft Project Central are stored in the
Microsoft Project Central database and are a specific function of
Microsoft Project Central.
The “Identification for Microsoft Project Central Server” option is the account
that the project manager communicates with to the Microsoft Project Central
Server and is the account the manager logs on with to Microsoft Project Central
when using a browser. If the “Windows user account” is selected, this is the
Module 4: Microsoft Project 2000 Advanced Topics 21

account the manager has logged onto their computer with. The “Microsoft
Project user name” option corresponds to an existing Microsoft Project Central
account or an account that will be created.
Once the above options have been set, Workgroup Messaging (from the project
manager perspective) works similarly as it did in Microsoft Project 98. Team
Assigns, Updates, and Status Reports are sent from Microsoft Project to the
resources using Microsoft Project Central. Messages sent from
Microsoft Project 2000 to Microsoft Project Central are buffered via the
Microsoft Project Central Spooler.

Microsoft Project Central Spooler
The Microsoft Project Central Spooler is a simple application that resides in
your system tray when you send Team Assigns, Updates, or Status Reports to
your resources on Microsoft Project Central. This application takes the
messages from Microsoft Project 2000 and handles the transmission of them to
Microsoft Project Central. This allows you regain control of
Microsoft Project 2000 much sooner than if Microsoft Project 2000 handled the
transmission itself.
The Microsoft Project Central Spooler also allows you to rollback
Microsoft Project 2000 if, for some reason, your messages could not be sent to
Microsoft Project Central. The spooler alerts you to such a situation by
displaying an exclamation mark on top of its icon in the system tray. To
rollback, simply click the icon to display the Microsoft Project Central Spooler.
Then click Rollback Project on the Actions menu. This will return your project
to the state previous to when you sent the last set of workgroup messages.

Try This: Sending Workgroup Messages
Attempt to send workgroup messages to Microsoft Project Central.

1. In a new project, create three tasks and assign a new resource to each.
2. Configure your Project to use Microsoft Project Central for workgroup
messaging. Point to your local server.
3. Send a team assign to your resources.

Were you successful in sending the messages?
22 Module 4: Microsoft Project 2000 Advanced Topics

Connecting to Microsoft Project Central
To connect to Microsoft Project Central, you must have Internet Explorer 4.01
or later installed on your system. Other browsers do not support ActiveX
controls in the fashion needed. If you do not want to install Internet Explorer,
you must install the Browser Module for Microsoft Project Central. This allows
you to continue using the browser of your choice for surfing the Web, but
allows you to use the Browser Module to use Microsoft Project Central
correctly. It does this by enabling Internet Explorer functionality in Windows,
but not registering itself as a browser. The Browser Module for
Microsoft Project Central cannot be used as a web browser to view non-
Microsoft Project Central sites.
To install the Browser Module, complete the following steps:
1. Run Setupclt.exe from the installation source.
2. Choose either Install Now or Customize. If you choose Customize, the only
option you can change is the installation location.
3. After setup has finished, from the Windows Start menu, click Programs and
then click Browser Module for Microsoft Project Central.
4. Inside the Browser Module, go to the Tools menu and click Server Settings.
5. Click Add and enter a server name and its address in the format
http://<YourServerName>/<VirtualDirectoryName>. An example of a valid
address would be http://MyServer/ProjectCentral.
6. Click OK twice.

The default connection state for the Browser Module is LAN without proxy
server. If you need to use a proxy server to communicate with your Web Server,
do the following:
1. On the Tools menu, click Internet Options.
2. Click the Connections tab, and then click LAN Settings.
3. Type the appropriate proxy information and click OK.

Note that the Browser Module for Microsoft Project Central uses the same
connection configuration as that found in the Control Panel. Thus changing this
information may affect other applications as well.
Module 4: Microsoft Project 2000 Advanced Topics 23

Using Internet Explorer
If you have Internet Explorer 4.01 or above already installed, you can use it to
connect to your Microsoft Project Central Server. The first time you attempt to
connect however, Microsoft Project Central will download a file called
PJCLIENT.CAB. It contains the following files, which are installed on the
client machine: 
Pjcalendar.ocx 
Pjgrid.ocx 
Pjoffline.ocx 
Pjoutlook.ocx 
Pjquery.ocx 
Pjres9c.dll 
Pjsecurity.ocx 
Pjtextconv.dll 
Pjupdate.ocx 
Riched20.dll

These files are used by Internet Explorer to connect to Microsoft Project
Central and to render information correctly. In the event that the client machine
does not have the proper MDAC components installed, MDAC 2.1 will also be
installed on the client machine.
24 Module 4: Microsoft Project 2000 Advanced Topics

Lesson 2: Using Microsoft Project Central
Overview
In this lesson we will look at the features of Microsoft Project Central and
discuss usage of the product. We will also discuss usage in a multi-lingual
environment.

What You Will Learn
After completing this lesson, you will be able to:
 List features of Microsoft Project Central
 Use Microsoft Project Central features such as delegate tasks, update
projects, and view reports
Module 4: Microsoft Project 2000 Advanced Topics 25

Logging onto Microsoft Project Central

When you log onto Microsoft Project Central, you will have different options
available to you depending on which type of user you log in as. This is not a
setting that you can control (unless you are the administrator) but rather it is an
intrinsic part of your account on Microsoft Project Central.

User Types
There are three types of users for Microsoft Project Central. They are:

Resources
Resources are those people assigned to particular tasks within a project.

Managers
Managers could be either Project Managers or managers who simply need to
see information regarding a particular resource, but not a project as a whole.

Administrators
Administrators manage the Microsoft Project Central web site. This user type
manages users, views, and other Microsoft Project Central configuration
information.

Features of Microsoft Project Central
What features are available on Microsoft Project Central depend on the type of
user logging onto it. Available features expand as users move from a user type
of Resource to Manager to Administrator. Below we will detail each of the
available features for each user type.

Resource’s Features
Resources have the following areas:

Messages
Messages gives you an inbox that shows you the messages received from your
manager or other resources (in the case of delegation.) When opening the
messages page, you will be presented with a page similar to the following that
will list all messages in your inbox.
26 Module 4: Microsoft Project 2000 Advanced Topics

Figure 14 - Microsoft Project Central Resource - Messages

If you click on the subject of the message, you will open the message. Doing so
will present you with a page that looks similar to the following:

Figure 15 - Messages – Delete/ Reply

Here you have the option of deleting the message, going to the next or previous
message (if available) or replying to the message. If you choose Reply, you are
presented with a page that looks similar to the following:

Figure 16 - Messages - Accept/Reject
Module 4: Microsoft Project 2000 Advanced Topics 27

Here you may enter comments, accept or reject messages. Notice also that you
have the ability to use active filters to better view tasks in the table. Once you
have made any changes that you want to make, you can send or close the
message.

If you choose close, any changes you made such as comments will not be saved.
Closing a message simply closes the message and none of your customization will be
saved. Even if you use the back option of your browser, any customization will be
lost.
28 Module 4: Microsoft Project 2000 Advanced Topics

Change Password
The change password feature is not available to those users that log on to
Microsoft Project Central using a Windows Account. These users are logged
onto Microsoft Project Central automatically and do not need to enter their
password. Users that use Microsoft Project Central security to log onto
Microsoft Project Central will have the change password feature.
The change password page is similar to many other change password dialog
boxes. It requires that you enter the old password and then type the new
password twice to confirm it. Note that changing your password here does so
only for Microsoft Project Central and in no way affects you Windows Account
password. If your password is forgotten, the administrator can reset it. The
change password screen is shown below:

Figure 17 - Microsoft Project Central - Change Password

Timesheet
The Timesheet page displays your tasks from all projects in which you are
involved. This page can be divided into three main areas: View Options, Filter
and Grouping, and Delegation.

View Options
The view options section gives you control over how you see your tasks. You
can show Scheduled Work, Overtime Work, and Summary Tasks. You can also
choose to show tasks that appear in your Microsoft® Outlook® Task List. Note
that you must select “Show Outlook Tasks” and click Apply before they will
appear in your list. Outlook tasks appear at the bottom of your list under a
Summary Task marked Outlook Tasks.
When you choose to show Outlook tasks, you should also note that these tasks
would only be displayed for this instance of the Timesheet page. If the “Always
Show Outlook Tasks” option is not selected and you go to another page in
Microsoft Project Central and then go back to the Timesheet page, your
Outlook tasks will not be displayed. This is true even if you do not log off
Microsoft Project Central. Outlook tasks are brought into the Microsoft Project
Central task list using OLE Automation, similar to the method used to import
Microsoft Project tasks into Microsoft Outlook in Microsoft Project 98 when a
Team Assign message is accepted by a resource.
Module 4: Microsoft Project 2000 Advanced Topics 29

If you log onto Microsoft Project Central on a computer where another user who is
currently logged in has an Outlook session running, your Outlook tasks will not be
displayed in Microsoft Project Central. Instead, the other’s user’s tasks from Outlook
will be displayed in your task list within Microsoft Project Central. To correct this,
the other user must completely exit the current Outlook session. Then when you
choose to display Outlook tasks in your Microsoft Project Central task list, you will
have the opportunity to select the profile used.

View Options also give you the ability to choose the timescale and timescale
period used to the right of the table. The View Options of the Timesheet page is
shown below.

Figure 18 - Microsoft Project Central - Views

In the View Options you can also enter and report actuals and add new tasks.
Entering actuals on this page is similar to entering actuals in a Usage view
inside Microsoft Project 2000. Actual values are recorded for the corresponding
times that you wish to report on. Note that it is not necessary to record actuals
and send them to your manager immediately. Actual values can be saved by
clicking on the Save Changes button at the top of the page. Doing so gives you
the following dialog box:

Figure 19 - Microsoft Project Central - Reporting Actuals
30 Module 4: Microsoft Project 2000 Advanced Topics

When you choose to send a status report to your manager, simply click the Send
Update button. Doing so will display the following alert:

Figure 20 - Microsoft Project Central - Status Report

Note
Note that the reporting period for the Task Update depends on the dates set in
the “Show timescale period from” option. Note also that you must press apply
for any changes in those dates to take affect.

Filter and Grouping
The filter and grouping section of the Timesheet page allows you to view
information in ways that help you understand your tasks better. It allows you to
apply select filters or group your tasks at two levels. It is shown below:

Figure 21 - Microsoft Project Central - Filtering/Grouping
Module 4: Microsoft Project 2000 Advanced Topics 31

Microsoft Project Central allows you to apply one of eight filters to your tasks.
They are as follows: 
All Tasks 
All Tasks Created by Resource 
All Completed Tasks 
All Incomplete Tasks 
All Tasks Deleted in Microsoft Project 
All Newly Assigned Tasks 
All Overdue Tasks 
All Tasks Changed by a Manager
Microsoft Project Central does not have any functionality that allows you to
create your own filters. However, you do have the option of using Active
Filters. This allows you to filter on any value within any displayed field.
You also have the option to group your tasks. Grouping can be done by Project
Name, Start Date, Work, or Task Name. You can also group at a second level
by any of the above. Microsoft Project Central does not have any functionality
that allows you to create custom groupings. However, as custom fields are
added, you my group on those fields. For example, if the project manager adds
the hyperlink field to workgroup messages (Tools – Customize – Workgroup)
this field will appear in the resource’s task list and the resource can then group
on this field.

Delegation
Delegation allows you to delegate tasks to other members of Microsoft Project
Central. This option must be allowed by your manager in order for it to be
enabled. The Delegation section of the Timesheet page is shown below:

Figure 22 - Microsoft Project Central - Delegation

To Delegate a task, select the task and click the Delegate button. This will
display the following page:
32 Module 4: Microsoft Project 2000 Advanced Topics

Figure 23 - Delegation – Which Resource

Here you can choose whom you wish to delegate the task to, whether or not you
wish to assume a lead role for this task, and whether or not you wish to track
this task. Assuming a lead role means that you will receive actuals for the task
and must in turn report them to the manager. If you choose to track a delegated
task, it simply means that the task will remain in your timesheet and that you
will be able to see actuals entered on the task.
Once you have made the above choices, you must click the Next button. This
displays the following page:

Figure 24 - Delegation - Information

Here you have the options to enter a text message to the person you are
delegating the task to and to make any last minute changes to the task. Note that
you can also change the options you selected on the previous page. Once you
are finished, you must click the Send button to finish delegating the task. Doing
so displays the following alert:
Module 4: Microsoft Project 2000 Advanced Topics 33

Figure 25 - Delegation Confirmation

If you originally decided to assume a lead role for a task and subsequently
decide to relinquish this role to someone else, you can do so by clicking on the
Delegate Lead Role button. If your manager has not updated the delegated task,
you will receive the following alert:

Figure 26 - Delegated Task not updated

If your manager has updated the delegated task and you click on the Delegate
Lead Role button, you will receive the following page:

Figure 27 - Delegate Lead Role
34 Module 4: Microsoft Project 2000 Advanced Topics

Here you can specify to whom you wish to delegate the lead role and add any
comments on that task. Clicking next allows you to make any last minute
changes and send a message with the role delegation. To finish the process,
click send. You will then be returned to the Timesheet page.

Personal Gantt
The Personal Gantt allows you the same options as the Timesheet. It simply
displays a Gantt Chart to the right of your task list. Note: The bars represent the
resource’s assignment on a task and not the actual task. If, for example, a task
is scheduled to from 1/1/00 to 1/15/00, but the resource is scheduled from
1/5/00 to 1/7/00, the bar is drawn from 1/5/00 to 1/7/00. The only additional
option you have with the Gantt Chart is the zoom control. The Gantt Chart Page
is shown below.

Figure 28 - Microsoft Project Central - Personal Gantt

Note
You can toggle between the Timesheet and Gantt Chart by using the button
directly above the Gantt Chart.
Module 4: Microsoft Project 2000 Advanced Topics 35

New Task
Microsoft Project Central allows you to add new tasks to your list. To do so,
click the New Task button. Doing so displays the following page:

Figure 29 - Microsoft Project Central - Add Task

Here you can specify the project the task should appear in (if there are multiple
projects you are working on) and if the new task should be a subtask of another,
existing task. You can also specify the name of the task, start date, and work
involved in the task.
Once you have indicated the necessary information, you must click Create
Task. This puts the new task in your task list but does not automatically send it
to your manager. Tasks that have not yet been sent to your manager will have a
plus sign in the indicator column of the task list. New tasks will be sent to the
manager as part of any task updates that you send.

Transfer Outlook Calendar
Transfer Outlook Calendar allows you to transfer non-working time from your
Outlook calendar into Microsoft Project Central. Clicking on this option takes
to a page that is the first in a series that form a wizard that leads you through the
steps of transferring your Outlook calendar information. This page is shown
below.
36 Module 4: Microsoft Project 2000 Advanced Topics

Figure 30 - Transfer Non-Working time

Here you can select to send the update to your manager or to your Timesheet.
Sending the items to your manager allows him to see non-working time and
update the project appropriately. Sending the items to your timesheet does not
allow your manager to see the non-working times. The transferred items are not
shown even when a task update is sent. Clicking on Next takes you to the
following page:

Figure 31 - Outlook – Transfer Nonworking time update

This page allows you to choose the time period from which you wish to transfer
your Outlook calendar items from. You have options of choosing a pre-defined
period or specifying the time period yourself. You also have the option of
specifying the time limit of the items you’d like to transfer. Clicking Next takes
you to the following page:
Module 4: Microsoft Project 2000 Advanced Topics 37

Figure 32 - Outlook Transfer - Time Period

Here you are given lists of items to be transferred to Microsoft Project Central.
If you chose to transfer the items to your Timesheet, you must independently
choose to send each item to the timesheet and you must also specify the
category you wish to send it to. Clicking Next provides a list of Managers to
select and send an update to.

Figure 33 - Microsoft Project Central - Update Managers

Clicking Next gives you a preview of the information to be sent to your
Timesheet as shown below.
38 Module 4: Microsoft Project 2000 Advanced Topics

Figure 34 - Microsoft Project Central - Entries from Outlook

Clicking send will give you a confirmation alert that your timesheet has been
updated.

Work Day Change
This feature gives you a three-step process by which to change your working
time. The first page is shown below:

Figure 35 - Microsoft Project Central - Work Day

Here you specify the period you want to change and you specify whether you
are changing it from working to non-working or vice-versa. Clicking on next
takes you to the following page:
Module 4: Microsoft Project 2000 Advanced Topics 39

Figure 36 - Microsoft Project Central - Work Day Changes Sent to Managers

Here you specify which person you would like to send your update to. Clicking
Next takes you to the final screen shown below:

Figure 37 - Microsoft Project Central - Work Day change

Here you review the information that will be sent. Clicking the Send button
sends the information to those you specified in the second step.

Delegation
Selecting this option takes you to the Delegation section of the Timesheet view.
For more information on this feature, see Timesheet above.

Overview (of Views)
The Overview page simply gives you a page that leads you to the next two
options: View your Portfolio and View Assignments. Both of these options are
views.
40 Module 4: Microsoft Project 2000 Advanced Topics

Views allow you to see only certain areas of projects or views allow you to see
more than just the tasks you are working on and it allow managers to
communicate critical information about their projects. The Microsoft Project
Central administrator designates the views that workgroup members can use to
see project information and defines exactly what information users can see.
The project manager may need to coordinate with the system administrator to
be sure all users can view the information they need.

View Your Portfolio
A portfolio allows you to view multiple projects within Microsoft Project
Central. As a project team member, you can view detailed information about
projects as specified by your system administrator in your portfolios. Below is
an example of just such a portfolio view.

Figure 38 - Microsoft Project Central - Portfolio

View a Project
When you see a project in the Portfolio view, you have the option to “open in
Microsoft Project” or to “drill in-to” to see the project. If you open the project
in, the project is loaded into Microsoft Project where you can then view, print,
make changes, etc. This option requires that Microsoft Project 2000 be installed
on the computer.
If you drill into the project by clicking the task name, the project is loaded from
its original location (an MPP file on a network file share or in a database such
as Microsoft SQL Server) using the Microsoft Project 2000 OLE DB provider.
The pertinent information is extracted and the results are displayed in the
browser using the same control that displays the user’s Timesheet. Drilling into
a project does not require Microsoft Project 2000 to be installed on the system.
This makes it ideal as a project viewer. Below is an example of a Project View:
Module 4: Microsoft Project 2000 Advanced Topics 41

Figure 39 - Microsoft Project Central – Project View

View Assignments
The view assignments page allows you to see assignment information contained
within Microsoft Project Central for assignments that you normally would not
have permission to see. Below is an example of an assignment view.

Figure 40 - Microsoft Project Central - Assignments

Overview (of Status Reports)
Status Reports in Microsoft Project Central are similar to those from Team
Manager. Instead of being a report that updates actuals (reporting of actuals is
now done through a Task Update via the Timesheet feature) Status Reports
allow you to specify topics and then report about those topics by writing. To
42 Module 4: Microsoft Project 2000 Advanced Topics

see an example of a Microsoft Project Central Status Report, see the following
section entitled “Submit a Status Report.”
The Overview of status reports page shows all requested status reports and also
gives you the option of submitting an un-requested status report. Below is an
example of this page.

Figure 41 - Microsoft Project Central - Status Reports

Submit a Status Report
This page allows you to respond to a requested status report that was set up by
your manager, or submit a new report that you create yourself. Below is an
example of a status report.

Figure 42 - Microsoft Project Central - Submit Status Report

Once you write your report, you can fill save or send your report.
Module 4: Microsoft Project 2000 Advanced Topics 43

Manager’s Features
In addition to the features available to a resource, managers have the following
features:

Rules
Rules allow a manager to process messages and update projects automatically.
Clicking on Rules takes you to the following page:

Figure 43 - Microsoft Project Central Manager - Rules

Here you will see a list of all created rules, along with some basic information
about the rule such as the types of messages affected and the resources that the
rule applies to. In addition, there is a checkbox that determines whether the rule
is active or disabled.
If there are no rules in you list or if you want to process messages in a new way,
you must create a new rule. Doing so is a three-step process. To create a rule,
click the New Rule button. This opens the following page:
44 Module 4: Microsoft Project 2000 Advanced Topics

Figure 44 - Microsoft Project Central Manager - Rules Wizard

Here you can specify the types of messages that you wish to process. Note that
you can use rules to process all New Task Requests, all Task Delegation
Requests, all Task Updates and Team Status Reports, as well as Task Updates
and Team Status Reports which meet criteria that you specify.
After you choose the types of messages to process, clicking Next takes you to
the following page:

Figure 45 - Microsoft Project Central Manager - Rules Wizard Step 2

Here you specify the projects against which this rule will be applied. Note that
you can also choose to apply this rule against all future projects. Once you have
specified the projects that you want, clicking next takes you to the following
page:
Module 4: Microsoft Project 2000 Advanced Topics 45

Figure 46 - Microsoft Project Central Manager - Rules Wizard Step 3

Here you specify the resources and Microsoft Project Central users for whom
you want this rule to apply to. Note that once again you can apply this option to
all future resources. This page also gives you the opportunity to change the
name of the rule.

Rules only apply to messages that are received after the rule has been implemented.
IF there are currently messages in the inbox, these will not be processed by a newly
created rule.
To modify a rule, select the rule and click the Modify Rule button. This will
lead you the same three pages that you encounter when creating a rule.

Request a Status Report
This feature is essentially a wizard for creating and requesting a Status Report.
It also allows you to edit or delete existing status reports. These options are
shown on the following page:

Figure 47 - Microsoft Project Central Manager - Request Status Report
46 Module 4: Microsoft Project 2000 Advanced Topics

The process of creating a new status report is a four-step process. The first step
is shown below.

Figure 48 - Microsoft Project Central Manager - Status Report Step 1

Here you are given the options of giving the status report a name, selecting the
reporting period and recurrence of the status report, and selecting when the
report is due. After selecting these options, clicking Next displays the following
page.

Figure 49 - Microsoft Project Central Manager - Status Report Step 2

Here you select the resources that must respond to this status report. Notice that
when you select a resource, it has a check in front of its name. This check
signifies that its report will be aggregated automatically into a group report.
After you have selected the appropriate resources, clicking Next displays the
following page.
Module 4: Microsoft Project 2000 Advanced Topics 47

Figure 50 - Microsoft Project Central Manager - Status Report Step 3

Here you can specify the categories that you want your report to contain. Notice
that these categories are not directly related to any particular part in
Microsoft Project and that they can be whatever you want. These categories
allow you (as the manager) to create a system for capturing pertinent
information that may not necessarily be reflected in a single Project file. Once
you have specified the topics for your Status Report, clicking Next displays the
following page.

Figure 51 - Microsoft Project Central Manager - Status Report Step 4

Here you have the option of saving your Status Report request or sending it
immediately.

Administrator’s Features
Administrators have all features available to resources and managers in addition
to the following features:

Administrative Overview
The Administrative Overview page provides links to the various areas that need
to be managed by a Microsoft Project Central administrator. It also provides a
link to the Microsoft Project Central server setup document that we will
reference several times in this section. An example of the Administrative
Overview page is provided below:
48 Module 4: Microsoft Project 2000 Advanced Topics

Figure 52 - Microsoft Project Central Administrator - Overview

Users
The Users page provides you with a location to add, modify, delete, or merge
user accounts. An example of the Users page is provided below:

Figure 53 - Microsoft Project Central Administrator - Users

Adding and modifying users is very similar. To add or modify a user, click the
corresponding button and edit the information for the user. The available
information that needs to be edited is authentication type and the user’s role.
Depending on the authentication type, you may need to provide additional
information such as a password. An example of the Add User page is provided
below:
Module 4: Microsoft Project 2000 Advanced Topics 49

Figure 54 - Microsoft Project Central Administrator - Add Users

Deleting user accounts does not remove the resource from the Microsoft Project
Central database. Instead, it only inactivates the resource and prevents the user
from seeing his or her name and logging on. It also prevents a manager from
sending further “Team” messages to that user. The account inactivation instead
of full deletion is done to prevent historical information such as Actuals and
status reports from being lost.
Merging user accounts allows you to combine two separate user accounts into
one single account. This should be done only in situations where both accounts
represent the same person.
In order to merge user accounts, Microsoft Project Central must be set to single
user mode. Once this has been done, simply select the two accounts that you
wish to merge. Upon selection, a brief paragraph below the accounts will
describe what the result will be based upon your selection. In order to make the
selection permanent, click Save Changes.

Caution Once you have merged accounts and clicked Save Changes, there is
no way to separate the two accounts other than by re-creating it from scratch.
50 Module 4: Microsoft Project 2000 Advanced Topics

An example of the Merge User page is provided below:

Figure 55 - Microsoft Project Central Administrator - Merge User

Delete From Database
The Delete from Database page allows you to delete items from the
Microsoft Project Central database. For more detailed information on deleting
items from the database, refer to the Microsoft Project Central server setup
document. An example of the Delete From Database page is provided below:

Figure 56 - Microsoft Project Central Administrator - Delete from Database
Module 4: Microsoft Project 2000 Advanced Topics 51

Caution Although noted in the Microsoft Project Central server setup
document, it is worth noting again that once items are deleted from the
database, the information no longer resides in the Microsoft Project Central
database, but does still exist in the original Project file.

Customize
Clicking on Customize takes you to the Administration Overview page. Here
you will find links to all of the areas that you can customize.

Nonworking Time Categories Nonworking Time Categories is the first area that
you can customize. This allows you to set up
categories such as vacation or sick leave that users can report time against. An
example of the Nonworking Times Categories page is provided below:

Figure 57 - Microsoft Project Central Administrator - NonWorking Time

Note that you must click Save Changes at the top of the page for any new
categories to be saved. Also, note that there is a column on the left titled Code.
This column allows you to enter codes associated with the nonworking time
category. These codes do no interact with the functionality of Microsoft Project
Central and are not mandatory. However, they are saved to the
Microsoft Project Central database and can be used in custom solutions that use
the Microsoft Project Central Database.

Gantt Bar Styles and Timescale Gantt Bar Styles and Timescale is the next area
that you can customize. This area allows you to
set options to control the formatting and display of Gantt bars and the timescale
in Gantt Charts. An example of the Gantt Bar Styles and Timescale page is
provided below:
52 Module 4: Microsoft Project 2000 Advanced Topics

Figure 58 - Microsoft Project Central Administrator - Gantt Bar Styles

Gantt Charts are used not only in the Timesheet’s Gantt Chart view, but can
also be used in any customized views that you create.

Task Delegation Settings Task Delegation Settings is the next area that you can
customize. Although the name of the page says
“settings,” in reality there is only one setting. This allows you to specify
whether task delegation should be enabled or not. An example of the Task
Delegation Settings page is provided below:

Figure 59 - Microsoft Project Central Administrator - Task Delegation
Module 4: Microsoft Project 2000 Advanced Topics 53

Security - Account Creation Security – Account Creation is the next area that
you can customize. This page allows you to set
options controlling how user accounts are created. There are two available
options. The first is “Allow Managers to create accounts for themselves and
their resources while sending workgroup messages or requesting status reports.”
This option lets project managers create Microsoft Project Central accounts
from within Microsoft Project 2000. The second option is “Allow resources to
create accounts for other resources while delegating tasks.” This option allows
resources create new Microsoft Project Central users to whom they can delegate
tasks. An example of the Security – Account Creation page is provided below:

Figure 60 - Microsoft Project Central Administrator - Security

Authentication Options
Authentication Options is the next area that you can customize. This page
allows you to specify the authentication methods used by Microsoft Project
Central server. Microsoft Project Central allows three options for
authentication: Mixed, Windows NT Authentication Only, and
Microsoft Project Central Server Authentication Only. For more detailed
information on what is involved in each of these options, see the
Microsoft Project Central server setup document.
54 Module 4: Microsoft Project 2000 Advanced Topics

An example of the Authentication Options page is provided below:

Figure 61 - Microsoft Project Central Administrator - Authentication

Add to Home Page Add to Home Page is the last area that you can customize.
This page allows you to Add your own links, text or custom
content to be displayed on the Home Page. Simply entering a URL for the
desired link or to the desired content does this. An example of the “Add to
Home Page” page is provided below:

Figure 62 - Microsoft Project Central Administrator - Add to Home Page
Module 4: Microsoft Project 2000 Advanced Topics 55

Manage Views
The Manage Views page allows you to create views that let you to see different
aspects of your project information. A view is composed of a set of fields and
filters that allows you to focus on only certain areas of your projects. You can
create and define your own views to see a collection of projects (Portfolio
View), to see details of an individual project (Project View), or to look at
Microsoft Project Central assignment information (Assignment View).
Who can see a particular view is dependent on which user category is assigned
to a particular view. A user category is a mapping of users to projects and views
with which they can see project information.
Microsoft Project Central includes the following predefined categories: 
Team Member 
Project Manager 
Resource Manager 
Executive

By default, all users defined as resources belong to the Team Member category,
and users defined as project managers belong to the Project Manager category.
The Resource Manager and Executive categories do not contain any users by
default. You can add users to these categories manually either in the Categories
page or in the User Permissions for Views page.
You can also create a new category or modify an existing one. For each
category, you can specify the users that belong to that category, the projects
those users can see, and the views with which they can look at the collection of
projects, individual projects and resource assignment information.

For more detailed information on which types of views are available and how those
views are setup, see the Microsoft Project Central server setup document.

Server Mode
Server Mode allows you to set the server from normal (or multiple user) mode
to single user mode or vice versa. This switch is sometimes necessary in order
to accomplish certain administrative tasks such as deleting items from the
database or merging user accounts.
Before setting the server to Single-User Mode, you will need to make sure that no
users are currently using the Microsoft Project Central server database; otherwise
this could result in inconsistent data in the database. See the document on
srvrsetup.htm for information on how to do this.
56 Module 4: Microsoft Project 2000 Advanced Topics

Lesson 3: Microsoft Project 2000 OLE DB Provider
Overview
Microsoft Project 2000 provides a native OLE DB provider through which
Microsoft Project Central connects to a project file (either MPP or stored in a
database) to provide views. Additionally, the Microsoft Project 2000 OLE DB
provider can be used in Data Access Pages and other custom solutions. In this
lesson we will discuss the applications and limitations of the
Microsoft Project 2000 OLE DB provider.

What You Will Learn
After completing this lesson, you will be able to:
 Create a Data Access Page (DAP) in Access using the
Microsoft Project 2000 OLE DB Provider
 Use Microsoft® ActiveX® Data Objects (ADO) within Microsoft Visual
Basic for Applications (VBA) to Test a Connection to an MPP file using the
OLE DB Provider from Microsoft Project 2000
 Discuss the applications and limitations of the Microsoft Project 2000 OLE
DB provider
Module 4: Microsoft Project 2000 Advanced Topics 57

The Microsoft Project 2000 OLE DB Provider
The Microsoft Project 2000 OLE DB Provider is essentially one file named
PJBKND09.DLL. By default it is installed when you install
Microsoft Project 2000 and/or Microsoft Project Central and it is located in the
C:\Program Files\Microsoft Office\Office folder. The Microsoft Project 2000
OLE DB Provider allows you to directly access data from a project file. This
can be accomplished either programmatically using ADO, or via a Data Access
Page (DAP). The Microsoft Project 2000 OLE DB provider is read-only which
means you cannot use the provider to write information to a project file. The
provider also does not expose timephased data.

Microsoft Project OLE DB Provider Registry Keys
In addition to the PJBKND09.DLL file, the OLE DB Provider for
Microsoft Project 2000 relies on the following eleven registry entries. Each
key’s default value is also listed below in italics.
1. HKEY_CLASSES_ROOT\CLSID\{7083219E-0241-11D2-BD0E-
00C04FB6F5D0}
Microsoft.Project.OLEDB.9.0
2. HKEY_CLASSES_ROOT\CLSID\{7083219E-0241-11D2-BD0E-
00C04FB6F5D0}\Implemented Categories
This key has no value.
3. HKEY_CLASSES_ROOT\CLSID\{7083219E-0241-11D2-BD0E-
00C04FB6F5D0}\Implemented Categories\{D267E19A-0B97-11D2-BB1C-
00C04FC9B532}
This key has no value.
4. HKEY_CLASSES_ROOT\CLSID\{7083219E-0241-11D2-BD0E-
00C04FB6F5D0}\InprocServer32
C:\PROGRA~1\MICROS~3\Office\PJBKND09.DLL
5. HKEY_CLASSES_ROOT\CLSID\{7083219E-0241-11D2-BD0E-
00C04FB6F5D0}\InprocServer32
Free
6. HKEY_CLASSES_ROOT\CLSID\{7083219E-0241-11D2-BD0E-
00C04FB6F5D0}\OLE DB Provider
Microsoft Project 9.0 OLE DB
7. HKEY_CLASSES_ROOT\CLSID\{7083219E-0241-11D2-BD0E-
00C04FB6F5D0}\ProgID
Microsoft.Project.OLEDB.9.0
8. HKEY_CLASSES_ROOT\CLSID\{7083219E-0241-11D2-BD0E-
00C04FB6F5D0}\VersionIndependentProgID
Microsoft.Project.OLEDB
9. HKEY_LOCAL_MACHINE\Software\Microsoft\Office\9.0\MS Project\OLE
DB Provider\TimeBeforeRefresh
1
58 Module 4: Microsoft Project 2000 Advanced Topics

10. HKEY_LOCAL_MACHINE\Software\Microsoft\Office\9.0\MS Project\OLE
DB Provider\TimeBeforeUnload
600
11. HKEY_LOCAL_MACHINE\Software\Microsoft\Office\9.0\MS Project\OLE
DB Provider\TimeOutOnLoad
90

Verifying that Microsoft Project OLE DB Provider is on
the System
Because the Microsoft Project OLE DB Provider does not have its own user
interface, it can sometimes be difficult to verify if the provider is installed on
the system, if it is configured correctly, and if it is operational.
This is especially true if you are attempting to access information via the
provider and you are getting unexpected results. Is it because you are not
creating your Data Access Page correctly? Is it because your ADO syntax
incorrect? Or is the Microsoft Project 2000 OLE DB Provider simply not
installed on your system correctly? Answering these questions definitively can
be frustrating. Luckily Microsoft has provided a tool that answers the last
question.
To better understand the components that are installed on your system,
Microsoft created the MDAC Component Checker. Although it was not
designed exclusively for use with the Microsoft Project 2000 OLE DB
Provider, it does a great job at cataloging it and other MDAC components
installed on your system.

For more information, on the Microsoft MDAC Component checker, see the
Appendix 4: Component Checker, or go to
http://www.microsoft.com/data/download.htm.

Try This: Using the MDAC Component Checker
Use the MDAC Component Checker to verify that the Microsoft Project 2000 OLE
DB Provider is installed correctly on your system.
1. Download and install the MDAC component checker from
http://www.microsoft.com/data/download.htm.
2. Run the component checker and perform an analysis of your machine to
automatically determine the version of MDAC that is on your machine.
3. Check to see what OLE DB providers are installed on your system.

Are there any OLE DB providers related to Microsoft Project? If yes, what are
their names and what is their version numbers.
Module 4: Microsoft Project 2000 Advanced Topics 59

Creating a Data Access Page
Microsoft Project 2000 exposes information via an OLE DB Provider. This is a
great way to get simple information directly from a project file and display that
information on the web. However, the Microsoft Project 2000 OLE DB
Provider’s functionality for Data Access Pages is limited. This is because the
Microsoft Project 2000 OLE DB Provider does not support joins.

What are joins?
Joins allow you to relate information from one table to that in another. Without
support for joins, you are limited to displaying the information from one and
only one table within your Data Access Page. Microsoft Project 2000 exposes a
number of tables, each containing varying numbers of fields. You should
carefully note which fields are available in each table before creating a Data
Access Page. This is because you can effectively only use one table per data
access page.

For more information, on which fields are available in which tables, see the
“Ole_db.htm” document that ships with Microsoft Project 2000.

Try This: Create a Data Access Page
Create a Data Access Page to see firsthand the limitations that occur when using the
Microsoft Project 2000 OLE DB Provider.
1. In Access 2000, create a new DAP using the design view.
2. On the Provider tab, choose Microsoft Project OLE DB Provider for MS-
Project 9.
3. On the All tab, edit the Project Name value by entering the path to your
project file.
4. On the Connection tab, click the Test Connection button. If successful, click
OK. If not, double check the Project Name value and try again.
5. Try adding different fields to your table from different tables.

Are you able to successfully add fields from different tables? Why or why not?
60 Module 4: Microsoft Project 2000 Advanced Topics

Connecting to a Project File via OLE DB
Although Data Access Pages are limited by the functionality of the
Microsoft Project 2000 OLE DB Provider, you can still access a great deal of
information via OLE DB. This can be accomplished programmatically using
ADO and the programming language of your choice. Detailed information on
programming with OLE DB and ADO is beyond the scope of this course.
However there are many resources available that will give you detailed
information on programming with OLE DB. One such source is listed below.

For more information, on programming with OLE DB, see “Microsoft OLE DB 2.0
Programmer’s Reference and Data Access SDK” published by Microsoft Press.

Although we will not detail programming with OLE DB per se, it is important
that you are able to programmatically establish a connection with the
Microsoft Project 2000 OLE DB Provider.
You can test the connection to a given file via the OLE DB provider by using
the following VBA code in an application such as Excel. Remember to
reference the ADODB library (referred to as Microsoft® ActiveX Data® Objects
2.5 Library inside References) before running the code:
Sub ConnectionTest()

Dim cnn As ADODB.Connection
Dim strPrj As String
strPrj = "c:\my documents\Project1.mpp"
Set cnn = New ADODB.Connection
cnn.ConnectionString = "Provider=MSProjOledb9;Project Name=" &
strPrj

cnn.ConnectionTimeout = 30
cnn.Open

If cnn.State = adStateOpen Then
MsgBox "OLE DB Connection to " & strPrj & " Is Functioning
Properly."
cnn.Close
Else
MsgBox "OLE DB Connection to " & strPrj & " Was Not
Established."
End If

End Sub
Module 4: Microsoft Project 2000 Advanced Topics 61

Try This: Test an OLE DB Connection to an MPP File
Try seeing if you can open an OLE DB connection to an MPP file from inside Excel.

1. Create a project file and save it to the following location: “C:\My
Documents\Project1.mpp.”
2. Inside the Excel VBE, click References on the Tools menu.
3. Put a check mark next to Microsoft ActiveX Data Objects 2.5 Library and
click OK.
4. Copy the code from the previous page into a module inside Excel.
5. Run the code.

Were you able to make a successful connection? Why or why not?
62 Module 4: Microsoft Project 2000 Advanced Topics

Lesson 4: Working With Databases
Overview
Keeping projects in a database has significant value for organizations that
employ customized applications that integrate with Microsoft Project via a
database. In this lesson, we will discuss changes to the database schema, talk
about how to make different changes to project data, and discuss other database
related issues.

What You Will Learn
After completing this lesson, you will be able to:
 Describe the database schema
 Make changes to a project via the database
 Troubleshoot problems with database related items
Module 4: Microsoft Project 2000 Advanced Topics 63

Database Changes

Expand time phased data in the database
This option is found on the Save tab of the Tools/Options menu. It gives you
the choice of saving time phased data in either binary or readable formats.
Binary has the advantage of being faster and smaller in size. The readable
format has the advantage of being editable in the database. When this option is
checked, time phased data will be written to the database in the readable format.

Figure 63 - Expand time phased data
64 Module 4: Microsoft Project 2000 Advanced Topics

Performance Has Been Improved
In addition to being able to save time phased data in the binary format only,
Microsoft Project 2000 has made other changes to improve performance when
saving to a database. Among these are the following:
 Database Format Specific Serializes – Microsoft Project 2000 has separate
serializes that are optimized to open Microsoft Project databases quickly
from either the Microsoft Project 98 or Microsoft Project 2000 database
formats.
 Creating Stored Procedures on the Database – This allows
Microsoft Project to reduce the amount of SQL calls used for some
operations. This in turn lowers network traffic and increases speed.
 Binary Time phased data saved to the same field – In
Microsoft Project 98, binary time-phased data was saved in multiple binary
fields in the Task_Information table. This information was saved on a task-
by-task basis. In Microsoft Project 2000, time-phased data will be stored in
a single field found in the Project_Information table. (Unless there are Notes
already stored in the binary field for a given task.)

Redesigned Database Format
The database structure (tables and fields) in Microsoft Project 2000 databases
has changed significantly. For example, all Reserved_ tables and fields have
been dropped. The new format is simpler, easier to understand and thus
modify. We will look at this structure in more detail as we review the
ProjDB.htm file during this class.

Restrictions on DSN Names Removed
Microsoft Project 98 required that all users accessing the same database use a
DSN with the same-name. If they did not, users could experience problems
when using inserted projects, resource pools, or cross-project links. In
Microsoft Project 2000, users no longer are forced to use the same DSN name.
Microsoft Project 2000 databases now store connection information
independent of the specific DSN used. Because of this, users may now also use
a File DSN.

Unexpected Session Termination Does Not Require a Reconnect to
Release the Database
In Microsoft Project 98, if you were unexpectedly or forcibly disconnected
from a Microsoft Project database, you were forced to reconnect to the database
in order to release it. In Microsoft Project 2000, we create a stored procedure on
the database (SQL and Oracle only) that checks to make sure the current owner
of R/W permissions is still connected every time a new user connects to the
database. If the owner of the R/W permissions is no longer connected, the new
user will be given R/W permissions.

Saving to a database of any type DOES NOT support saving Unicode information.
This means that foreign language information such as Japanese or Chinese text will
not be saved.
Module 4: Microsoft Project 2000 Advanced Topics 65

Reviewing the ProjDB.htm Document
Microsoft Project 2000 ships with a document called ProjDB.htm. This file is
the Microsoft Project 2000 equivalent of the Database.wri file that shipped with
Microsoft Project 98. In other words, it contains detailed information on using
databases with Microsoft Project 2000.
Because of the detailed technical information available in this document, and
because of its availability to customers, we should be very familiar with its
contents. In order to gain a high level of familiarity with both working with
databases and with the ProjDB.htm document, you should take time to look at it
carefully.
THIS PAGE INTENTIONALLY LEFT BLANK