S
Subramanian Vasudevan
We are interning in a software firm and are building a 3rd party Application
that integrates into Microsoft Project using the Microsoft Project Server
2007 PSI Webservices. We are facing a problem that we will be grateful if
anybody could solve.
These are the kind of Projects which will be supplied by our application.
All the Resources we use must fit into the category of Enterprise Resources,
since Status Updates through PSI are only possible with assignments of
Enterprise Resources. We have such need of performing time-phased actuals
updates on Resource Assignments.
Hence, the Global Resources must first be created in the Enterprise Pool if
not found, and then be imported into the Project's Team.
The flow of our algorithm for creating such a project given all the data is
as follows:
First create the empty Project in Project Server using QueueCreateProject
function. It will not have tasks and assignments yet. (roughly 1 second)
Go through the list of resources and create them in the Enterprise Pool if
not already found. (roughly 1-2 secs)
Import those Enterprise Resources into the Project's Team by using
QueueUpdateProjectTeam function. This step requires that the Project have
been created in the first place, otherwise it throws an exception. (roughly
1-2 secs)
Now add the list of tasks and assignments to an empty Project DataSet.
Use QueueAddToProject function to add the tasks and assignments to the
Project created in step 1. (roughly 3 secs)
Finally Publish the Project. (roughly 4-5 secs)
This way of doing things takes a lot of processing time, which we want to
avoid. Whereas if the same steps are carried out using the Microsoft Project
Client, the whole thing completes in one Queue Job called 'Project Save from
Project Professional', which seemingly does all 6 steps in much lesser time.
Are we missing something here? Is there a better way of doing the same thing
that takes lesser time? What is the proper method to create such a Project in
MS Project Server using the PSI? We would be very grateful if you could help
us out.
that integrates into Microsoft Project using the Microsoft Project Server
2007 PSI Webservices. We are facing a problem that we will be grateful if
anybody could solve.
These are the kind of Projects which will be supplied by our application.
All the Resources we use must fit into the category of Enterprise Resources,
since Status Updates through PSI are only possible with assignments of
Enterprise Resources. We have such need of performing time-phased actuals
updates on Resource Assignments.
Hence, the Global Resources must first be created in the Enterprise Pool if
not found, and then be imported into the Project's Team.
The flow of our algorithm for creating such a project given all the data is
as follows:
First create the empty Project in Project Server using QueueCreateProject
function. It will not have tasks and assignments yet. (roughly 1 second)
Go through the list of resources and create them in the Enterprise Pool if
not already found. (roughly 1-2 secs)
Import those Enterprise Resources into the Project's Team by using
QueueUpdateProjectTeam function. This step requires that the Project have
been created in the first place, otherwise it throws an exception. (roughly
1-2 secs)
Now add the list of tasks and assignments to an empty Project DataSet.
Use QueueAddToProject function to add the tasks and assignments to the
Project created in step 1. (roughly 3 secs)
Finally Publish the Project. (roughly 4-5 secs)
This way of doing things takes a lot of processing time, which we want to
avoid. Whereas if the same steps are carried out using the Microsoft Project
Client, the whole thing completes in one Queue Job called 'Project Save from
Project Professional', which seemingly does all 6 steps in much lesser time.
Are we missing something here? Is there a better way of doing the same thing
that takes lesser time? What is the proper method to create such a Project in
MS Project Server using the PSI? We would be very grateful if you could help
us out.