Project Review Report

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.

The project review report is designed to provide a project management office (PMO) review meeting with a one-page or two-page summary of the current state of each project in Microsoft Office Project Server 2007. The report shows graphs of actual versus scheduled work and actual versus scheduled cost, project cost variance, and schedule finish variance, and tables of upcoming milestones, issues, deliverables, and risks.

The report assumes that each project has a baseline. For best illustration of the sample report, a project should begin life as a proposal, be approved, and then have added milestones, issues, deliverables, and risks.

Figure 1. Project review report

Project Review report

The project review report shows the following new features of Project Server 2007:

  • Project deliverables

  • Reporting database (RDB) access to all project data

  • A document query to use for accessing project data

Datasets for the Project Review Report

The project review report uses SQL queries of the RDB. There are three report datasets:

  • ProjectData includes a large set of fields from MSP_EpmProject_UserView and MSP_EpmTask_UserView as well as the RDB tables for issues, risks, and deliverables.

  • DeliverableData includes a set of fields that combines data from MSP_EpmProject, MSP_EpmTask, MSP_WssDeliverable, and other RDB tables for list item associations and relationship types.

  • Issues is a very simple dataset that includes all fields from the MSP_WssIssue table. The Issues query is Select * from MSP_WssIssue.

NoteNote

A dataset in Microsoft SQL Server Reporting Services (SSRS) 2005 is created by a database query. An SSRS dataset includes fields used in the report; it is not the same as a Microsoft ADO.NET DataSet class. For more information, see Working with Data in Reporting Services.

To see the reporting datasets and queries, open the Project 2007 Report Pack solution with Microsoft Visual Studio 2005 (or Business Intelligence Development Studio for SQL Server Reporting Services), expand the Reports folder in the Solution Explorer, and then double-click 1.1 Project Review 2.rdl. The design view of the report opens to the Layout tab.

To see the fields in the three datasets used in the report, click Datasets on the View menu, and then expand all of the nodes in the Datasets pane. To see the queries, click the Data tab in the report design view, and then select one of the datasets. The report uses the graphical query designer for the ProjectData and DeliverableData queries, and the generic query designer for Issues.

ProjectData Query

On the Data tab, Select ProjectData in the Dataset drop-down list. The ProjectData query returns many fields, which you can see in the SELECT statement of the query. The report does not use all of the fields in the query; the sample ProjectData query provides extra fields to make the report easy to modify.

The charts and tables in the report get their data from the query fields. For example, on the Layout tab, right-click the Actual vs Scheduled Work chart, and then click Properties. The chart name is chart1. Click the Data tab in the Chart Properties dialog box, click Actual in the Values list, and then click Edit. The Actual series value is =Sum(Fields!ProjectActualWork.Value). You can also double-click the chart to add data and series fields or view their properties.

To run the ProjectData query within the query designer, click Run on the Data tab toolbar. The Results pane shows a table with 73 columns for the query fields.

The ProjectData query uses the following tables and views in the RDB:

  • MSP_EpmProject_UserView

  • MSP_EpmTask_UserView

  • MSP_WssDeliverable

  • MSP_WssIssue

  • MSP_WssRisk

  • MSP_WssListItemAssociation

Following is the complete ProjectData query for the project review report.

