Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια

Project Server 2007 Pre-Populated Timesheet spookines

Today I encountered a rather intriguing new behaviour in Project Server 2007 timesheets. When a user creates a timesheet Project Server can check for any tasks that fall within the timesheet's dates and add lines for each of the tasks it find. Project Server will even check the % complete field of each task and fill the appropriate work hours for you in the timesheet, which can be a real time-saver.
This is called prepopulation and is controlled by the "Default Timesheed Creation Mode" setting in Timesheet Settings and Defaults.

If you don't like the prepopulated cell values, you can go change them or empty the cells. Before SP2 you could also delete any timesheet lines you didn't like. Once you saved your timesheet, the unwanted lines were gone. When you are assigned to a lot of projects you really want to delete any unwanted lines.

With SP2 though, this behaviour changed in an intriguing way. You can still delete the lines from the UI, but once you save the timesheet the lines are re-created using the prepopulation values. Yet the extra hours do not appear in the timesheet's total time! Should you save the timesheet with the resurrected values, the totals are updated to reflect the prepopulated hours as well. What gives?

Do the lines exist in the database? After some spellunking and SQL Profiling I discovered that the prepopulated-then-deleted lines do not appear in the MSP_TIMESHEET_LINES table of the Published database (that's where the timesheets live). That explains why the 'ghost' lines do not count in any sums. After you save the timesheet though, the lines re-appear in the table.

It would seem that a small bug in the Timesheet ActiveX control displays prepopulated values based on the user's assignments when it can't find any timesheet lines in the database. That's usefull the first time the timesheet is used but can be really annoying when you delete a line and it reappears like a ghost out of the grave. When you save the timesheet, the ActiveX control sends everything down to the server and the 'ghost' lines get resurrected.
Of course, I can't verify this without reverse-engineering the ActiveX, but the hypothesis seems to fit the facts.

Spooky!

A simple workaround is to empty each cell or fill it with 0s instead of actually deleting the lines. Unfortunatelly, some of my users are not so spiritually inclined, what with over 100 tasks assigned to each timesheet ....

UPDATE: Duuuh, the timesheet page doesn't use an ActiveX control, it is a .NET Page using a Timesheet webpart! It's the Project Center page that uses an ActiveX control! Which is good news, because now I can check the timesheet page with Reflector ...

UPDATE 2: Duudaaah, the search ends at the obfuscated Microsoft.Office.Project.PWA.WebParts.TimesheetPart.LoadTimesheetData method ...

UPDATE 3: Looks like this is not a bug, but a "feature" (here, here and in the KB) ??! So that you don't forget to notify your project manager that your task needs to be removed? Then why not disable the Delete button for this timesheet line? Or better yet, why not let the organisation decide whether the PM has to approve the timesheet line deletion by adding a "Delete prepopulated timesheet lines" permission ?

 

Έχουν δημοσιευτεί Δευτέρα, 1 Ιουνίου 2009 8:00 μμ από το μέλος Παναγιώτης Καναβός
Δημοσίευση στην κατηγορία: , ,

Ενημέρωση για Σχόλια

Αν θα θέλατε να λαμβάνετε ένα e-mail όταν γίνονται ανανεώσεις στο περιεχόμενο αυτής της δημοσίευσης, παρακαλούμε γίνετε συνδρομητής εδώ

Παραμείνετε ενήμεροι στα τελευταία σχόλια με την χρήση του αγαπημένου σας RSS Aggregator και συνδρομή στη Τροφοδοσία RSS με σχόλια

Σχόλια:

Χωρίς Σχόλια

Ποιά είναι η άποψή σας για την παραπάνω δημοσίευση;

(απαιτούμενο)
απαιτούμενο
(απαιτούμενο)
ÅéóÜãåôå ôïí êùäéêü:
CAPTCHA Image