PSI: ReadStatusTimephasedData, why an exception when task is compl

A

AntS

Hello,

Could you please help me? I am trying to generate a view that allows me to
see the "My Tasks" of any resource.

Using impersonation and the PSI statusing.asmx Service allows me to do this.

Unfortunately, a SOAP exception would be returned for "certain" assignments
and certain "resources":

<errinfo>
<general>
<class name="User has attempted to read status timephased data on an
assignment they do not own.">
<error id="20010" name="GeneralSecurityAccessDenied"
uid="ce73797c-9090-46af-9992-e66ff580e8e0" />
</class>
</general>
</errinfo>

As it turns out, the assignments affected are where they are 100% complete.
Can anyone shed any light on how to return the "My Tasks" (unsubmitted) for a
given resource, regardless of % complete? Or, why I cannot read this now via
the statusing.asmx service?

Many Thanks
Anthony
 
M

Maik

Hello Anthony,

you´re sure about using the right ResourceGuid and ResourceNTAccount name
for impersonation ? Remember you´ve to use the resource Guid/NTAccount from
the current AssignmentOwner, not the credentials from the assigned resource
to the specified assignment.

E.g i use StatusingWebSvc.ReadStatus method with impersonation to get a list
of the "current" assignments and then i´am using the ReadStatusTimephasedData
method , again with impersonation, to get the details for each assignments.

Greets
Maik
 
A

AntS

Thanks so much for your help.

I have used the method which you suggested - ReadStatus, Loop through
Assignments and call ReadStatusTimephasedData - and the SOAP exception is
avoided however the resultset is "missing" tasks that have been 100%
completed.

My aim is to see what was entered by a given user in the "My Tasks" screen
and currently I am missing all the tasks that have been set to 100%
completion.

Could there be some other way in which I must obtain this data?

Cheers
 
M

Maik

Hello Anthony,

maybe you try to call the ReadStatus method with the parameter (Guid.Empty,
DateTime.MinValue, DateTimeMaxValue) to get all assignments for the specified
user (of course you can set "normal" DateTime values to get a smaller
resultset). e.g you can filter the Assignment Table resultset for the
ASSN_PCT_WORK_COMPLETE column to get the assignments which are set to 100%. I
don´t know if there´s a faster way to get these data.

Greets
Maik
 
A

AntS

Thanks again for your help on this matter.

I noticed that the Stored Procedure that is called as a product of using the
Statusing ReadStatus webservice method is precluding tasks which are 100%
complete within the actual SQL selection.

From what you say, maybe I could create a filter and call ReadAssignments
that pulls the tasks that are 100% complete and are assigned to the resource
and then merge the resultset with my ReadStatus dataset.

I have of course tried the route of querying the data directly and reverse
enigneering a solution to decrypt the ASSN_CONTOUR_DATA but this feels just
plain wrong given I would then have to maintain it to keep it synched with
newer versions of Project Server.

I am really surprised how difficult this is so am grateful for your help.

Cheers
 
Top