Need to understand this epm behavior RRS feed

  • Question

  • Here's the scenario:

    Ms Project professional: Create a project, build a team (choose resources), create a task but don't assign anyone to that task yet.

    Go to pwa and in Timesheet page: Insert a ligne -> add yourself (you're in the team) to the task created. Everything works fine.

    Now read the TimesheetLine and it'll give you a completely different TASK_UID then the one in Project table for that task.

    In fact, the only thing I can relate the task in Timesheet and the one in Project is the task name.

    I need to understand why EPM works this way to (possibly) find a solution or a work around

    Thank you for helping

    Wednesday, April 6, 2011 2:29 PM


All replies

  • We need to know which version of Project, what Service Pack level and what Cumulative updates. Does this happen if you add yourself as a resource in Project Pro first?

    Rod Gill

    The one and only Project VBA Book Rod Gill Project Management
    Wednesday, April 6, 2011 9:40 PM
  • Project server 2010, cumulative update feb 2011.

    Yes I added myself as resource in project pro first


    Thanks for helping

    Thursday, April 7, 2011 2:12 PM
  • the timesheet uses line ID which are different than task ID
    Blog | Facebook | Twitter | Posting is provided "AS IS" with no warranties, and confers no rights.
    Project Server TechCenter | Project Developer Center | Project Server Help | Project Product Page
    Monday, April 11, 2011 8:12 PM
  • Hi

    Can you elaborate ? When I read a timesheet using PSI, I get a timesheetDataSet which contains timesheetdataset.LineRow.

    The members of LineRow class are listed here :

    And I see a TASK_UID property with this description : uniquely identifies the task source for this timesheet line item.

    By the way, this TASK_UID provides me the exact UID of the task within the related project, I only have the problem with self assigned task from timesheet in pwa.

    Thank you

    Tuesday, April 12, 2011 8:00 PM
  • I found the solution to my problem. Here's how I think it works, correct me if I am wrong.

    When you self-assigned to a task from timesheet (pwa). Timesheet will add a record in timesheetline with a new TASK_UID and ASSN_UID. The line is not approved yet from the task manager so nothing is official. If you reopen the project, the assignment's not shown.

    When the task manager approves the task, the assignment becomes official and it will reflect the change in the Draft database. You will see the assignment now if you reopen the project. Still nothing in the published database though.

    My problem is how I can link the task in TimeSheetLine to the task in the actual project. Obviously, project server keeps a link somewhere since it can link them together when needed.

    I finally found the link using the Statusing service and ReadStatus(GUID assn_uid, datemin, datemax) method. Using the assn_uid from timesheetline, It will return a dataset with Task Table. The taskrow in this table has a field TASK_PUBLISHED_UID which is the task_uid from the actual project.

    Now I can find the task_uid with the assn_uid from the TimeSheetDataSet.LineRow.

    I still don't understand why the real task_uid is not used since the beginning. I can understand the assn_uid is not official until approved but why not use the task_uid from project in TimeSheetLine.

    Someone can explains this ?

    Thank you

    Thursday, April 14, 2011 2:57 PM