SELECT   MSP_EpmProject_UserView.ProjectStatusDate, 
         MSP_EpmProject_UserView.ProjectFinishDate, 
         MSP_EpmProject_UserView.ProjectStartDate, 
         MSP_EpmProject_UserView.ProjectName, 
         MSP_EpmProject_UserView.ProjectUID AS PrjUID, 
         MSP_EpmProject_UserView.ProjectWork, 
         MSP_EpmProject_UserView.ProjectCost, 
         MSP_EpmProject_UserView.ProjectActualCost, 
         MSP_EpmProject_UserView.ProjectActualWork, 
         MSP_EpmProject_UserView.ProjectStartVariance, 
         MSP_EpmProject_UserView.ProjectFinishVariance, 
         MSP_EpmProject_UserView.ProjectDurationVariance, 
         MSP_EpmProject_UserView.ProjectPercentCompleted, 
         MSP_EpmProject_UserView.ProjectOwnerName, 
         MSP_WssIssue.ProjectUID, 
         MSP_WssIssue.IssueUniqueID, 
         MSP_WssIssue.IssueID, 
         MSP_WssIssue.Title AS IssTitle, 
         MSP_WssIssue.AssignedToResource AS IssAssignedToResource, 
         MSP_WssIssue.NumberOfAttachments AS IssNumberofAttachments, 
         MSP_WssIssue.DueDate AS IssDueDate, 
         MSP_WssIssue.Category AS IssCategory, 
         MSP_WssIssue.Status AS IssStatus, 
         MSP_WssIssue.Priority AS IssPriority, 
         MSP_WssIssue.Owner AS IssOwner, 
         MSP_WssIssue.Discussion AS IssDiscussion, 
         MSP_WssIssue.Resolution AS IssResolution, 
         MSP_WssIssue.CreateByResource AS IssCreatedbyResource, 
         MSP_WssIssue.CreatedDate AS IssCreatedDate, 
         MSP_WssIssue.ModifiedByResource AS IssModifiedByResource, 
         MSP_WssIssue.ModifiedDate AS IssModifiedDate, 
         MSP_WssIssue.IsFolder AS IssIsFolder, 
         MSP_WssIssue.ItemRelativeUrlPath AS IssItemRelativeURLPath, 
         MSP_WssRisk.ProjectUID AS RiskProjUID, 
         MSP_WssRisk.RiskUniqueID, 
         MSP_WssRisk.RiskID, 
         MSP_WssRisk.Title AS RiskTitle, 
         MSP_WssRisk.Status AS RiskStatus, 
         MSP_WssRisk.AssignedToResource AS RiskAssignedToResource, 
         MSP_WssRisk.Owner AS RiskOwner, 
         MSP_WssRisk.DueDate AS RiskDueDate, 
         MSP_WssRisk.Probability AS RiskProbability, 
         MSP_WssRisk.Impact AS RiskImpact, 
         MSP_WssRisk.Exposure AS RiskExposure, 
         MSP_WssRisk.Cost AS RiskCost, 
         MSP_WssRisk.CostExposure AS RiskCostExposure, 
         MSP_WssRisk.Category AS RiskCategory, 
         MSP_WssRisk.Description AS RiskDescription, 
         MSP_WssRisk.MitigationPlan AS RiskMitigationPlan, 
         MSP_WssRisk.ContingencyPlan AS RiskContingencyPlan, 
         MSP_WssRisk.TriggerTask AS RiskTriggerTask, 
         MSP_WssRisk.TriggerDescription AS RiskTriggerDesc, 
         MSP_WssRisk.NumberOfAttachments AS RiskNumberofAttachments, 
         MSP_WssRisk.CreateByResource AS RiskCreatedbyResource, 
         MSP_WssRisk.CreatedDate AS RiskCreatedDate, 
         MSP_WssRisk.ModifiedByResource AS RiskModifiedByResource, 
         MSP_WssRisk.ModifiedDate AS RiskModifiedDate, 
         MSP_WssRisk.IsFolder AS RiskIsFolder, 
         MSP_WssRisk.ItemRelativeUrlPath AS RiskItemRelativeUrlPath, 
         MSP_EpmTask_UserView.TaskName, 
         MSP_EpmTask_UserView.TaskFinishDate, 
         MSP_EpmTask_UserView.TaskStartDate, 
         MSP_EpmTask_UserView.TaskDeadline, 
         MSP_WssDeliverable.Title AS DeliverableTitle, 
         MSP_WssDeliverable.StartDate AS [Deliverable Due Date], 
         MSP_WssDeliverable.DeliverableUniqueID, 
         MSP_WssListItemAssociation.RelationshipTypeID, 
         MSP_EpmProject_UserView.State, 
         MSP_EpmProject_UserView.ProjectCostVariance, 
         MSP_EpmProject_UserView.ProjectWorkVariance, 
         MSP_WssListItemAssociation.RelatedItemUID, 
         MSP_WssDeliverable.FinishDate AS Currently_Scheduled, 
         MSP_EpmTask_UserView.[TaskIsMilestone ]
         
FROM     MSP_WssDeliverable 
            INNER JOIN MSP_WssListItemAssociation 
               ON MSP_WssDeliverable.ProjectUID 
                  = MSP_WssListItemAssociation.ProjectUID 
                  
            FULL OUTER JOIN MSP_WssRisk 
            
            RIGHT OUTER JOIN MSP_EpmProject_UserView 
            
            INNER JOIN MSP_EpmTask_UserView 
               ON MSP_EpmProject_UserView.ProjectUID 
                  = MSP_EpmTask_UserView.ProjectUID 
               ON MSP_WssRisk.ProjectUID = MSP_EpmProject_UserView.ProjectUID 
               
            LEFT OUTER JOIN MSP_WssIssue 
               ON MSP_EpmProject_UserView.ProjectUID = MSP_WssIssue.ProjectUID 
               ON MSP_WssListItemAssociation.RelatedItemUID 
                     = MSP_EpmTask_UserView.TaskUID 
                  AND MSP_WssListItemAssociation.RelatedProjectUID 
                     = MSP_EpmProject_UserView.ProjectUID 
                  AND MSP_WssDeliverable.ProjectUID 
                     = MSP_EpmProject_UserView.ProjectUID
                     
