|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer|
PSI Reference Overview
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
The Project Server Interface (PSI) is the API for Microsoft Office Project Server 2007. This article is an overview of the PSI Reference for Project Server 2007.
There are two ways to access the PSI Web services: you can use the Project Web Access URL (for example http://ServerName/ProjectServerName/_vti_bin/psi/project.asmx) or the Shared Services Provider (SSP) URL (for example http://ServerName:56737/SharedServicesName/psi/project.asmx). Most applications use the path through Project Web Access, which checks Project Server permissions. The direct path to the PSI is through the SSP, which allows you to write middleware components and applications using impersonation. For more information, see Using Impersonation in Project Server.
The PSI Reference includes documentation of four namespaces in three Project Server assemblies that are installed with Project Server. We provide only minimal documentation for these assemblies.
You do not need to develop applications on the Project Server computer, or set references to Project Server assemblies in the global assembly cache. You can copy the necessary Project Server assemblies to your development computer. When you install Project Server 2007, there are copies of the following assemblies in [Program Files]\Microsoft Office Servers\12.0\Bin: Microsoft.Office.Project.Server.Events.Receivers.dll, Microsoft.Office.Project.Server.Library.dll, and Microsoft.Office.Project.Shared.dll.
Namespaces for the PSI Web services have arbitrary names created for a PSI proxy assembly, ProjectServerWebServices.dll, which is generated for the purpose of documentation. In the PSI Reference, the each namespace has a placeholder name such as [Project Web service] and a Web reference such as http://ServerName/ProjectServerName/_vti_bin/psi/Project.asmx.
Topics in the PSI Reference are generated from the Project Server 2007 build 4518.1005.
Many assemblies are installed when you install Project Server. Only three of the Project Server assemblies are documented because third-party developers generally use parts of only those three assemblies. The undocumented Project Server assemblies include namespaces and classes that Project Server uses internally, such as classes for the business entities and the data access layer (DAL).
Most members of the documented Project Server namespaces are also used only internally and have minimal documentation. However, documenting any part of a namespace requires including all public types and members. The following descriptions list the members that third-party developers may need to use.
The PSI Reference includes topics from the following three assemblies:
Microsoft.Office.Project.Server.Library.dll Developers generally use enumerations and the PSClientError,PSErrorInfo, and Filter classes in this assembly.
Following are the three namespaces in the Microsoft.Office.Project.Server.Library.dll assembly:
Microsoft.Office.Project.Server.Base The members of this namespace are used only internally and are not shown in the PSI Reference.
Microsoft.Office.Project.Server.Library.FilterSchema The classes and members of this namespace are used only internally.
Microsoft.Office.Project.Shared.dll This assembly includes two namespaces. Developers generally use only the TextConverter class.
Microsoft.Office.Project.Server.Events.Receivers.dll Developers write event handlers that derive from event receiver classes. Each PSI Web service has a corresponding event receiver class. For example, the ProjectEventReceiver class corresponds to the Project class in the PSI. The assembly has one namespace: the Microsoft.Office.Project.Server.Events namespace includes event receiver classes for the PSI Web services and for other internal classes.
Developers generally use the following event receiver classes:
The PSI is a set of Web services for Project Server 2007. To use a Web service, you set a reference to the .asmx file using an arbitrary name for the nameservice in Microsoft Visual Studio 2005. The wsdl.exe utility then generates proxy source code for that namespace, and the compiler creates a proxy Web service assembly to include in your application.
The PSI Reference includes placeholder nameservice names for the PSI Web services such as [Admin Web service], [Calendar Web service], and [Project Web service]. Each PSI nameservice includes a class that contains the Web methods for that Web service. For example, if you set a reference to the Admin Web service and name it WebSvcAdmin, thenin your application the WebSvcAdmin nameservice includes the Admin class with the Web methods GetServerCurrency, ListInstalledLanguages, ReadServerVersion, and so forth.
Of the 23 PSI Web services, Authentication, PWA, View, and WinProj are for internal use by Project Web Access and Microsoft Office Project Professional 2007. Although you can access the internal Web services through the SSP URL, the PSI Reference contains only minimal documentation for those Web Services.
Following are all of the classes that contain the PSI Web methods.
Admin Includes methods that are used on the Project Server Administration pages in Project Web Access. Defines fiscal years. Manages statusing and currency settings, reporting periods, the audit log, and Microsoft Active Directory directory services.
Archive Includes methods for managing backup and restoration of projects, security categories, custom fields, resources, system settings, views, and the enterprise global project. Reads and updates the archive schedule. Archives all projects or deletes specified archived projects. Back up to the Archive database and restore to the Published database.
Authentication Includes methods for internal use only by Project Professional and Project Web Access. Access to the Authentication Web service is available only through the SSP URL. For more information, see Internal PSI Web Services.
Calendar Manages enterprise calendar exceptions. Checks out and checks in resource calendars. Creates, deletes, lists all, updates, or returns calendar exceptions.
CubeAdmin Manages OLAP cube settings. Gets Analysis Server, database status, and list of cubes. Puts a Cube Build Service request on the queue. Reads and updates calculated member definitions and field settings for dimensions and measures in the cube.
CustomFields Manages enterprise custom fields. Checks out, checks in, reads, creates, deletes, and updates.
Events Manages Project Server event handler associations. Reads the list of Project Server events, event handler associations for a specific event, or all event handler associations. Creates, updates, and deletes event handler associations.
LoginForms Provides the Login and Logoff methods with Project Server authentication. Access to the LoginForms Web service is available only with Project Web Access URLs.
LoginWindows Provides the Login and Logoff methods with Windows authentication. Access to the LoginWindows Web service is available only with Project Web Access URLs.
LookupTable Manages lookup tables, multilanguage lookup tables, and their corresponding code masks. Checks out, checks in, reads, creates, deletes, and updates.
Notifications Manages alerts and reminders. Gets, sets, registers, or unregisters notifications.
ObjectLinkProvider Manages Web objects and links for documents and list items on Windows SharePoint Services sites. Creates, deletes, or reads project, project-linked, task, or task-linked Web objects on Windows SharePoint Services sites.
Project Manages projects. Checks out, checks in, creates, deletes, reads, or updates projects in the Draft or Published database. Puts a message on the queue for publishing.
Creates or deletes entities within projects (tasks, resources, assignments, and so forth). Gets information about or updates the project team or workspace address. Gets project status, a list of projects in the Draft database, all summary tasks, tasks available for assignment to a specified resource, or all projects where a resource has assignments.
Creates and manages commitments, creates lightweight projects from Windows SharePoint Services task lists, or finds project/master project relationships.
PWA Contains many methods that are optimized for Project Web Access, including the methods for task update approval rules and for managing status reports. The Project Web Access methods are often specialized and somewhat redundant compared to equivalent methods in other PSI Web services. Project Web Access methods use or return many of the same datasets as the other PSI methods.
Access to the PWA Web service is available only through the SSP URL. The PWA methods are not supported for third-party development. For more information, see Internal PSI Web Services.
QueueSystem Manages the Project Server queue. Gets job count, job and job group wait time, status of all jobs, specified jobs, jobs owned by the caller, or jobs for specified projects. Manages job correlation and configures the queue.
Resource Manages enterprise resources. Checks out, checks in, updates, or creates resources or Project Server users and their authorization settings; finds resources by name or GUID; reads resource or user data, the resource breakdown structure (RBS) and related security information; gets all assignments for a resource; and resets user passwords.
ResourcePlan Manages resource plans. Checks out, checks in, creates, deletes, publishes, reads, and updates resource plans.
Security Manages security templates, security categories and field access codes, organizational and global permissions, and user and group permissions.
Statusing Manages status updates and assignments. Applies status updates or approvals, submits status updates, sets summary information for submitted updates, deletes approved status updates or approval history for a specified user, or deletes all status information for a set of projects. Creates, gets, or delegates assignments; sets assignment work duration. Gets new assignments for the current user; gets assignment or task transaction history, the timephased actuals, or the summary task hierarchy.
Previews or imports timesheet data, or reads a user's working and nonworking schedule. Finds pending status updates, information for submitted updates, or a transaction record of changes in a submitted update. Reads team status.
TimeSheet Manages timesheets. Creates, deletes, submits, updates, reads, or recalls timesheets. Finds timesheets that are late or pending approval; finds timesheets by date or period. Gets list of timesheet approvers. Preloads actuals and validates a timesheet line.
View The View Web service is designed for use only within Project Web Access. Methods in the View class manage views and view reports and read fields in views.
Access to the View Web service is available only through the SSP URL. The View methods are not supported for third-party development. For more information, see Internal PSI Web Services.
WinProj The WinProj Web service is a Project Server system entity designed for use only by Project Professional. Third-party developers should not use WinProj methods for programming with Project Server.
Some WinProj methods use datasets such as ProjectRelationsDataSet and ResourceDataSet that the Project and Resource Web services also use, but require specific properties and functions in Project Professional.
Access to the WinProj Web service is available only through the SSP URL. The WinProj methods are not supported for third-party development. For more information, see Internal PSI Web Services.
WssInterop Manages project workspaces. Creates and deletes workspaces. Gets information about and updates the Windows SharePoint Services settings and administration sites. Synchronizes and updates the workspace site memberships and groups with Project Server users.
Each Web service namespace includes all of the DataSet schema and event handler classes that the Web service uses. For example, Calendar.asmx describes the Calendar Web service. If you name the Web reference WebSvcCalendar, the proxy namespace contains the Calendar class with the Web methods CheckInCalendars, CheckOutCalendars, and so forth. The WebSvcCalendar proxy namespace also includes the CalendarDataSet class and all of its subclasses.
Some of the PSI Web services contain duplicate DataSet classes. For example, the Project and PWA Web services both include the ProjectDataSet class. That is because both the Project.asmx and PWA.asmx Web descriptions include references to the ProjectDataSet, and the proxy assemblies that you create when you set Web references and compile an application include the related datasets. For example, the Project and PWA Web services may require values for different fields in the ProjectDataSet.ProjectRow class.
When you are navigating the namespaces and classes of the PSI Reference, for example to see the Web methods for the Project Web service, expand the [Project Web service] namespace in the Contents list, and then expand the Project class.