Cascade Skyline - with Microsoft Logo and Project Support header - author Brian Smith

Timesheet Classifications - what they don't do

Timesheet Classifications - what they don't do

  • Comments 13

With the change in relationship between time tracking in timesheets, and the updating of status in tasks, that we introduced in Project Server 2007 there has been some confusion.  One area that after working on a case yesterday needs a little more explanation is timesheet classifications.  Where you create these in PWA it give the following description:

Edit, Enter Line Classification

You can duplicate timesheet lines for business purposes or accounting reasons. To do this, define timesheet line Classifications, which will become the unique identifier for a timesheet line.

What it doesn't say directly is that these classifications are not for tasks - and only the timesheet classification of "Standard" can be imported to the "My Tasks" page through "Import Timesheets".  All other classification types will be ignored and any lines will not display in the grid to be imported.

The intention behind this design is that other 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.  Obviously there could be other ways to handle this and the travel may well be a task on its own. 

In the support incident where this caused some issues the customer was trying to use the classifications as a way of flagging different activities within the same task - but as the only the standard line goes through to the time tracking in the project this would not work.  The solution agreed here is that the project requires tasks for all the different activities being performed.  You could also do some sort of server side event that allows you to add time in different timesheet classifications against the same task - and then these get consolidated in the "Standard" row - but analysis would only be available in the timesheet and reporting database.

image

As an example only the 6h highlighted for the ABC Outlook Task 1 would be available for import to "My Tasks" - the research and travel time would not. 

I hope this helps clear up any misunderstanding of this feature.

