Resource Management Data
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
Resource management (RM) in Microsoft Office Project Server 2007 encompasses planning and reporting on the capacity and utilization of an organization's human resources—that is, people. This topic describes the resource management data available in Project Server and the flow of this data between the features that create, maintain, and consume the data.
Capacity determines how much work the resources can do. In Project Server, capacity is defined for each resource. Individual resources are often aggregated into groups based on location, skill, job function, organizational affiliation, or other attribute for resource management planning and reporting.
Utilization describes how the resources are deployed and allocated. Utilization can be divided into planned (what is scheduled for the future) and actual (what happened in the past). Resources are utilized when they are assigned to work on projects.
Capacity is often expressed in hours per week. For example, Scott works 9 A.M. to 5 P.M. Monday through Friday for a total of 8 hours of work capacity per day, or 40 hours per week, as determined by his working time calendar.
Project Server 2007 uses the following definitions:
Base capacity (also known as baseline capacity) is a new concept of maximum work capacity and is only used for RM reports on Project Server. Microsoft Office Project Professional 2007 and project managers in general do not use base capacity. For example, a company has the following holidays: January 3, May 30, July 4, September 5, November 24-25, and December 23-26. The holidays reduce a resource's capacity to the base capacity.
Actual capacity is base capacity minus personal time off. For example, Brad is taking two weeks off in July. Project Professional uses the actual capacity combined with the availability contour to determine when a resource is available.
Remaining availability is actual capacity minus utilization.
Availability contour is the representation of times a resource is available to do work. Project Server always stores timephased data in a contour.
Work is the time expended on a task, as recorded by timesheets.
Effort is the progress toward task completion, as specified by status updates. If work and effort are equal, then the term is work.
There are many things that you can do with the PSI to integrate resource RM data with other applications, and some things that you cannot do. For more information, see Usage Scenarios for the PSI and What the PSI Does Not Do in Project Server Programmability.
RM data in Project Server can be grouped into several logical areas, as follows:
Enterprise Resource Pool is the list of resources managed by Project Server, and defines the capacity of those resources.
Calendars and Resource Capacity refers to every resource that has an associated calendar where working time can be uniquely specified.
Resource Utilization Summary data contains one entry per project (or non-project work category) for each enterprise resource and describes how much time the resource is committed to the project.
Project Assignments provide task-level detail on what work a resource is assigned to on each project.
Timesheets and Status Updates represent work and effort, respectively.
Non-Project Time data keeps track of demands other than task assignments on a resource's time, such as vacation, training, sick time, and so forth.
Resource Plans capture high-level resource requirements for projects when detailed (such as task-level) plans with tasks and assignments are not available.
Resource Custom Fields contain the enterprise custom field values associated with each resource.
Enterprise Resource Pool
The enterprise resource pool maintains the list of resources managed by Project Server.
The core resource data includes the resource attributes shown in the Resource Sheet view in Project Professional (Figure 1), and in the resource cost rate tables on the Costs tab in the Resource Information dialog box (Figure 2).
Enterprise resource data includes the availability contour, visible on the General tab of the Resource Information dialog box (Figure 3). The availability contour, along with the resource's calendar, defines that resource's capacity to perform work.
The Project Server Resource Web service includes the Resource class with PSI methods for editing enterprise resources. The methods that use the ResourceDataSet parameter include CreateResources and UpdateResources. Figure 4 shows the main entities that represent enterprise resources in the ResourceDataSet.
Following are the five main tables that contain resource information in the ResourceDataSet.
ResourceDataSet.ResourcesDataTable contains the intrinsic resource attributes that are visible in the Resource Sheet view in Project Professional. The attributes include resource name, type, enterprise ID, and so forth.
ResourceDataSet.ResourceCustomFieldsDataTable contains the values associated with each resource for enterprise custom fields that are defined in Project Server.
ResourceDataSet.ResourceRatesDataTable contains the rate table information (shown in Figure 2). Each row in the table corresponds to one line in the rate table grid of the Resource Information dialog box.
ResourceDataSet.ResourceAvailabilitiesDataTable contains the availability contour (shown in Figure 3). Each row in the table corresponds to one line in the resource availability grid.
ResourceDataSet.CalendarExceptionsDataTable contains the specific exceptions to working time for a resource. For example, Aaron is normally available 9 A.M. to 5 P.M., but March 6 through March 17 he is available 8 A.M. to 12 noon only on Tuesdays and Thursdays.
Although resource names and enterprise IDs must be unique in the Project Server database, code should use the resource GUID (RES_UID property in ResourceDataSet.ResourcesRow) because this is the only value that is guaranteed to uniquely identify a resource—even on multiple Project Server installations. The resource name should only be used for output purposes in the user interface and reports. The integer enterprise ID (RES_ID property) is provided for backward compatibility with previous versions of Project Server.
Calendars and Resource Capacity
Every enterprise resource has an associated calendar that defines the resource's hours of work as well as working and non-working days. Project Server creates the resource calendar when the resource is added. The resource calendar has the same GUID (the CAL_UID property in CalendarDataSet.CalendarsRow) as the resource.
You can update calendar data from the Resource Information dialog box in Project Professional. Click Change Working Time on the General tab to see the Change Working Time dialog box (Figure 5). For more information, see Calendar Exceptions and Effective Work Weeks.
Calendars define the hours of work or shifts for each day of the week (Sunday through Saturday) and also show which days of the week are working and which are non-working days. You can define calendar exceptions that override the normal working/non-working time for specific dates or ranges of dates. For example, if Monday to Friday are normally working days, a calendar exception can declare a specific Friday as a non-working day to reflect a company holiday. Calendar exceptions apply to a specific date or date range. They can specify certain dates to be working or non-working days or change the hours of work (shift information) for specific working days.
The resource dataset contains the list of calendar exceptions but does not expose the default shift information for each day of the week.
ResourceDataSet.CalendarExceptionsDataTable (resource-specific exceptions in the ResourceDataSet)
CalendarDataSet.CalendarsRow (specific resource calendars and base calendars)
CalendarDataSet.CalendarExceptionsDataTable (base exceptions in the CalendarDataSet)
Resource calendars are based on one of the enterprise calendars defined in the system. By default, the resource inherits the hours of work and work days along with the list of calendar exceptions (such as holidays) that are defined in the base calendar. You can override any base calendar item for an individual resource using the Change Working Time dialog box.
A resource's capacity is determined by the hours of work defined in their calendar combined with the units defined in their availability contour. If the resource's hours of work are defined as 9-5 M-F (in other words, 8 hours/day, 5 days/week) at 100% availability, then their capacity is 40 hours per week. If the calendar defines their hours of work as 9-5 M,W,F (that is, 8 hours/day, 3 days/week) and the availability contour defines their maximum units as 50%, then their capacity would be 12 hours per week.
Project Server 2007 introduces the idea of resource base capacity in addition to actual capacity. Base capacity is calculated using the specified base calendar for the resource and reflects the normal hours of work for the organization as well as company-wide holidays. Actual capacity is calculated using the resource calendar and includes the unique resource calendar exceptions in addition to those in the base calendar.
A resource calendar inherits the shift definitions and any exceptions in the enterprise calendar on which the resource calendar is based.
Resource Utilization Summary
Summary-level resource utilization data is useful for medium-term and long-term planning and high-level decision making. Data structures, called summary resource assignments (SRAs), maintain the data. The SRAs store the time-phased commitment of a resource for each project to which the resource is assigned. There is one SRA per resource per project.
The summary resource assignments are operational data. The Project Professional Resource Usage view (Figure 7) shows an open project with the summary resource usage values for tasks in the project and also the total usage of the resource for other projects.
SRAs also supply resource utilization data for the Resource Availability page in Project Web Access (Figure 8). For more information about resource availability, see How to: Calculate Resource Availability in OLAP Cubes.
Summary resource assignments are created from the following data:
Project plans: roll-up of all the detailed assignments in the project for each resource
Resource plans: time-phased data entered by the user
Timesheets: time-phased administrative (non-project) working-time entered by the timesheet user
Together, these data sources can capture all the time commitments for the resources managed in the system and provide an accurate picture of how the resources are being utilized for both project and non-project work.
When a project has both a resource plan and detailed assignments, double-counting of resource utilization is avoided through a user-specified option on the resource plan (Figure 9) indicating which should be used to calculate the SRA shown in the usage view, availability graph, and reports.
As with normal assignments, the work recorded in the summary resource assignments is time-phased and is divided into actual and remaining work. Actual work can only be entered for assignments in project plans or in timesheets, but not for resource plans.
Assignment-level data is useful for day-to-day operational decision making. Assignments are created when resources are assigned to tasks in a project plan. They represent the association between the task and the resource and, in the case of work resources, are used to track how much work is scheduled to be performed on the task by the resource and how much work has already been done.
Figure 10 shows relationships of the following DataTable objects in the ProjectDataSet:
When a project is published, the assignments are visible in Project Web Access. Team members (resources) can report progress in their Task Center page (My Work) and resource managers can see a summary of assignments in the View Assignments page. To see resource assignments (if you have permission to do so), click Resource Center in the Quick Launch, select one or more resources on the Resource Center page, and then click View Assignments in the Actions drop-down menu or tab.
All the assignments for a resource in a project are rolled up to create summary resource assignments that keep track of the total amount of work planned (or done) by the resource on that project.
We recommend that you do not make assignments on summary tasks. The Project Server scheduling engine handles roll-downs of actual work and additions to summary task assignments a little differently from Project Professional. For more information, see Project Scheduling on the Server in Project Server Programmability.
The utilization (work) and cost data on an assignment is time-phased so project managers, resource managers, and team members can see when the work is scheduled to be done as well as how much work is planned for each task.
Timesheets and Status Updates
Timesheets are a new feature in Project Server 2007. Timesheets and status updates both allow the capture of time-phased actual work data from users and resources.
Timesheets can stand alone. That is, an organization can use only the timesheet feature of Project Server or can choose to use timesheet data for project management and status updates. Resources need to provide data only for one of the systems. If resources use timesheets, the data can be imported to status updates for project rescheduling.
To enable project time entry by timesheet only, the Project Server administrator must configure Project Server to use timesheets and status in a synchronized mode. On the Server Settings page, click Task Settings and Display under the Time and Task Management section. On the Task Settings and Display page, select Time entry by Timesheet only, users will sync to update tasks. Users still have to synchronize the tasks grid with the timesheet and submit to the project manager before the update affects project scheduling.
A user must import from the timesheet and submit the status update before a project task grid is updated with timesheet data.
The timesheet allows entry of both project work and non-project time and provides a vehicle for capturing accurate and comprehensive resource utilization data. The timesheet allows actual work for projects to be entered at the detailed task/assignment level or at the project level, depending on the needs of the organization.
By default, timesheet data does not affect project scheduling. Timesheets are intended to provide accurate time accounting data that can be used in audit reports and for integration with external accounting applications. The Project Server TimeSheet Web service includes the TimeSheet class with methods for developing timesheet and line-of-business (LOB) integration applications. The TimeSheet Web service includes the following DataSet classes:
TimesheetDataSet is the primary timesheet DataSet and includes the Actions, Actuals, Audits, CustomFields, Headers, and Lines tables
ResourceDataSet duplicates the ResourceDataSet in the Resource Web service, so that timesheet applications need to use only the TimeSheet Web service
Timesheets do not use availability contours because they do not affect project scheduling. Status updates use availability contours because they do affect project scheduling.
In addition to methods and datasets in the TimeSheet Web service, the Admin class includes several methods along with the following DataSet classes in the Admin Web service for managing timesheet audits and reporting periods:
Status updates work essentially the same way in Project Server 2007 as they did in Project Server 2003. Status updates capture actual work at the task and assignment levels and are intended primarily as a vehicle for team members to report progress to the project manager. When the project manager accepts a status update, he or she can reschedule the project plan. The project manager does not have to open the project in Project Professional 2007 to reschedule it because Project Server includes a server-side scheduling engine.
The Project Server Statusing Web service includes the Statusing class with methods for managing assignments and status updates. The Statusing Web service includes the following DataSet classes:
Non-project time, like project assignments, is fine-grained data useful for day-to-day operational planning and decision making. Non-project time can include administrative time or non-working time.
Administrative time in Project Server 2002 was implemented as calendar exceptions. Project Server 2003 introduced Admin projects, but scheduling and approval did not work correctly for Admin projects. Project Server 2007 includes three types of non-project time by default:
Working administrative time
Non-working administrative time
Unverified timesheet lines
Project Server administrators can create other categories of non-project time, for example training time. Project Server 2007 keeps track of resource time commitments and utilization for non-project work such as training or support activities and for non-working time such as vacations.
To create or edit new types of administrative time, on the Server Settings page, click Administrative Time under the Time and Task Management section. Following are the default types of administrative time.
Administrative time (working)
Sick time (non-working)
Vacation time (non-working)
Timesheets capture non-project time and classify it into the categories defined by the system administrator. With the appropriate Project Server setting, resources can add timesheet lines for future time as well as past time, and include non-project time such as vacations for future planning. Timesheets are normally closed to changes after the timesheet approver accepts the timesheet. Future time periods should be kept open, in case of changes.
You can also indicate specific non-working time on a resource's calendar by using a calendar exception. Calendar exceptions and future non-working time on timesheets prevent work from being scheduled on the non-working days or time periods.
Non-project work is reflected in summary resource assignments. Projects allow both non-project work and project work to be scheduled so you can see where resource overallocations exist.
Resource plans provide a vehicle for capturing high-level resource requirements for projects and for non-project requirements, such as support and maintenance activities. Resource plans are useful because resources are not bothered with unapproved assignments just to enable planning, such as in the following scenarios:
Initial project planning of resource needs.
Planning a project by phase. Resources see only assignments for the currently approved phases; resource plans capture the rest of the project.
Resource utilization views and reports can include resource plans as well as project assignments and non-project timesheet entries. Resource plans allow project and resource managers to express resource requirements in terms of the number of people or full-time equivalents (FTEs) over a period of time. For example, the statement, "We need three analysts for four months," is useful in the early stages of project planning. Later stages can use fine-grained time requirements that derive from project plans and timesheets after resources are assigned to tasks.
Project Server uses resource plan data to create summary resource assignments which are used by the other parts of the system that consume resource utilization data.
Resource Custom Fields
The ResourceDataSet.ResourceCustomFieldsDataTable stores the enterprise custom field values associated with each resource. Each row in the table represents one value of one custom field for one resource. A row contains the GUID of the resource to which the custom field belongs as well as the GUID of the custom field definition in the CustomFieldDataSet.CustomFieldsDataTable.
For custom fields that have an associated lookup table, the row also contains the GUID of the corresponding lookup table value in the property MD_PROP_UID. You can see the ResourceDataSet.ResourceCustomFieldsRow properties also include the field type enumeration and columns for the resource custom field types. The ResourceCustomFieldsRow has columns only for Date, Duration, Flag, Number, and Text. Additional custom fields that apply to resources include Start and Finish, which are specific date custom fields, and outline code custom fields such as RBS. For more information, see Local and Enterprise Custom Fields.
Multivalue fields can have multiple rows for the same resource and custom field combination. If the row associated with a custom field is absent from the table for a particular resource, its value is assumed to be null.
The Project Server architecture includes four separate databases. For a diagram of the architecture and databases, see Project Server Architecture.
The Draft database stores the working copy of projects and resource plans while they are being edited and updated.
The Published database contains the versions of the projects and resource plans that are visible to other Project Server users. The Published database also stores the enterprise resource pool, summary resource utilization data, and all other resource-related data as well as enterprise calendars, custom fields, look-up tables, and data required by Project Web Access features and functions.
The Reporting database contains a denormalized, report-friendly copy of the data in the Published database.
The Archive database stores copies of projects that are explicitly archived. The Archive database is not used by any of the resource management features in Project Server.
Project and resource plans are updated first in the Draft database, and then the updates are propagated to the Published database in response to an explicit publish operation. Generally a user publishes a project after she is finished making changes and wants to make those changes visible to other users. All updates to projects and resource plans—whether they originate from Project Professional or Project Web Access, or from calls to PSI methods in other applications—are made in the Draft database first.
Changes made to the Published database are automatically propagated to the Reporting database. Changes include projects and resource plans that have been published as well as changes to entities such as resources and calendars that Project Server stores in the Published database. Because there can be a few minutes of delay in updating the Reporting database, it might not be completely synchronized with the Published database.