Project Server is a great product but it is an even better platform. It provides a basis for customized solutions that can be written for a huge variety of special situations. Way back with Project 98 and Project 2000 I worked with a company that did just that. We had an application that used direct database integration to build on the functionality that the desktop application of Project 98 and 2000 provided.
Many companies are seeing the added functionality that Project Server provides and they want to build on it to develop a specific customized solution for themselves or for their customers. Many of them are still using the direct database editing to do their integration. This is not a good idea.
The Project Server database is essentially two databases. One is used exclusively by Project Server to display and work with data on the web interface (Project Web Access). The other is used by Project Professional, the desktop scheduling tool. The two are kept in synch by Project Server. One of the reasons for this is so that a project manager can publish changes to the server for the 'world' to see but still have the working copy of the project that they are editing that is not seen by the world. Because of this synchronization that is going on it can be tricky to make direct database edits. It is easy to make an edit that seems right but then turns out to cause problems the next time the database is read by Project Pro or synched up with Server.
The irony is that for many of the most common actions you might need to take to integrate an application with Project Server there are methods to use in the Project Data Service (PDS). The PDS is the SOAP/XML interface for making programmatic access to Project Server functionality. You can do just about anything with a built in PDS method. For example it is possible to reconstruct the entire Project Web Access timesheet using standard PDS methods. The entire Outlook Calendar integration that ships with Project Server 2003 was built using standard PDS calls.
The moral is that if you are looking at doing Project Server integration work you NEED to look at the PDS reference found in the Project Server 2003 SDK. It will not only save you the trouble of corrupting your Project Server database with what you THOUGHT was a perfectly good database edit it will very likely save you tons of programming time since the methods most commonly only require you to pass in a few arguments instead of having to write complex SQL Stored Procedures.
Do yourself a favor and check out the SDK.
Comments