none
Adding time based actual effort through PSI for each resource (With out using Statusing Web services) RRS feed

  • Question

  • Hi MSPS Expert Team,

    I am having a requirement of adding time based actual effort through PSI for each resource. 

    I got to know about Statusing Web Service, which use impersonation of each user and update the Actuals effort in PWA. 

    This solution does not satisfy my requirement, because of the following reason.

    •  Over here we need to share teh enterprise password with the Statusing component, as part of impersonation.  Which is unsecure in my case.

    My ultimate requirement is to update the actuals for each Assignment / Task on daily basis with out using impersonation concept.

    If some one worked on this type of requirement before, please suggest me a better solution.

    Thanks in Advance,

    Prakash Nagarajan.

    prakashnagarajan@live.in

    Monday, March 29, 2010 8:06 AM

All replies

  • Hi Prakash,

    You can use ReadStatusForResource, which does not use impersonation. It is a new method in Project Server 2010. A similar method is SubmitStatusForResource.

    --Jim

    Monday, March 29, 2010 1:49 PM
  • Jim,

      SubmitStatusForResource method gets only the updated Assignment Guids with comments.  Its like setting all the information with some other call and kicking off this method only to raise the PM Approval process.

      But how about setting the actual work for the resource on daily basis without using the impersonation context ?

    Regards,

    Prakash Nagarajan.

    Monday, March 29, 2010 2:41 PM
  • Hi Jim,

    Can you please explain how to use the SubmitStatusForResource method? I am using it to update the time based actual effort for another resource but I always get the AssignmentUidInvalid error. I can't figure where the error is coming from or where am I going wrong. Here is my code:

                changeXml.Append("<Changes>");
                changeXml.Append("<Proj ID=\"" + projectGUID.ToString() + "\">");
                changeXml.Append("<Assn ID=\"CA669AEB-F00E-4A69-B06B-BEA3F5180420\" ResID= \"97BAB1D2-6177-4991-BA35-6244F90995A0\">");
                changeXml.Append("<PeriodChange PID=\"" + pidActualWrk + "\" Start=\"2011-05-06T08:00:00\" End=\"2011-05-06T17:00:00\">180000</PeriodChange>");
                changeXml.Append("</Assn>");
                changeXml.Append("</Proj>");
                changeXml.Append("</Changes>");

                statusing.UpdateStatus(changeXml.ToString());
                statusing.SubmitStatusForResource(resourceGUID, null, "");

    Any help is appreciated. Please give me a link to an example where the SumitStatusForResource function is used in.

    Thanks, George

    • Edited by geo_d Wednesday, January 26, 2011 11:20 AM
    Wednesday, January 26, 2011 10:21 AM
  • Hi George,

    the date values catch my attention, are the Start and End date really correct in your example (Start 05/06/2011 Finish 01/01/2011) ?
    And you want to update/submit the value of 3 for actual work ? If 3 means 3 hours, i think it should be set to 180000, referring to the sdk     
     -> "...60*10000*8);// 8 hours".

    Greets
    Maik 

     

    Wednesday, January 26, 2011 10:56 AM
  • Hello Maik,

    Thanks afor replying. Sorry for my mistakes. No this is not the problem because in my actual application I am getting the start date, end date, and duration of work from a user's input. However, I just put some random values in the code posted above so that I will be able to post it on a forum and it will be clear for other readers (because my variable names do not imply what they actually are). I should have been more carefull in picking the values. Any other suggestions as to what may be the problem?

    Thanks, George

    Wednesday, January 26, 2011 11:01 AM
  • Hello George,

    one more thing, the corresponding task of the assignment you want to update is set to publish ? 

    Greets
    Maik

    Wednesday, January 26, 2011 11:07 AM
  • Hello Maik,

    Yes all of the tasks are set to publish (ofcourse except for the summary tasks which you can not set to publish) and the application user has the global permission StatusBrokerPermission.

    Thanks, George

    Wednesday, January 26, 2011 11:14 AM