ORDER BY MSP_EpmProject_UserView.State DESC, 
         [Deliverable Due Date], 
         MSP_EpmProject_UserView.ProjectName

DeliverableData Query

On the Data tab, select DeliverableData in the Dataset drop-down list. The DeliverableData query returns the following fields:

  • RelationshipTypeID

  • Description

  • Title

  • StartDate

  • FinishDate

  • CreatedDate

  • ProjectName

  • Related Project Name

  • TaskName

  • TaskIsCritical

  • TaskStartDate

  • TaskFinishDate

  • Related Task Name

NoteNote

The query shows a field name within brackets if it contains a space, for example, [Related Project Name]. The Datasets pane and the Layout tab of the Report Designer show the same field with a low line character in place of the space, for example, Related_Project_Name.

The DeliverableData query uses the following tables and views in the RDB:

  • MSP_WssListItemAssociation

  • MSP_WssDeliverable

  • MSP_WssRelationshipType

The DeliverableData query gets all of the list item associations and the associated deliverables for each task in a project that has a deliverable. The last statement in the query is WHERE (MSP_WssRelationshipType.RelationshipTypeID = 12). You can find the meanings of relationship types with the following simple query of the RDB:

SELECT RelationshipTypeID, Description FROM MSP_WssRelationshipType

The query results are shown in the following table.

RelationshipTypeID

Description

0

Link from issue to affected task

1

Link from issue to resolving task

2

Link from issue to other task

3

Link from issue to other risk

4

Link from issue to other issue

5

Link from risk to impacted task

6

Link from risk to triggering task

7

Link from risk to mitigating task

8

Link from risk to contingent task

9

Link from risk to other risk

10

Link from risk to other issue

11

Link from deliverable to providing task

12

Link from deliverable to consumer task

13

Link from deliverable to providing project

Following is the complete DeliverableData query for the project review report.

SELECT   MSP_WssRelationshipType.RelationshipTypeID,
         MSP_WssRelationshipType.Description, 
         MSP_WssDeliverable.Title, 
         MSP_WssDeliverable.StartDate, 
         MSP_WssDeliverable.FinishDate, 
         MSP_WssDeliverable.CreatedDate, 
         MSP_EpmProject.ProjectName, 
         EpmProject.ProjectName AS [Related Project Name], 
         EpmTask.TaskName, 
         EpmTask.TaskIsCritical, 
         EpmTask.TaskStartDate, 
         EpmTask.TaskFinishDate, 
         MSP_EpmTask.TaskName AS [Related Task Name]
         
FROM     MSP_WssListItemAssociation 
            INNER JOIN MSP_WssRelationshipType 
               ON MSP_WssListItemAssociation.RelationshipTypeID 
                  = MSP_WssRelationshipType.RelationshipTypeID 
                  
            INNER JOIN MSP_WssDeliverable 
               ON MSP_WssListItemAssociation.ProjectUID 
                  = MSP_WssDeliverable.ProjectUID 
                  AND MSP_WssListItemAssociation.ListItemUID 
                      = MSP_WssDeliverable.DeliverableUniqueID 
            INNER JOIN MSP_EpmProject 
               ON MSP_WssListItemAssociation.ProjectUID 
                  = MSP_EpmProject.ProjectUID 
                  
            INNER JOIN MSP_EpmTask 
               ON MSP_WssListItemAssociation.RelatedItemUID 
                  = MSP_EpmTask.TaskUID 
                  
            LEFT OUTER JOIN MSP_EpmProject AS EpmProject 
               ON MSP_EpmTask.ProjectUID = EpmProject.ProjectUID 
               AND MSP_WssListItemAssociation.RelatedProjectUID 
                   = EpmProject.ProjectUID 
                   
            LEFT OUTER JOIN MSP_EpmTask AS EpmTask 
               ON MSP_EpmProject.ProjectUID = EpmTask.ProjectUID 
               AND MSP_WssListItemAssociation.RelatedItemUID 
                   = EpmTask.TaskUID
                   
WHERE        (MSP_WssRelationshipType.RelationshipTypeID = 12)

For more information about fields in the RDB tables and views, see the Reporting Database Schema reference (pj12ReportingDB.chm) in the Project 2007 SDK download. For E-R diagrams of the main RDB tables and views, the RDBSchema.zip file in the SDK download contains a Microsoft Office Visio diagram and related information.

See Also

Concepts

Report Pack Setup

Other Resources

Working with Data in Reporting Services