How to correctly delete already submitted actuals using PSI statusing service? RRS feed

  • Question

  • Hi,

    What is the correct way to delete already submitted actuals using PSI statusing service, so that ActualStartDate is updated/resetted?

    We are using Project Server 2010 with protected actuals.

    Our users are submitting actuals on a daily Basis (technically by using PSI, UpdateStatus / ChangeXML /...)

    We're facing a problem, if we have to delete actuals later, for example if user choose wrong Task before.

    In oder to delete already submitted actuals, we're submitting a new ChangeXml with ActualWork = 0 for that day.

    The actuals for that day are correctly set to zero, BUT: the ActualStartDate for the task is kept ... I think this is because we're not deleting correctly, but submitting an update for that day (worktime = 0) 

    So for example:

    1. user submits 8 h for monday and 8h Friday

    2. user deletes the 8h for Monday

    --> ActualStartDate is still Monday, the Task is interrupted from Monday to Friday

    much like: how-to-delete-zeros-in-actuals

    Changing the ActualStartDate manually does not work. Timephased data is moved, syncing with protected actuals recreats the interrution.


    • Edited by Da Flo Wednesday, February 11, 2015 4:54 PM typo
    Wednesday, February 11, 2015 4:53 PM

All replies

  • Hi,

    we observed, that when a user deletes ALL of already submitted actuals and afterwards submits new actuals, this Task is rescheduled as expected again (no "wrong" ActualStartDate)

    So as a workaround to fix the described problem, we created a little tool that:

    - determines tasks that seems to have mentioned problem

    - cache ActualsByDay with ActualWork > 0 (so we can restore it later on)

    - delete all actuals by submitting ActualWorktime = 0

    - reSubmit previously cached ActualsByDay

    • Edited by Da Flo Thursday, February 12, 2015 8:23 AM
    Thursday, February 12, 2015 8:09 AM
  • Thank you, I am facing the same requirement from my client. I think this is a good workaround, but something tells me that there has to be a better way.

    On a related note, how are you reading the actuals that have already been posted? I find that it's difficult, if not impossible, to grab this timephase information from the PSI using an admin account. The methods available to read the data only work for the currently logged in user. I think I am going to have to go to the reporting DB for this. Was that your solution as well?


    Thursday, February 12, 2015 7:17 PM
  • I agree, there should be a better solution to solve this problem!

    Yes, we're getting the current actuals from the reporting DB MSP_EpmAssignmentByDay_UserView.

    like this:

    DECLARE @taskUID uniqueidentifier = 'E9EF9163-B953-47A8-BD48-615DFFB717AF'
    SELECT ABD.AssignmentUID, ABD.TaskUID, ABD.ProjectUID, ASS.ResourceUID, ABD.AssignmentActualWork, ABD.TimeByDay  
    FROM ProjectServer_Reporting.dbo.MSP_EpmAssignmentByDay_UserView as ABD 
    JOIN ProjectServer_Reporting.dbo.MSP_EpmAssignment as ASS on ASS.AssignmentUID = ASS.AssignmentUID and ass.TaskUID = abd.TaskUID
    WHERE abd.AssignmentActualWork > 0  and abd.TaskUID = @taskUID

    Friday, February 13, 2015 9:49 AM