Skip to main content

Project Server Help Blog

Go Search
Project Server Help Blog
Project Server Experts Community
MSProjectExperts
Training Schedule
Contact Us
  

Project Server Help Blog > Categories
Project Server 2010 Must Read


Implementing and Administering Microsoft Project Server 2010
sets the deployment Gold Standard. Do not start your Microsoft Project Server 2010 implementation without it!

 

New York, NY, May 13, 2010 –msProjectExperts essential reference for Microsoft Project Server 2010 begins shipping June 14, in step with the general availability launch of the Microsoft Office 2010 suite. "We are pleased to announce the pre-sale availability of our most popular book in our series for Microsoft Project Server 2010 and Microsoft Project 2010," commented Gary Chefetz, Microsoft Project MVP and the book's primary author. "My co-authors Dale Howard, Tony Zink and I are very excited to be first to market with Project Server 2010 guidance, especially considering the importance of this release," he continued.

Project Server 2010 is a landmark release of Microsoft's market-leading project and portfolio management software. "This is the one I've been waiting for," remarked Chefetz. "This release fulfills the potential I saw in this software when I first started using it as a PMO Director in 2000, when Microsoft first released Project Central. Project Server 2010 connects enterprise project management, enterprise portfolio management, resource management and business intelligence in an unprecedented package through the marriage of Microsoft's project management and SharePoint 2010 technologies."

Implementing and Administering Microsoft Project Server 2010 covers all aspects of Project Server deployment, from installation through configuration, and includes non-technical topics such as preparing an organization for an enterprise project management deployment and providing techniques for organizational change management. "Time and again we see organizations master the technical challenges of deploying an enterprise project management tool, but fail to plan for the organizational challenges, which very often prove to be the most difficult," Chefetz said. "We tackle this right up front in Implementing and Administering Microsoft Project Server 2010, and follow this guidance with best-practice considerations throughout the book."

At 912 pages, Implementing and Administering Microsoft Project Server 2010 includes extensive SharePoint Server 2010 management guidance and a strong introduction to configuring and managing Microsoft's business intelligence stack, including Excel Services and PerformancePoint Services. "We show you how to get started with SharePoint Server 2010 workflows, how to build and deliver Excel reports and how to build dashboards for your Project Server 2010 implementation," commented Chefetz.

Implementing and Administering Microsoft Project Server 2010 is available directly from msProjectExperts or your favorite bookseller. For a limited time only, you can pre-order your copy from msProjectExperts at special pre-order pricing.

Contact: info@msprojectexperts.com

A Resource Changed a Task Start date in My Tasks, Why doesn’t this Show in the Gantt Chart View?

The above captioned question comes up periodically in the Microsoft Communities so I thought I might as well create a post on this topic. When users make changes to their assignments in the My Tasks page, project managers can see the change in the Approvals page and after approving the update; they go looking for the new date in the Gantt Chart view in Microsoft Project and do not see the new date reflected either in the data sheet or the Gantt. This is the result of a common misunderstanding about how this feature works.