Leave a Comment
  • Please add 4 and 8 and type the answer here:
  • Post
  • Did someone notice, the order of the timesheets in the drop down field (on selecting the timesheet period to import) is not sorted?

    Maybe it sorts by name, but if nobody renames his or her timesheets, all timesheets are named "my timesheet".

    Somebody with a solution for that?

    Thorsten

  • Hi Brian,

    We were trying to do timesheet updating at summary task level instead of lowest task level. The team members were able to update & submit the timesheets, and the timesheet manager was able to import timesheet and do task status updating. However, when the project is published, the % complete for the summary task shows 0%, though the % work complete shows the correct figure.

    There wasn't any problem if the timesheet update is done at the lowest task level.

    Is there any way for us to use timesheet for task progress updating at summary task level, as we do not want to update a long list of tasks in our timesheets?

    Appreciate your kind advice.

    Ken (Singapore)

  • Hi Ken,

    If the assignments are at the lowest level than that is where the task status needs to be reported.  It is not possible for Project to know which task to update if you are only reporting against the summary - so the % complete must stay at zero.  The only (bad) option would be to assign to the summary task.  Better would be to use the tied timesheet/statusing from Codeplex - but you would still need to report at the tasks level.

    Brian.

  • You can use classifications on timesheets to categorize the work being performed in your organization.

  • I am receiving a queue error TimesheetLineHasNonExistentItem.  Here's XML form queue job.  Please help.  Thanks.

    [ApplicationException: Queue request failed "Failed" Job ID: 7ccf575b-4245-463b-ac5b-d339f103b5a6.

    <?xml version="1.0" encoding="utf-16"?>

    <errinfo>

     <general>

       <class name="ASSN_UID">

         <error id="3213" name="TimesheetLineHasNonExistentItem" uid="d42a2291-cc0e-4cb3-b200-4dd6c7d3f74b" columnName="ASSN_UID" value="6cd3edac-43b7-4938-84b6-8e0358e9f8d8" />

       </class>

       <class name="Queue">

         <error id="26000" name="GeneralQueueJobFailed" uid="f7bacf3a-c48a-4b9c-9896-5140ca79da65" JobUID="7ccf575b-4245-463b-ac5b-d339f103b5a6" ComputerName="AMEDWSAPGR20" GroupType="TimesheetUpdate" MessageType="UpdateTimesheetMessage" MessageId="1" Stage="" />

       </class>

     </general>

    </errinfo>]

      ChppmPSI.QueueSystem.WaitForQueue(Guid jobId) in C:\projects\apps\OPM\Dev\OPM Web\ChppmPSI\QueueSystem.cs:155

      ChppmPSI.Timesheet.CompleteTimesheet(TimesheetDataSet dsTS, Guid tsPeriod, Int32& jobStatus, Boolean WaitforQueue) in C:\projects\apps\OPM\Dev\OPM Web\ChppmPSI\Timesheet.cs:417

    [Exception: There was an error completing the timesheet.  Please try again later.  Error: Queue request failed "Failed" Job ID: 7ccf575b-4245-463b-ac5b-d339f103b5a6.

    <?xml version="1.0" encoding="utf-16"?>

    <errinfo>

     <general>

       <class name="ASSN_UID">

         <error id="3213" name="TimesheetLineHasNonExistentItem" uid="d42a2291-cc0e-4cb3-b200-4dd6c7d3f74b" columnName="ASSN_UID" value="6cd3edac-43b7-4938-84b6-8e0358e9f8d8" />

       </class>

       <class name="Queue">

         <error id="26000" name="GeneralQueueJobFailed" uid="f7bacf3a-c48a-4b9c-9896-5140ca79da65" JobUID="7ccf575b-4245-463b-ac5b-d339f103b5a6" ComputerName="AMEDWSAPGR20" GroupType="TimesheetUpdate" MessageType="UpdateTimesheetMessage" MessageId="1" Stage="" />

       </class>

     </general>

    </errinfo>]

  • Plz tell me how we can check the period status of timesheet by passing Timesheet id

  • Hi par,

    Not exactly sure what you mean by period status here.  You can read the timesheet by id using the ReadTimesheet method of the Timesheet web service (you may need impersonation or the right permissions to read other resources timesheets).  You then have the enumeration of status in the HeadersRow of the returned dataset - and also the period - which is identified by the WPRD_UID.  The Admin web service lets you get at the details of the timesheet periods.

    Best regards,

    Brian.

  • Hi brain,

    actually what i want to do?i do not want to use readtiemsheet.

    i wanto check timesheet period status(open or closed).what i did please find below:

    Guid CTSGuid = e.TsUID;(this is my timesheet UID)

    after that by using this admin webservices i found period id(WPRD_UID) of this timesheet.

    Guid currentuid = MyTimesheetSrv.ReadTimesheet(CTSGuid).Headers[0].WPRD_UID;

    now i want to know the period status of currentid(whether its open or closed?)

    please help.

  • Hi brain,

    actually what i want to do?i do not want to use readtiemsheet.

    i wanto check timesheet period status(open or closed).what i did please find below:

    Guid CTSGuid = e.TsUID;(this is my timesheet UID)

    after that by using this admin webservices i found period id(WPRD_UID) of this timesheet.

    Guid currentuid = MyTimesheetSrv.ReadTimesheet(CTSGuid).Headers[0].WPRD_UID;

    now i want to know the period status of currentid(whether its open or closed?)

    please help.

  • please tell me which event will fire when timesheet manager approve or reject timesheet.and plz tell me MyTimesheetSrv.ReadTimesheet(CTSGuid).Headers[0]. WPRD_STATE_ENUM = 1) is it valid statement?

  • hi Brian,please tell me event name by which timehsset manger is approving or rejecting the timesheet.

  • Is this explanation of Line Classifications true for Project Server 2013? I am looking for any materials regarding Line Classifications so as to get a better understanding of their use and what they do and do not do if anybody has some good references or materials it would be appreciated.

  • Hi Brain,

    Could you please let me know how do we assign line classification to a Timesheet Line in project server 2013 csom? The LinClass is an enum in csom and is defined as shown below

    public enum TimeSheetLineClass

       {

           StandardLine = 0,

           SickTimeLine = 1,

           VacationLine = 2,

           AdministrativeLine = 3,

       }

    I could not find any property that could be associated with the Line class on the TimeSheetLine Class in csom.

    Thanks,

    Nishant

Page 1 of 1 (13 items)