Includes methods for managing status updates and assignments in Project Server.
[Statusing Web service].Statusing
Namespace: [Statusing Web service]
Service reference: http://ServerName:32843/[Project Service Application GUID]/PSI/Statusing.svc
Web service reference: http://ServerName/ProjectServerName/_vti_bin/PSI/Statusing.asmx?wsdl
'Declaration <WebServiceBindingAttribute(Name := "StatusingSoap", Namespace := "http://schemas.microsoft.com/office/project/server/webservices/Statusing/")> _ Public Class Statusing _ Inherits SoapHttpClientProtocol 'Usage Dim instance As Statusing
[WebServiceBindingAttribute(Name = "StatusingSoap", Namespace = "http://schemas.microsoft.com/office/project/server/webservices/Statusing/")] public class Statusing : SoapHttpClientProtocol
The Statusing class is used to provide status information and update status on assignments. Statusing generally uses user context-based security. Changes in Project Server 2010 enable reading and updating statusing information without using impersonation.
New methods in Microsoft Project Server 2010 include the following:
If the logged-on user is not the specified resource, the ReadStatusForResource and SubmitStatusForResource methods do not require impersonation.
An application user who has the StatusBrokerPermission global permission can use the UpdateStatus method to update assignment status without impersonation, by including the new ResID attribute of the Assn element in the changeXml parameter. For more information about the ChangeList schema, see Introduction to the ChangeList Schema and Statusing ChangeXML.
With Project Server 2010 Service Pack 1 (SP1), you can set the timephased status for manual tasks, by using the UpdateStatus method. Before SP1, you could only set timephased status for auto-scheduled tasks.
Users play three roles in the Statusing environment: Status Manager, Assignment Owner, and Work Resource.
The status manager is sent assignment updates, new assignments, and new tasks for approval. The status manager is most often the project manager. The project manager can delegate this task to another user.
The assignment owner is responsible for the assignment. The assignment owner reports status, makes updates, or delegates as appropriate. Changes made by the assignment owner must be approved by the status manager.
The work resource actually provides the work on this assignment. The work resource can be the same as the assignment owner, but can be different; for example, a foreman can be an assignment owner, and the members of his crew would be the work resources.
The Statusing class also makes use of team resources. A full discussion of team resources is beyond the scope of this section. Team resources are resources that can be given assignments in proxy for a group of resources on a team. Work resources and assignment owners can then reassign work to and from the team resource.
The lifecycle of an assignment can be confusing. There are four places where assignments can be created or stored: the Draft database, the base assignment table, the saved assignment table, and the updated table.
Figure 1. Status update life cycle
Assignments are first created in the original project in the Draft database. When the project is published, the assignment is copied to the base assignment table and an identical copy is copied to the saved assignment table. When the assignment owner or resource makes changes to the assignment, the changes are kept in the saved assignment table. When the assignment owner or resource publishes the changes, the updated assignment is copied to the updated assignment table. The assignments stored in the updated assignment table are visible to the status manager, who can accept or reject the changes. If the status manager accepts these changes, the changes are copied to the new working copy of the project in the Draft database. These changes must be published from the Draft database to the Published database to update the base assignments table with the new information.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.