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
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
3
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:
Delivery Tip Go through each of the new features and introduce each one. Spend time briefly demonstrating each of the features not covered later in the course.
HTML Help Microsoft Project 2000 includes a new help feature that includes the following: •
HTML-based help – follows the familiar Web format
•
Help Home Page – this page includes links to all parts of Help
•
Project Map – a new map based on project management principles and user goals
•
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
Try This: Display Additional Screen Tips
Answer A. Open RegEdit.exe, usually found in C:\Windows. B. Open HKEY_CURRENT_USER\Soft ware\Microsoft\Office\9.0\MS Project. C. Right-click the Options folder, point to New, and then click Key. D. Type Accessibility as the 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.
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. 1.
Press the F1 button to call online help.
2. Query the Office Assistant using key words such as “accessibility.” How do you automatically display additional screen tips?
AutoSave Microsoft Project 2000 includes the option to automatically save a file at predefined intervals. It can be set to save only the active project or to automatically save all open files. AutoSave is located on the Tools menu under Options on the Save tab.
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.
5
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 predefined 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 Webbased 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 Windowsbased 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 Lesson 2: Windows Installer
33
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.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 Installer Request CD?
Yes
Is OS NT 3.51?
End
No Has Project Been Installed ?
No
No
Yes
Run Project From Source?
No
Is Windows Installer Present?
No
Is OS Win 9.x?
Is User an Admin?
Yes
Yes
Call INSTMSI.EXE from source & End
Yes
No
Call local Installer and End
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 ". Commandline Switch
Description
Example
Module 1.2
/a
Setup performs an administrative installation, using the specified MSI file, to create an administrative point. NOTE: This option cannot be used along with the /i switch (discussed later).
37
Create a network share. The share must be 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.INF file. Its purpose is to indicate that setup is being run automatically after you insert the CD in the CD-ROM drive.
/autorun
38
Module 1.2
Commandline Switch
Description
Example
/i
Specifies the name of the MSI file. This option cannot be used along with the /a option.
/i Mso9.msi
/p <package file>
Applies a patch.
To apply a patch to an installed Admin image you must combine options as follows /p <PatchPackage> /a <Package>/p <PatchPackage> /a <Package>
Specifies a property value. If the property value contains spaces, enclose the string in double quotation marks ("). You can specify more than one property and value pair on the command line, separated by spaces. See section on Properties below.
TRANSFORMS= "C:\Acct Dept.mst" INSTALLLANGUAGE =German"
PROPERTY=va lue
Module 1.2
Commandline Switch /q
Description Selects the user interface level. Valid 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.
39
Example /qn
40
Module 1.2
Description
Commandline Switch
Example
/settings
Specifies a settings file and path that customizes Setup actions.
/settings
/?
Displays a list of valid Setup commandline options.
/?
/wait
Wait for installation to complete before exiting.
/wait
/j <package path>
Advertise Locally
[u|m]Package
u – User
or
m – All users
[u|m]Package /t Transform List
Note When using the /j switch the /t switch should be used to point to a particular transform list. Otherwise with other switches the TRANSFORM property should be used.
C:\office9.ini
or [u|m]Package /g LanguageID
Module 1.2
Commandline Switch /f <package path>
Description Setup repairs the Microsoft Project installation. The .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.
p – Reinstall a file only if it is missing. o – Reinstall a file if its is missing, or an older version is present. e – Reinstall a file if it is missing, or an 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 recache the local package.
41
Example The Detect and Repair command (Help menu) in Microsoft Project performs the same function as using the options /focums. If you run Setup and select Reinstall, Setup performs the same function as using the options /fecums.
42
Module 1.2
Commandline Switch
Description
Example
/x <package path>
Setup uninstalls Microsoft Project. The 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.
/x e:\data1.msi
/t
Specifies the name of the transform (MST) file. When using the /jm switches, the /t switch must be used, other wise the TRANSFORM property should be used.
/t accounting.mst
/l [i|w|e|a|r|u|c|m|p| v
Logging switches for MSIEXEC.EXE Specifies path to log file and the flags indicate which information to log.
/l* c:\logname.txt
|+]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
Description
Commandline Switch /m
SMS status .MIF generation option Creates a .MIF file in the %TEMP% folder. The SMS status MIF generation option, m filename, where filename is the 1-8 char base name without the .MIF, is available only for install (-i), remove (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
43
Example An example command line would be of the form: msiexec /i Data1.msi /m 12345678 (note .MIF extension is not included.
44
Module 1.2
Description
Commandline Switch /y
Module
Example 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
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
47
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
; modes; + to append to the
Use * to get all logging
;
logfile if it exists.
; Path %TEMP% May contain environment variables.
Path to create logfiles in.
; non-existent and will be created.
Final component may be
; Template SetupLog(*).txt contain environment variables.
File name for log file. May
; * is replaced with a zero-padded
Should end in "(*).txt"; the
; file name unique.
4 digit number to make the
;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
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.
51
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 Project is installed
No
Licensing Agreement & PID
Welcome Screen Name, Org, CD Key
Next
Custom
Yes
Custom
Upgrade Yes
Remove Previous Version
Feature Tree
Typical or Custom Install?
Typical
No
Install location & Disk Space
Yes
Upgrade
No
Launch Maintenance Mode
Clean-up Process
Figure 2 - Windows Installer
Install Project
Reboot & Resume ?
Complete Setup
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 nonversioned 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® Visual Basic® for Applications (VBA) projects
Installed On First Use
Core Support Files
Run From My Computer
Module 1.3
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.
65
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: ;- ;<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 (REG_EXPAND_SZ)
Description Full path (via Drive letter or UNC) to the root of the source image
is the first positive integer not already in use as a value name in the network list. Any attempt to add more than 26 network sources to the list is ignored. A sample list of network sources might contain the following values:
For Your Information The items with % are environment variables.
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 key below.
(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 (REG_EXPAND_SZ)
Description A fully qualified URL: “Http://www.microsoft.com/apps/offic e2k” “file://www.microsoft.com/apps/downl oad”
As with the network list 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 \t.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>\\.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>\
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: :\setup.exe /focums data1.msi
The /f 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 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. \setup.exe /focum data1.msi /L* c:\repairlog.txt
The following actions are performed as a result of this /f commandline 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: :\setup.exe /fecums data1.msi
The /f 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 Occurs
Replaces damaged nonversioned program files*
Fixes Microsoft Project 2000 HKCU Registry Settings
Can occur while Microsoft Project applications are open
Microsoft Proje ct Self-repair when starting a feature (Resiliency)
Yes
No
Yes
Yes
Reinstall from Maintenance Mode
No. You must start it.
Yes
Yes
No
Detect and Repair from the Help menu.
No. You must start it.
No
Yes
Yes
Repair Errors from Maintenance Mode
No. You must start it.
No
Yes
No
* 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. For Your Information The 1 MB temp space is for the rollback script file that must be created.
In the Size group of the dialog box in the figure below, Selected Features starts at about 1 MB (for temporary files) and increases as features are added. If you change a feature from running on your computer to running from the network, 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 samenamed 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
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
7
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 Finish
(FF) – Finish to Finish
MSO – Must Start On
[EF] = Early Finish
ALAP – As Late as Possible
SNET – Start No Earlier Than
[LF] = Late Finish
ASAP – As Soon As Possible
SNLT – Start No Later 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 completethrough 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 change
Field Calculated if the task is Fixed Duration
Field Calculated if the task is Fixed Units
Field Calculated if the task is Fixed Work
Work
Units are recalculated
Duration is recalculated
Duration is recalculated
Duration
Work is recalculated
Work is recalculated
Units are recalculated
Units
Work is recalculated
Duration is recalculated
Units are 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 Calendar Assigned
Resource Calendar Assigned
Ignore Resource 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
Scenario
Ignore Resource Calendar Option
27
Response
(A) Both calendars match
Off or On
Normal schedule
(B) Nonworking time in task calendar, but available in resource calendar at the same time
Off or On
Schedule based on task calendar
(C) Working time in task calendar, but nonworking time in resource calendar at the same time
Off
Schedule based on resource calendar
(D) Same as above
On
Schedule based on task calendar
(E) Task calendar and resource calendars do not intersect; there is no period where both the task and resource calendars have working time
Off
Schedule based on task calendar; alert message generated and error indicator set
(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 Task Calendar
Th
F
Nonworking
Resource Calendar
Working
Working
Working
Working
Working
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 Task Calendar
W
Th
F
Nonworking
Resource Calendar
Working
Working
Nonworking
Working
Working
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
Example 3 (Ignore Resource Calendar Set to Yes) M T W Task Calendar
29
Th
F
Nonworking
Resource Calendar
Working
Working
Nonworking
Working
Working
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 Calendar
Working
Working
Nonworking
Nonworking
Working
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 Calendar
Nonworking
Nonworking
Working
Nonworking
Nonworking
Nonworking
Nonworking
Resource Calendar
Nonworking
Working
Nonworking
Working
Working
Working
Nonworking
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
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.”
39
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
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
47
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 “ ”.
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 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 “ <Material Label>/”. 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 Name
Material Label
Assignment Value
Task Duration
Assignment 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 Name
Material Label
Assignment Value
Task Duration
Assignment 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 recalculated
Duration is recalculated
Duration is recalculated
Duration
Work is recalculated
Work is recalculated
Unites are recalculated
Units
Work is recalculated
Work is recalculated*
Duration is 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 Work Actual Overtime Cost Available From Available To Base Calendar Max. Units Overallocated Overtime Cost
Overtime Rate Overtime Work Percent Allocation Remaining Overtime Work Remaining Overtime Cost Resource Availability Work Availability
Assignment Fields
Actual Overtime Cost Actual Overtime Work Leveling Delay Overallocated Overtime Cost
Overtime Work Percent Allocation Remaining Overtime Cost Remaining Overtime Work
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 Property
Assignment object
Returns True if consumption 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 yearround. 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. Note: The current date in this discussion means the current date from the Project Information dialog, not the system date.
If there is a resource availability contour, then the Maximum Units field contains the current Units value derived from the Resource Availability table and the current date as shown in the Project Information dialog. If the current date is outside the range of any period currently shown in the table, then the Maximum Units field will contain 0%. 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
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?
71
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
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
71
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 Units
1
2
3
4
5
6
7
8
9
10
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
2. Back Loaded Units
1
2
3
4
5
6
7
8
9
10
10%
15%
25%
50%
50%
75%
75%
100%
100%
100%
3. Front Loaded Units
1
2
3
4
5
6
7
8
9
10
100%
100%
100%
75%
75%
50%
50%
25%
15%
10%
4. Double Peak Units
1
2
3
4
5
6
7
8
9
10
25%
50%
100%
50%
25%
25%
50%
100%
50%
25%
1
2
3
4
5
6
7
8
9
10
25%
50%
100%
100%
75%
50%
50%
25%
15%
10%
5. Early Peak Units
6. Late Peak Units
1
2
3
4
5
6
7
8
9
10
10%
15%
25%
50%
50%
75%
100%
100%
50%
25%
1
2
3
4
5
6
7
8
9
10
10%
20%
40%
80%
100%
100%
80%
40%
20%
10%
1
2
3
4
5
6
7
8
9
10
25%
50%
75%
100%
100%
100%
100%
75%
50%
25%
7. Bell Units
8. Turtle Units
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-byminute 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 Task
Duration
Units
Work
∆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… Duration and Units have both changed at the Assignment Level (∆D & ∆U)
…Microsoft Project does the following for contours. 1. The 10 Contour Segments are recalculated. 2. Units are applied to each contour segment per the contour definition. 3. Work for each segment is recalculated.
Duration and Work have both changed at the Assignment Level (∆D & ∆W)
1. The 10 Contour Segments are recalculated. 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 the Assignment Level (∆U & ∆W)
1. Units are applied to each contour 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:
Wat =
Dt 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:
Uat =
Wat 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 Dt Ua = 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 Ua Dt = 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 Assignment Level
Reaction of Contour Segment Lengths
∆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%
Contour One –42.94% 1
2
3
4
5
6
7
Contour Two – 100% 8
1
2
3
4
5
Day Three – 36% Contour Three – 56.5%
6
7
8
1
2
3
4
5
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.
6
7
8
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:
Us =
%A 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:
Usa =
42.94% + 100% + 56.5% -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 (Usx × Dsx ) is the sum of all segments the duration of segment number x, 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 Ua Dt = 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 100% -OR- Dt = 21.16h -OR- Dt = 2.64d Dt = 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:
R=
Dt 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:
M =
Uan 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
M =
100% 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%
Contour One –42.94% 1
2
3
4
5
6
7
Contour Two – 100% 8
1
2
3
4
5
Day Three – 36% Contour Three – 56.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%
Contour One –42.94% 1
2
3
4
5
6
7
Contour Two – 100% 8
1
2
3
4
5
Day Three – 36% Contour Three – 56.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%
Contour One –42.94%
1
2
3
4
5
6
7
Contour Three – 50%
C 2 – 1 0 0 % 8
Day Three – 36%
1
2
3
4
5
6
7
Contour Four – 56.5%
8
1
2
3
4
5
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.
6
7
8
Module 2.4
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 (Usx × Dsx ) is the sum of all segments the duration of segment number x, units multiplied by their segment duration (THAT IS, (Us1 × Ds1) + (Us 2 × Ds 2)... ), and Da is the duration of the assignment.
∑
89
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
1000
Microsoft Project 98Value
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, subprojects 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 crossproject 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
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
1
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
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
5
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
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
7
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 pjBoxCriticalMarked pjBoxCriticalMilestone pjBoxCriticalSubproject pjBoxCriticalSummary pjBoxExternalTask pjBoxHighlightedTasks
pjBoxNoncritical pjBoxNoncriticalExternalTask pjBoxNoncriticalMarked pjBoxNoncriticalMilestone pjBoxNoncriticalSubproject pjBoxNoncriticalSummary 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 pjBoxWideRectangle
pjBoxRightParallelogram pjBoxLeftParallelogram
Module 3.1
pjBoxRoundedRectangle pjBoxWideRoundedRectangle pjBoxPointedEnds BorderColor
pjBoxCapsule pjBoxUpTrapezoid pjBoxDownTrapezoid
Optional Long. The color of the box border. Can be one of the following PjColor constants: PjColorAutomatic pjAqua pjBlack pjBlue pjFuschia pjGray pjGreen pjLime pjMaroon
BorderWidth
15
pjNavy pjOlive pjPurple pjRed pjSilver pjTeal pjYellow pjWhite
Optional Long. The width of the box border. Can be one of the following PjBoxBorderWidth constants: PjBorderWidth1 pjBorderWidth2
pjBorderWidth3 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 pjBackgroundSolidFill pjBackgroundLightFill pjBackgroundMediumFill pjBackgroundDarkFill pjBackgroundDiagonalLeft pjBackgroundDiagonalRight
pjBackgroundDarkDiagonalLeft pjBackgroundDarkDiagonalRight pjBackgroundThinVerticalStripe pjBackgroundMediumVerticalStripe pjBackgroundLightDither pjBackgroundMediumDither 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 pjBoxWideRectangle pjBoxRoundedRectangle pjBoxWideRoundedRectangle pjBoxPointedEnds
BorderColor
pjBoxRightParallelogram pjBoxLeftParallelogram pjBoxCapsule pjBoxUpTrapezoid pjBoxDownTrapezoid
Optional Long. The color of the box border. Can be one of the following PjColor constants: PjColorAutomatic pjAqua pjBlack pjBlue pjFuschia pjGray pjGreen pjLime pjMaroon
pjNavy pjOlive pjPurple pjRed pjSilver pjTeal pjYellow pjWhite
Module 3.1
BorderWidth
17
Optional Long. The width of the box border. Can be one of the following PjBoxBorderWidth constants: PjBorderWidth1 pjBorderWidth2
pjBorderWidth3 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 pjBackgroundSolidFill pjBackgroundLightFill pjBackgroundMediumFill pjBackgroundDarkFill pjBackgroundDiagonalLeft pjBackgroundDiagonalRight
Reset
pjBackgroundDarkDiagonalLeft pjBackgroundDarkDiagonalRight pjBackgroundThinVerticalStripe pjBackgroundMediumVerticalStripe pjBackgroundLightDither pjBackgroundMediumDither pjBackgroundDarkDither
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 pjDataTemplateCopy
pjDataTemplateRename 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
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 pjCell1_2 pjCell1_3 pjCell1_4
FieldName
pjCell2_1 pjCell2_2 pjCell2_3 pjCell2_4
pjCell3_1 pjCell3_2 pjCell3_3 pjCell3_4
pjCell4_1 pjCell4_2 pjCell4_3 pjCell4_4
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.
19
20
Module 3.1
FontColor
Optional Long. The color of the font. Can be one of the following PjColor constants: PjColorAutomatic pjAqua pjBlack pjBlue pjFuschia pjGray pjGreen pjLime pjMaroon
pjNavy pjOlive pjPurple pjRed pjSilver pjTeal pjYellow 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
DateFormat
21
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 pjDate_mm_dd_yy pjDate_mm_dd_yyyy pjDate_mmmm_dd_yyyy_hh_mmAM pjDate_mmmm_dd_yyyy pjDate_mmm_dd_hh_mmAM pjDate_mmm_dd_yyy pjDate_mmmm_dd pjDate_mmm_dd pjDate_ddd_mm_dd_yy_hh_mmAM pjDate_ddd_mm_dd_yy pjDate_ddd_mmm_dd_yyy pjDate_ddd_hh_mmAM pjDate_mm_dd pjDate_dd pjDate_hh_mmAM pjDate_ddd_mmm_dd pjDate_ddd_mm_dd pjDate_ddd_dd pjDate_Www_dd pjDate_Www_dd_yy_hh_mmAM
9/30/97 12:33 PM 9/30/97 9/30/1997 September 30, 1997 12:33 PM September 30, 1997 Sep 30 12:33 PM Sep 30, '97 September 30 Sep 30 Tue 9/30/97 12:33 PM Tue 9/30/97 Tue Sep 30, '97 Tue 12:33 PM 9/30 30 12:33 PM Tue Sep 30 Tue 9/30 Tue 30 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 pjBlack pjBlue pjFuschia pjGray pjGreen pjLime pjMaroon
ViewBackgroundPattern
pjNavy pjOlive pjPurple pjRed pjSilver pjTeal pjYellow pjWhite
Optional Long. The pattern for the Network Diagram background. Can be one of the following PjFillPattern constants: PjBackgroundHollow pjBackgroundSolidFill pjBackgroundLightFill pjBackgroundMediumFill pjBackgroundDarkFill pjBackgroundDiagonalLeft pjBackgroundDiagonalRight
pjBackgroundDarkDiagonalLeft pjBackgroundDarkDiagonalRight pjBackgroundThinVerticalStripe pjBackgroundMediumVerticalStripe pjBackgroundLightDither pjBackgroundMediumDither 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:
CriticalColor
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.
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 pjBlack pjBlue pjFuschia pjGray pjGreen pjLime pjMaroon
NoncriticalColor
pjNavy pjOlive pjPurple pjRed pjSilver pjTeal pjYellow pjWhite
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 Remarks
Optional. An expression that returns an Application object.
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 pjAlignCenters pjAlignRights
pjAlignTops pjAlignMiddles 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 Method
Microsoft Project 2000 Changes
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 Method
Microsoft Project 2000 Changes
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, or Start
Maximum, Minimum
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 dropdown, 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 dropdown 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 Nonsummary 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 '': 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 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 dropdown 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 readonly 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
Figure 24 - Formula Fields
57
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
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 usereditable state.
61
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 Method
Adds a test condition for the value of a custom field and associates a graphical indicator to be displayed in place of the data when the test is successful.
CustomFieldIndicatorDelete Method
Removes a test condition from a custom field graphical indicator criteria list.
66
Module 3.2
Method
Description
CustomFieldValueList Method
Sets options for a value list for a custom field.
CustomFieldValueListGetItem Method
Returns the value, description, or phonetic spelling of an item in the value list for a custom field.
CustomFieldValueListAdd Method
Adds an item to a value list for a custom field.
CustomFieldValueListDelete Method
Removes an item from the value list for a 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
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.
69
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: ” 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 Range
Interval Range
Notes
Currency
each value interval
any real number
any real number
When grouping by each 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 interval
any real number
any real number
Date
each value minute hour day week month qtr year
Jan 1, 1984Dec 31, 2049
integer > 0 The date format used for display will be the format specified in Tools. Options. View tab. The default for Group on is 'day'. If the user chooses to group on each value, dates 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
Field type
Group on
Start at Range
Interval Range
79
Notes
applies to the rest of the 'group on' categories. Duration
each value minutes hours days weeks months
integer >= 0
integer > 0 This includes duration and work fields. The format for duration fields will be as specified in the Tools. Options. Edit tab. Also, in 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 interval
integer >=0
integer > 0
Number
each value interval
any real number
any real number
Custom Outline Code
each value level
NA
NA
Percentage
each value interval 0, 1-99, 100
integer >=0
integer > 0
Percentage/Number each value interval
integer >=0
integer > 0
Text
NA
NA
0,1-50, 51-99, 100 0, 1-25, 26-50, …, 100 0, 1-10, 11-20, …, 100
each value 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
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
81
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
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.
83
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
% Complete
Percentage
(Actual Duration / Duration) * 100
% Work Complete
Percentage
(Actual Work / Work) * 100
Actual Cost
Currency
Sum
Actual Duration
Duration
Actual Finish - Actual Start based on project calendar and tools.option setting
Actual Finish
Date
Max(if there is an NA, then value = NA)
Actual Overtime Cost
Currency
Sum
Actual Overtime Work
Duration
Sum
Actual Start
Date
Min(if there is an NA, 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 Duration
Duration
Baseline Finish Baseline Start based on 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
Duration Variance
Duration
Baseline Dur. - Sceh 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
Finish Variance
Duration
Baseline Fin. - Sched. 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 Calendar
Boolean
No
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
Outline Level
Integer
No: All values 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 Cost
Currency
Sum
Remaining Overtime Work
Duration
Sum
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
Start Variance
Duration
Baseline Start - Sched. Start
Start1-10
Date
Custom field formula
Module 3.2
89
Task Field
Type
Rollup Function
Stop
Date
End of actual duration of 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 Calendar
Boolean
No
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
Outline Level
Integer
No: All values 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 Cost
Currency
Sum of assign.
Remaining Overtime Work
Duration
Sum of assign.
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 Predecessors
Integer List
No
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: Act. Work/Total Work
NA
Accrue At
Enumerated
No
NA
Actual Cost
Currency
Sum
Yes
Actual Finish
Date
Max (if there is an NA, then value = NA)
Yes
Actual Overtime Cost
Currency
Sum
Yes
Actual Overtime Work
Duration
Sum
No
Actual Start
Date
Min (if there is an NA, then value = NA)
Yes
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 formula
Yes
Date1 - Date10
Date
Custom Field formula
Yes
Duration1 – Duration10
Duration
Custom Field formula
Yes
Email Address
Text
No
NA
Finish
Date
Max
Yes
Finish1 – Finish10
Date
Custom Field formula
Yes
Flag1 - Flag20
Boolean
Custom Field formula
Yes
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 SubAddress
Text
No
NA
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 Number20
Number
Custom Field formula
Yes
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 Cost
Currency
Sum
Yes
Remaining Overtime Work
Duration
Sum
No
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 formula
NA
Task Summary Name
Text
No
NA
TeamStatus Pending
Boolean
No
NA
Text1 - Text30
Text
Custom Field formula
NA
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
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
109
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 Workgroup
Registry
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 ;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 ;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 Team Status, Team Update, Team Assign, Set Schedule note… menu items are not available from the Tools, Workgroup menu.
Verwijderd: .
Module 3.3
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.
115
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 ;1111200000000000;;;; Under the MSMAIL32.ini the entry should read: IPM.Microsoft Project.Workgroup Mail =3.0;;;;opml32.dll;openmail.exe ;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 [email protected] . 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
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.
125
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, French
Single Byte Characters (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, Korean
Double Byte Characters (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
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
133
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
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
1
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
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.
5
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
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
11
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
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.
13
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
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?
17
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 nonMicrosoft 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:///. 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
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.
37
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-BD0E00C04FB6F5D0} Microsoft.Project.OLEDB.9.0 2. HKEY_CLASSES_ROOT\CLSID\{7083219E-0241-11D2-BD0E00C04FB6F5D0}\Implemented Categories This key has no value. 3. HKEY_CLASSES_ROOT\CLSID\{7083219E-0241-11D2-BD0E00C04FB6F5D0}\Implemented Categories\{D267E19A-0B97-11D2-BB1C00C04FC9B532} This key has no value. 4. HKEY_CLASSES_ROOT\CLSID\{7083219E-0241-11D2-BD0E00C04FB6F5D0}\InprocServer32 C:\PROGRA~1\MICROS~3\Office\PJBKND09.DLL 5. HKEY_CLASSES_ROOT\CLSID\{7083219E-0241-11D2-BD0E00C04FB6F5D0}\InprocServer32 Free 6. HKEY_CLASSES_ROOT\CLSID\{7083219E-0241-11D2-BD0E00C04FB6F5D0}\OLE DB Provider Microsoft Project 9.0 OLE DB 7. HKEY_CLASSES_ROOT\CLSID\{7083219E-0241-11D2-BD0E00C04FB6F5D0}\ProgID Microsoft.Project.OLEDB.9.0 8. HKEY_CLASSES_ROOT\CLSID\{7083219E-0241-11D2-BD0E00C04FB6F5D0}\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 MSProject 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 taskby-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