You need to keep in mind that your resource is changing the task at the assignment level. So, you must apply an assignment view such as Task Usage or Resource Usage, and you will then see the new date for the assignment. These changes do not roll up to the task level automatically to account for the fact that you can have multiple assignments on a task and Microsoft obviously didn't want to invest in the business logic to control the rollup. So, you have a couple of choices:

  1. Live with the discrepancy between task planned start and assignment planned start (doesn't look pretty on the Gantt chart).

     

  2. Roll up the new start date to the task level manually by adding a Start No Earlier Than (SNET) constraint and add a note to the task to document your schedule change.

     

  3. Create a macro to do the rollup - keeping in mind that if there are multiple assignments on the task, that you need to handle the decision logic that might entail.

     

  4. Wait for the date to true up when the resource posts an actual start date.

The good news is, as option number four suggests, the data will eventually true up when a resource reports an actual start date, which is the standard behavior of the Project scheduling engine. Planned Start always equals Actual Start after an actual start date is entered because you can't continue to plan to start an activity on a date uncertain, once you establish a date certain for said activity.

Data Differences between the Timesheet Cube & MSP_Project_Timesheet Cube in Microsoft Project Server 2007

The fact that Project Server has two different "Timesheet" cubes, alone, is an understandable source of confusion for many users, but when people then discover that in most Project Server implementations where both of these contain actual work data, that most often these contain very different data they get really puzzled. This can be particularly noticeable when you look at the data summarized by resources or projects. While much of the task and assignment line-level data may appear to be identical, even this data can vary widely. Not only is this a source of confusion, it's rather disconcerting to many new Project Server users who immediately become suspicious of all the data in Project Server 2007.

To get comfortable with the data differences you first have to understand that the data for these two cubes originate from different data sources. That's why the Microsoft product team created two distinct cubes in the first place. The Timesheet Cube shows actual work reported through the timesheet system in Project Server 2007, which is completely isolated from the actual work record recorded in the project other than the fact that data entered through the timesheet system can be pushed through the My Tasks page and into the Project Plans themselves. The SP_Project_Timesheet shows the actual work record as it is recorded in the Project file. Because the product team wanted to make the configuration of Project Server 2007 as flexible as possible, you can choose to configure your system to collect time in the Timesheets without ever sending the information to project, or you can choose to send some information to the project, or you can configure Project Server 2007 to force all users to enter all time (Time entry by Timesheet only. Users will sync to update tasks option) through the timesheet and you can mandate that the actual work record in Project 2007 always be equal to the time collected in the Timesheets (Restrict updates to Project Web Access option). Of course, you can also choose to disable the Timesheet system, but then this data duplicity issue doesn't apply.

There are numerous reasons why the data in these cubes are not always in sync, including some obscure bugs in the project client that caused alteration of actual work and that have just recently been resolved in the December 2009 CU. With that said, bugs are the least common reason for discrepancies unless you're using the Restrict updates to Project Web Access option, which locks down the system rather tightly. Without applying that setting, project managers can update the project plans directly, which can cause actual work to change in many ways. For example, suppose a PM updates a task status directly in the project plan where a resource is assigned. This action causes the system to impute actual work for the assigned resource that will never show in the timesheet cube. As this is a very common practice, in many, if not most cases, you are very likely to see more actual work registered in the project plan than in the timesheets, unless of course, your PMs are also in the habit of deleting completed tasks, which has the exact opposite impact. Using the more restricted setting, however, puts the system into a very rigid and unforgiving state in its effort to maintain integrity between the Timesheet record and the Project record. Unless organizations have very experienced Microsoft Project practitioners operating a high-level of maturity with the tool, this setting is not practical because it causes most novice users untold grief in managing their plans.

Remember, also, that the Timesheet cube may contain actual work entered against Administrative task classifications and that this data shows only in the Timesheet cube and never makes it into a project record. If you use the Administrative time feature, you need to exclude this data in your analysis views in order to begin to compare roll-up data between the Timesheet cube and the SP_Project_Timesheet cube, which remains a problematic challenge unless you are willing to commit to the restrictive system options.

Project Server Trick -- Add Process Instructions to the New Issue and New Risk Forms

As I mentioned in my previous post, 'Hacking PWA with Web Parts' (http://www.projectserverhelp.com/Lists/Posts/Post.aspx?ID=7), many pages in PWA and in the Project Workspaces are web part pages, and you can manipulate them easily through your web browser. You can add, remove, and rearrange web parts on these pages quite easily without any programming. You can usually identify the editable web part pages quite easily by simply pulling open the 'Site Actions' menu located near the upper right corner of a page; editable web part pages show the 'Edit Page' option under the 'Site Actions' menu:

 

However, if you pull open the 'Site Actions' menu on any of the 'New Item' pages in a Project Workspace, such as the new Risk form shown here, you see that the menu has no 'Edit Page' option:

 

The 'New Item' pages in a Project Workspace are in fact editable web part pages, but we need to perform a javascript trick in order to switch the page into edit mode.

While displaying a 'New Item' page in your web browser, enter the following directly into the web browser address bar, then hit the [Enter] key...

javascript:MSOLayout_ToggleLayoutMode()

...and voila, the javascript switches the page into edit mode!

 

You can now add any web parts you like to the 'New Item' page, such as a Content Editor Web Part (or CEWP... one of my favorites!) to display process information or instructions for logging a new project risk:

 

When you are finished manipulating the page, click the 'Exit Edit Mode' link in the upper right corner of the page, located immediately below the 'Site Actions' menu:

 

You will then see your beautifully re-crafted 'New Item' page... ready for use:

 

For more information about how to add, remove, or rearrange web parts on a web part page, see my previous post, 'Hacking PWA with Web Parts' (http://www.projectserverhelp.com/Lists/Posts/Post.aspx?ID=7).

Good luck!

Which Project Server Instance Are You Connected To?

When you connect your copy of Microsoft Project Professional 2007 to an instance of Project Server 2007, Project Pro does not make it immediately obvious which instance it is connected to. When you look at the Project Pro 2007 interface, it may display that you are "Connected" on the lower status bar, but does not display the instance...

 

To determine which Project Server instance you are connected to, select...

Tools > Enterprise Options > Microsoft Office Project Accounts

In the 'Project Server Accounts' dialog, it displays the "Current account" immediately below the 'Add' button:

 

Good luck!

Crowdsourcing the Solution to Time Tracking

 

Time Tracking Stinks

 

Let's face it... nobody likes to track their time. It's not fun, it's inconvenient, and it provides very little value for most of the thousands upon thousands of people who are asked to do it every day / week / month. It's not extremely difficult or time consuming to do in most cases, but nonetheless it still stinks. Whether they are using paper-and-pencil timesheets, Project Server timesheets, or another third party timesheet tool, I bet that most people would be tickled pink to hear that they never need to perform this boring and tedious task ever again.

 

It Stinks, But We Need It

On the other hand, I doubt that anyone in our community would deny the benefits of capturing data that describes how people spend their working time. We need it to status project and operational work, we need it to justify headcounts, and we need it to bill our customers... just to name a few reasons. If captured consistently and completely, the data can be extremely valuable:

  • What if you discovered that your personnel currently spend 30% of their time on projects? What if you could increase it to 50%?
  • What if you discovered that some of your personnel are 90% billable, but others are only 20% billable?
  • What if you discovered that the average work week within your department / business unit is 65 hours? What if you discovered that it is 32 hours?

 

Let's Be Innovative!

 

Until someone in a laboratory discovers a way to tap directly into our brains and record what we are thinking and doing throughout the workday, an interim solution would be extremely helpful. This solution should address the age-old problem of time tracking... the need to capture the data to manage and improve the business, while at the same time making it effortless for the company personnel to capture. After all, if we ask our personnel to follow a process or utilize a tool that is confusing or tedious, then we will most likely end up with a garbage-in, garbage-out situation.

Many existing solutions are merely slight variations from one another; a timesheet consisting of a list of tasks or activities shown in a table or form, with daily or weekly columns for entering how much time was spent on each. A truly innovative solution would cast aside any existing time tracking paradigms... no more timesheets, no more typing work hours into a form, and no more waiting until the end of the day / week / month to capture the data.

One example is a shop floor solution in which an employee swipes their ID card when they begin working at a station or work center, then swipe again when they leave the station. A system automatically tracks the amount of time that the person spent performing that activity... no manual time entry required.

With the widespread use of mobile phones, RFID (Radio Frequency ID) tags, text messaging, social networking tools, and other emerging technologies, we should be able to invent some very interesting methods of tracking our company time.

 

Crowdsourcing the Solution

 

In an effort to crack open the time tracking problem that so many companies have, I would like to engage the community to do some brainstorming. Here are a few thought starters to get the conversation rolling:

  • What specific aspects of time tracking stink?
  • What types of working and non-working time need to be captured?
  • How accurate does the data need to be?
  • How granular does the data need to be?
  • How often does the data need to be captured?
  • How often does the data need to be submitted?
  • Is it better for people to manually enter the data into a tool?
  • Is it better for a tool to automatically ask people for the data?
  • Where should the data be captured?
  • What types of devices should people use to capture the data?
  • Should it be a stand-alone tool, or embedded within other software / tools?
  • Should the tool utilize social networking platforms?

Please leave your ideas, suggestions, and other comments here.

Thanks!

Monitor Your Project Server Investment by Measuring Project Web Access Traffic and Usage

When it comes to implementing Project Server, many would agree that installing and configuring the tool is the easy part; the hard part comes when you try to 'motivate' everyone in the organization to use the system properly and consistently. Although forcing some people to log their task progress or view the online reports that you spent hours building can be an exercise in futility, at least we can monitor usage patterns to get some insight into who IS using the system and which features or reports / views they are using on a regular basis.

This technique is for PWA only and will not allow you to see Project Professional usage, and it will not allow you to see ALL areas of PWA that people are accessing. Although this technique is limited to monitoring usage of any PWA web part page that is editable via the web browser, it does not require any direct server-level access to implement. Here's how it works:

  • Create a somewhat hidden custom SharePoint list ('traffic log') within the PWA web site to track page visits.
  • Switch one or more PWA pages into edit mode and drop some javascript into a Content Editor Web Part (CEWP); the javascript will grab the page's address whenever the page is visited and create a new entry in the 'traffic log' list.

That's it... nothing to it! Let's get started...

 

Create the Traffic Log

1. Visit PWA and select Site Actions > Create:

 

2. On the Create page, select Custom List:

 

3. On the New page, enter a Name for the list (such as trafficlog), select No for Display this list on the Quick Launch, then click the Create button:

 

4. On the trafficlog page, select Settings > List Settings:

 

5. On the Customize trafficlog page, in the Columns section, select the Title column:

 

6. On the Change Column page, change the Column name to page, then click the OK button:

 

7. On the Customize trafficlog page, scroll down to the Views section and click the All Items view:

 

8. On the Edit View page, select the Display check box next to the Created and Created By columns, then click the OK button:

 

Add Javascript to Pages for Tracking (Using PWA Home Page as Example)

1. Visit the desired PWA page (the PWA Home page, in this example) and select Site Actions > Edit Page:

 

2. With the page in edit mode, click the orange Add a Web Part bar that spans the entire width of the Header web part zone above the Reminders web part:

 

3. In the Add Web Parts to Header dialog, scroll down to the Miscellaneous section, select the Content Editor Web Part, then click the Add button:

 

4. With the CEWP on the page, open the edit menu (located in the upper right corner of the new web part) and select Modify Shared Web Part:

 

5. In the newly-opened Content Editor Web Part panel on the right side of the page, click the Source Editor... button:

 

6. In the Text Entry dialog box, paste the following javascript, then click the Save button:

 

//********** START COPY JAVASCRIPT BELOW THIS LINE **********

<script language="javascript">

function PostToTrafficLog()

{

var siteurl = "http://yourprojectserver/pwa";

var trafficlogname = "trafficlog";

try

{

wsURL = siteurl + "/_vti_bin/Lists.asmx";

//SOAP Action and XML

var wsSoapAction = "http://schemas.microsoft.com/sharepoint/soap/UpdateListItems";

var wsXML = '<?xml version="1.0" encoding="utf-8"?>';

wsXML += '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ';

wsXML += 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" ';

wsXML += 'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">';

wsXML += '<soap:Body>';

wsXML += '<UpdateListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">';

wsXML += '<listName>' + trafficlogname + '</listName>';

wsXML += '<updates>';

wsXML += '<Batch OnError="Continue" ListVersion="1">';

wsXML += '<Method ID="1" Cmd="New">';

wsXML += '<Field Name="ID">New</Field>';

wsXML += '<Field Name="Title">'+ window.location.href + '</Field>';

wsXML += '</Method>';

wsXML += '</Batch>';

wsXML += '</updates>';

wsXML += '</UpdateListItems>';

wsXML += '</soap:Body>';

wsXML += '</soap:Envelope>';

//Create XML Document and get HTTP response using XMLHTTP object

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");

var httpResponse = getServiceResults(wsURL, wsSoapAction, wsXML);

}

catch(Exception)

{

// Suppress any excess script errors to avoid user confusion.

}

}

function getServiceResults(url, soap, xml) {

//Send XML packet to web service and return HTTP response text

try {

if (xml.length > 0) {

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

xmlHttp.open("POST", url, false);

xmlHttp.setRequestHeader("SOAPAction", soap);

xmlHttp.setRequestHeader("Content-Type", "text/xml");

xmlHttp.send(xml);

if (parseInt(xmlHttp.status) == 404) {

return 404;

}

else {

return xmlHttp.responseText;

}

}

}

catch(e) {

alert(e.message);

}

}

PostToTrafficLog();

</script>

//********** END COPY JAVASCRIPT ABOVE THIS LINE **********

 

NOTE: You will need to change the following two values in the javascript, located on lines 4 and 5:

var siteurl = "http://yourprojectserver/pwa";

var trafficlogname = "trafficlog";

siteurl is the URL of your PWA site, and trafficlogname is the name of the custom traffic log list that you created previously. Update the values between the quotation marks to reflect your system.

 

7. In the Content Editor Web Part panel, expand the Appearance section, then enter a Title for the CEWP (such as Traffic Logger) and select None for Chrome Type (you may need to scroll the panel downward) and click the OK button:

 

8. Select Exit Edit Mode in the upper right corner of the page:

 

Repeat steps 1-8 in this section for every PWA page that you would like to monitor.

 

View the Traffic Log

If you chose to hide the trafficlog list from the Quick Launch menu, there is no direct way to access it; here is one option:

1. Click on the Documents heading in the PWA Quick Launch menu:

 

2. On the All Site Content page, click View All Site Content at the top of the Quick Launch menu:

 

3. On the All Site Content page, click trafficlog, located below the Lists heading:

 

Each time someone visits a PWA with the javascript tracking code, a new entry will be added to the trafficlog list:

 

Pages That Will Accept the Tracking Code Easily

Not all PWA pages are editable within the web browser; here are a few pages that are:

  • Home
  • My Work (tabbed Tasks, Timesheet, and Schedule page)
  • My Tasks
  • My Timesheet (not My Timesheets!)
  • Project Center
  • Resource Center
  • Resource Assignments
  • Data Analysis
  • Task Updates Approvals
  • Administrative Time Approvals
  • My Queued Jobs

 

Extra Credit

You may also notice that the Project Details page (ProjectDrillDown.aspx) is not editable out of the box; however, if you are careful and if you have direct access to the Project Server, you can make the page editable by using the information posted in Brian Smith's blog post here:

http://blogs.msdn.com/brismith/archive/2008/11/24/project-server-2007-where-did-my-web-part-go.aspx

If you DO choose to add the tracking code to the Project Details page, I would advise you to immediately remove the ability to edit the page after you are done.

Happy hacking!

Surrogate Timesheets Appear Under Timesheet Creator not Timesheet Owner in OLAP Cube

This issue comes up from time to time in the Project Server news group. The default structure of the Project Server 2007 reporting database attributes timesheet data to the Timehseet Creator rather than Timesheet Owner. This causes actual work to be distributed correctly in all cases where the Timesheet Owner and Timesheet Creator are one and the same, but this does not correctly support the distribution of actual work to the Timesheet Owner in the OLAP cube data for surrogate timesheets.

The following solution was provided in the Microsoft Project Server news group by frequent poster Pawel. It is also posted in our FAQ Pages. Please note that that altering the structure of the reporting database views is not supported by Microsoft, although extending the database is supported. Please take all necessary steps to recover to your starting state before attempting this solution. Make a backup of the original MSP_TimesheetActual_OlapView definition before using the following SQL to alter the structure:

Query to modify the ProjectServer_Reporting DB view (MSP_TimesheetActual_OlapView ) to provide the Timesheet Owner


USE [ProjectServer_Reporting]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW [dbo].[MSP_TimesheetActual_OlapView]
AS
SELECT
   ta.TimesheetLineUID as TimesheetLineUID,
   ta.TimeByDay as TimeByDay,
   t.OwnerResourceNameUID as LastChangedResourceNameUID, --This is important
   ta.CreatedDate as CreatedDate,
   ta.TimeByDay_DayOfWeek as TimeByDay_DayOfWeek,
   ta.TimeByDay_DayOfMonth as TimeByDay_DayOfMonth,
   ta.AdjustmentUID as AdjustmentUID,
   ta.ActualWorkBillable as ActualWorkBillable,
   ta.ActualWorkNonBillable as ActualWorkNonBillable,
   ta.ActualOvertimeWorkBillable as ActualOvertimeWorkBillable,
   ta.ActualOvertimeWorkNonBillable as ActualOvertimeWorkNonBillable,
   ta.PlannedWork as PlannedWork,
   ta.Comment as Comment
FROM
MSP_TimesheetActual AS ta FULL OUTER JOIN
dbo.MSP_TimesheetLine AS tl ON ta.TimesheetLineUID = tl.TimesheetLineUID
FULL OUTER JOIN
dbo.MSP_Timesheet AS t ON tl.TimesheetUID = t.TimesheetUID

Microsoft Launches New Microsoft Project 2010 Website

A great place to start your tour of the new features in the Microsoft Project 2010 product line-up is on Microsoft's new product introduction website http://www.microsoft.com/project/2010/en/us/default.aspx where product team managers Seth Patton and Keshav Puttsawamy introduce you to the current vision and all the exciting new features through video presentations. Those of you who have the current technical preview edition of the software, and those of you who plan on working with the first public beta, should sit through these as they will help guide your exploration of the new goodies in the tool set.

Bookmark this KB article: How to match release names with version numbers for Project 2007 and Project Server 2007

While much of the community was attending the Microsoft Project Conference last week, the support team at Microsoft added a great new resource to the Microsoft Knowledgebase last week. How to match release names with version numbers for Project 2007 and Project Server 2007 is an excellent reference for an often-asked question. I strongly urge you to bookmark this one for further reference.

1 - 10 Next