A new feature in Microsoft Office Project Server 2007 from 2003 is the Timesheet feature. Although, this a really cool feature, the design falls short in terms of actually getting the time from a timesheet into a task and then getting those tasks approved by Project or Assignment Managers. I won’t get into the whole, import Timesheet or how to programmatically automate the import and submit method, but if that’s something you want to do, there’s a great starter solution available on CodePlex by Christophe Fiessinger: http://www.codeplex.com/AutoStatusService
Timesheet Classifications are something that a Project Server Administrator can customize/add to their hearts content. Then, when a user goes to their PWA Timesheet and Adds a Task, they have the option to select a different classification other than Standard. So, why would you want to do this? Well suppose you want to duplicate timesheet lines for business purposes or accounting reasons. You would setup the specific classifications, then add tasks with the same name to your timesheet, but select a different classification each time. These duplicate tasks names with different classification names will become the unique identifier for a timesheet line.
The intention for multiple classifications can be used for business analysis of time related to the task that was not productive as far as working the task. So you may have spent 2 hours traveling to perform a task - and you may bill the customer, but this wasn't something directly related to performing the task - and in this scenario was not included in the planned time to perform the task. There are probably better ways to handle this scenario, but this is just an example.
Sounds great huh? Wrong! Here’s the caveat. When you use the Import Timesheets through the My Task section in PWA, only Standard timesheet classifications will appear, and only those tasks will be allowed to be imported. This is by design and is not a functional bug.
So, if you’ve gone down the rabbit hole or customization against the timesheet utilizing the web services via PSI, or if you’ve decided to create a custom timesheet interface that overlays Microsoft Office Project Server 2007 Timesheet functionality and you are utilizing classifications for various things, like unverified timesheet line items or to allow duplicate tasks for different departments, you have probably seen this error.
Event Type: Error
Event Source: Office SharePoint Server
Event Category: Project Server Timesheet
Event ID: 7851
Time: 1:10:43 PM
Standard Information:PSI Entry Point: Statusing.ImportTimesheet
Correlation Id: ead69630-b9b5-43f2-b7d7-81eade40b8ff
SSP Name: SharedServices1
PSError: TimesheetIncorrectPeriod (3208)
Timesheet period used '(null)' is invalid.
This is caused because programmatically, the ImportTimesheet method for the Statusing web services doesn’t know how to filter for only Standard classifications. So, what’s happening is that the system is trying to do something that it can’t do and therefore throws the error causing the time for that task to fail and come up missing. Change those lines back to Standard and try concatenating the tasks programmatically to create unique tasks and importing should work.