Update Project data --- PLEASE HELP!

N

newsgroups

I am trying to understand how i am supposed to update data in a Project Project: I am wanting to create a project and then create/update/sync tasks etc. in it from an external (Web, ASP.NET) application.

I thought PDS (calling methods via SOAP) was the way to go. Then I read (MSDN, "The Project Data Service and Microsoft Project Server Security Architecture"):
Ideally, client-side applications should only perform reads on the Microsoft Project Server database. If you need to update data, consider using a server-side PDS extension. If you absolutely must update Microsoft Project Server database tables directly, [...<dire warnings>...]

*If* I understand correctly, I have two possible approaches:

1. Write a server-side PDS extension, or write to Project Server database directly. *Either* way, from what I can see, I end up writing SQL "INSERT INTO..." statements, with all the consequences for data integrity/security/trying to understand the table contents & relationships correctly

2. Existing PDS Project Methods give me "ProjectsCheckout" & "ProjectsCheckin". I thought --- but now I'm not at all sure --- that this might (somehow) give me a Project I could update via Automation & the Project Object Model and then check back into Project Server having updated it. Is this what the standard Project Professional Windows client is doing when you make changes to a project opened from Project server and saved back?

So I'm trying to understand how (best) to go about updating Project data?
 
G

Gary L. Chefetz [MVP]

Please post this question at microsoft.public.project.developer where you're
more likely to get an answer to your question.




newsgroups said:
I am trying to understand how i am supposed to update data in a Project
Project: I am wanting to create a project and then create/update/sync tasks
etc. in it from an external (Web, ASP.NET) application.
I thought PDS (calling methods via SOAP) was the way to go. Then I read
(MSDN, "The Project Data Service and Microsoft Project Server Security
Architecture"):
Ideally, client-side applications should only perform reads on the
Microsoft Project Server database. If you need to update data, consider
using a server-side PDS extension. If you absolutely must update Microsoft
Project Server database tables directly said:
*If* I understand correctly, I have two possible approaches:

1. Write a server-side PDS extension, or write to Project Server database
directly. *Either* way, from what I can see, I end up writing SQL "INSERT
INTO..." statements, with all the consequences for data
integrity/security/trying to understand the table contents & relationships
correctly
2. Existing PDS Project Methods give me "ProjectsCheckout" &
"ProjectsCheckin". I thought --- but now I'm not at all sure --- that this
might (somehow) give me a Project I could update via Automation & the
Project Object Model and then check back into Project Server having updated
it. Is this what the standard Project Professional Windows client is doing
when you make changes to a project opened from Project server and saved
back?
 
E

Eran Dvey-Aharon

You are right about everything you wrote.
My company is also developing an integration with projet server 2003,
and decided to use server side PDS extension. Most of the extensions
we wrote read additional project information (using ADO and SQL
queries).
As you probably realize, the information exposed by the existing PDS
methods do not cover enough areas, and lack many basic operations.

Changing the database directly using update queries is a bit risky,
and might result in database corruption if you are not careful enough,
or fall on a Microsoft bug. Please tell me which data you intend to
change. It might be simple after all.

The second approch is using the object model. We thought about this
approch here, and desided not to try it. I don't know if you need to
do check out/check in if you take this approach. It sounds to me a
more robust way to write code, if you are planning to do many updated.
This might also be considerably slow

A third approach is mixed, and having a modifications request queue
set on the server, and on the server have an object model approach to
do these modifications on projects.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top