Equivalent PSI Methods

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.

This topic provides a list of Project Data Service (PDS) methods in Microsoft Project Server 2003 and the equivalent Project Server Interface (PSI) methods in Microsoft Office Project Server 2007. This list offers a summary reference for developers who need to port or migrate PDS applications to the PSI.  

Most third-party applications for Project Server 2002 and Project Server 2003 have fairly short or simple components that involve use of the PDS. Typical PDS development projects are two weeks in duration. Project partners and other third-party developers concede that modifying existing PDS-based code is an acceptable consequence of porting the application to Project Server 2007 to realize the benefits of the Project Server 2007 platform and Microsoft .NET Framework and tools. The PSI enables an improved Project Server platform for enhanced features and extensibility, and integration with Windows SharePoint Services 3.0.  

To provide exact parity with PDS methods and parameters, the PSI would require complex overloaded methods or additional methods that duplicate functionality. To keep the PSI relatively simple and easy to use, the PSI provides only functional equivalence to the PDS. For example, many PDS methods require either a projectID or projectName parameter. The equivalent PSI methods accept only projectID. You can use the PSI method ReadProjectStatus to retrieve project names and GUIDs in a ProjectDataSet (or GetProjectNameFromProjectUIDWorking to retrieve the project name from the projectID in the Draft database). In several cases, one PSI method is equivalent to more than one PDS method. For example, the PSI method UpdateResources is functionally equivalent to the PDS methods ResourcesCheck, ResourcesUpdate, ResourceActivate, ResourceDeactivate, ResourceAccountModify, and ResourceCodeValuesUpdate. In other cases, you can use more than one PSI method to replace one PDS method. For example, either the CheckOutProject or CheckOutProjects PSI method can replace the ProjectsCheckOut PDS method.

Tables of Equivalent PSI Methods

All PSI methods work under the Project Server security model. That is, if an application user does not have the appropriate permissions, the PSI method returns a Project Server security exception. Sometimes more than one PSI or DataSet method can perform the same task.

The PDS methods are arranged in ten tables, in the same order as the Project Data Service Reference for Microsoft Office Project Server 2003.

  • Table 1: Project methods

  • Table 2: Enterprise project creation methods

  • Table 3: Resource methods

  • Table 4: Enterprise custom field methods

  • Table 5: Timesheet methods

  • Table 6: Version methods

  • Table 7: Administrative methods

  • Table 8: Project Server user maintenance methods

  • Table 9: Miscellaneous methods

  • Service for Enterprise Data Maintenance

The tables show PSI method signatures in Microsoft Visual C# format. The PSI method signatures in the tables can help you to compare the methods without checking the PSI reference for each method. The signatures omit the public virtual part of the declaration, as follows:

typeMethodName([typeparameter1[, typeparameter2[, . . .]]]);

Many PDS methods use local or enterprise unique ID (UID or EUID) integer values. In the PSI, all ID values—whether local or enterprise—are GUID values (globally unique identifiers) of type System.Guid.

Several PDS methods include an AutoPublish parameter. The PSI has many asynchronous methods that send messages to Project Server queues, such as the following:

  • Project.QueueCreateProject creates a project and saves it to the Draft database.

  • Project.QueuePublish puts an incremental or full publish message in the Publish queue, to move the project from the Draft database and save it to the Published database.

  • Project.QueueCheckInProject puts a message on the queue to save a checked-out project to the Draft database. If the project was checked out of the Published database, the method puts a message on the queue to publish the project.

  • TimeSheet.QueueSubmitTimesheet puts a message on the Timesheet queue to change a timesheet state to Submitted.

  • TimeSheet.QueueUpdateTimesheet puts a message on the Timesheet queue to save the timesheet data to the Published database.

All of the asynchronous PSI methods begin with the name Queue. The Project Server Publish queue is described in the PDS and PSI code examples for Creating a Project.

In the following tables, the PDS methods that are obsolete for Project Server 2007 have no equivalent PSI method. They are marked "N/A" for not applicable.

Table 1. Project (10 PDS methods) and equivalent PSI methods

PDS Method and Comments

PSI Method(s)

PSI Comments

ProjectsStatus

Gets a list of the projects that are accessible to the user, including basic status information about each project.

ProjectDataSetReadProject (

  GuidprojectGuid,

DataStoreEnumdataStore

);

ProjectDataSetReadProjectStatus (

  GuidprojGuid,

  DataStoreEnumdataStore,

  stringprojName,

  intprojType

);

Class Project. Use ReadProject to specify the database, or ReadProjectStatus to specify the database and project type.

ReadProjectStatus returns information that is comparable to project information in a reply from the PDS ProjectsStatus method. Many of the fields in the returned ProjectDataSet are empty. Use ReadProject to get more complete information.

NoteNote
ReadProjectList returns a list of all projects, and requires Project Server administrative permission.

ProjectsOutlineValues

Provides the ability to filter projects in the File Open dialog box of Project Professional 2003.

ProjectDataSetReadProject (

  GuidprojectGuid,

DataStoreEnumdataStore

);

Class Project. Use ReadProject to get the complete information for a specified project.

NoteNote
ReadProjectList returns a list of all projects, and requires Project Server administrative permission.

ProjectsAccess

Allows the user access to projects (used in Project Professional 2003 startup). Obsolete in Project 2007.

N/A

N/A

ProjectsAccessCompleted

Notifies the PDS that the user no longer requires access to projects (used in Project Professional 2003 startup). Obsolete in Project 2007.

N/A

N/A

ProjectsCheckout

Checks out projects to the user, where ProjectType is one of the following:

  • 0 (regular project)

  • 1 (project template)

  • 2 (Enterprise Global Template)

  • 3 (resource global project)

voidCheckOutProject(

  GuidprojectUid,

  GuidsessionUid,

  stringsessionDescription

);

Class Project. Requires projectID GUID; does not accept projectName.

CheckOutProject checks out one project to the user for editing.

For project templates, use ReadProjectStatus and check for PROJ_TYPE = 1. For more information, see Project Types and Checking Out Projects in PDS and PSI Code Examples.

NoteNote
Project 2007 does not have an Enterprise Global Template or resource global project (PDS ProjectType 2 or 3). The Enterprise Global is binary data in a set of tables in the Published database.

ProjectsCheckin

Checks in projects.

voidQueueCheckInProject(

  GuidjobUid,

  GuidprojectUid,

  boolforce,

  Guid sessionUid,

  string sessionDescription

);

Class Project. Requires projectID GUID; does not accept projectName.

Asynchronously checks in one project.

ProjectDelete

Deletes a project.

voidQueueDeleteProjects(

  GuidjobUid,

  booldeleteWSS,

  Guid[]projectUids,

  booldeleteBoth

);

Class Project. Deletes a specific project.

Requires array of GUIDs for projectUids; does not accept projectName.

Puts message on the queue to delete project (asynchronous delete). Optionally deletes the Windows SharePoint Services project workspace.

ProjectsVersion

Returns a list of active projects in the default version and the requested version (if there is one).

Obsolete in Project Server 2007.

NoteNote
The released version of Project Server 2007 will include functionality that replaces ProjectsVersion.

ProjectDataSetReadProject (

  GuidprojectGuid,

DataStoreEnumdataStore

);

Class Project. ReadProject returns information about a specified project and its associated entities. Requires projectUid GUID; does not accept projectName.

NoteNote
ReadProjectList returns a list of all projects, and requires Project Server administrative permission.

For more information about functionality that is equivalent to project versions, see Project Server Programmability.

ProjectCodeValues

Gets a list of the active enterprise outline code structures for a project.

ProjectDataSetReadProject (

  GuidprojectGuid,

DataStoreEnumdataStore

);

Class Project. ReadProject returns information about a specified project and its associated entities. Requires projectIUid GUID; does not accept projectName.

NoteNote
ReadProjectList returns a list of all projects, and requires Project Server administrative permission.

ProjectCodeValuesUpdate

Updates the enterprise outline code for a project.

voidQueueUpdateProject(

  GuidjobUid,

  GuidsessionUid,

  ProjectDataSetdataset,

  boolvalidateOnly

);

Class Project. Puts message on the queue to update existing projects and related entities. Explicitly does NOT include creating or deleting of entities within projects.

Requires jobUid for the queue and sessionUid for the application session. The dataset parameter can contain multiple projects in ProjectDataTable objects.

Table 2. Enterprise project creation (9 PDS methods) and equivalent PSI methods

PDS Method and Comments

PSI Method(s)

PSI Comments

ProjectData

Returns project-specific data for a specified enterprise project.

ProjectDataSetReadProject(

  GuidprojectGuid,

DataStoreEnumdataStore

);

Class Project. ReadProject returns information about a project in the specified database and its associated entities. Requires projectUid GUID; does not accept projectName.

NoteNote
ReadProjectList returns a list of all projects, and requires Project Server administrative permission.

ProjectCreate

Creates a new enterprise project with specified name and start date. If AutoPublish is 1, calls ProjectViewTablesCreate to synchronize the Project Server view tables.

voidQueueCreateProject(

  GuidjobUid,

  ProjectDataSetdataset,

  boolvalidateOnly

);

GuidCreateProjectFromTemplate(

  GuidtemplateUid,

  stringprojectName

);  

Class Project. The dataset includes project details.

QueueCreateProject puts a message on the queue to create a project with the entities that exist in dataset. The jobUid is the queue ID. Saves the project to the Draft database.

Class Project. CreateProjectFromTemplate creates a project from a template. Project names must be unique.

ProjectTasksCreate

Adds tasks to the Project Server database for the specified project. If AutoPublish is 1, calls ProjectViewTablesCreate to synchronize the Project Server view tables.

voidQueueAddToProject(

  GuidjobUid,

  GuidsessionUid,

  ProjectDataSetdataset,

  boolvalidateOnly

);  

Class Project. Puts a message on the queue to create entities that exist in dataset, such as new tasks. If TaskRow in dataset does not specify TASK_UID, Project Server creates a taskUid in order of the next task in the project. If TaskRow in dataset does not specify AddPosition, Project Server creates the task at the end of the project.

The dataset parameter requires the projectUid GUID; does not accept projectName. The jobUid is the queue ID.

See the example Creating a Task in PDS and PSI Code Examples.

ProjectResourcesCreate

Adds new resources or existing resources from the Enterprise Resource Pool to the Project Server database for the specified project. If AutoPublish is 1, calls ProjectViewTablesCreate to synchronize the Project Server view tables.

voidQueueUpdateProjectTeam(

  GuidjobUid,

  GuidsessionUid,

  GuidprojectUid,

  ProjectTeamDataSetdataset

);  

voidAddProjectResourceRow(

  ProjectResourceRowrow

);

ResourceDataSetCreateResources(

  ResourceDataSetrds,

  boolvalidateOnly,

  boolautoCheckIn

);

Class Project. QueueUpdateProjectTeam adds resources from the Enterprise Resource Pool to the specified project.

Requires projectUid GUID; does not accept projectName. The jobUid is the queue ID.

AddProjectResourceRow is in the ProjectDataSet.ProjectResourceDataTable class. See the example Adding a Resource in PDS and PSI Code Examples.

Class Resource. CreateResources creates one or more enterprise resources or Project Server users.

ProjectResourcesDelete

Removes enterprise or local resources from the Project Server database for the specified project. If AutoPublish is 1, calls ProjectViewTablesCreate to synchronize the Project Server view tables.

voidQueueDeleteFromProject(

  GuidjobUid,

  GuidsessionUid,

  GuidprojectUid,

  Guid[] projectEntityUids

);

Class Project. Puts a message on the queue to delete existing resource entities. Requires the enterprise resource GUIDs in projectEntityUids array.

Requires projectUid GUID; does not accept projectName. The jobUid is the queue job GUID.

ProjectResourcesReplace

Replaces project resources in the Project Server database for the specified project.

NoteNote
If any of the resources has reported actual work in the project plan (project tables) or has pending actual work (Web tables), the call fails.

If AutoPublish is 1, calls ProjectViewTablesCreate to synchronize the Project Server view tables.

voidQueueUpdateProjectTeam(

  GuidjobUid,

  GuidsessionUid,

  GuidprojectUid,

  ProjectTeamDataSetdataset

);  

Class Project. Puts a message on the queue to update resources in a specified project with the ProjectTeamDataSet values.

Requires projectUid GUID; does not accept projectName. The jobUid is the queue ID.

ProjectSetResourcesBookingType

Supports Team Builder Lite, which allows a user (such as a project manager who is not using Project Professional) to specify whether resources are hard-booked (committed) or soft-booked (proposed) for projects.

If AutoPublish is 1, calls ProjectViewTablesCreate to synchronize the Project Server view tables.

voidQueueUpdateProjectTeam(

  GuidjobUid,

  GuidsessionUid,

  GuidprojectUid,

  ProjectTeamDataSetdataset

);  

Class Project. Puts a message on the queue to update resources with the ProjectTeamDataSet values.

Read or create a ProjectTeamDataSet. For each resource UID you want to change, update the RES_BOOKING_TYPE property in the ProjectTeamRow of the ProjectTeamDataTable.

ProjectResourcesBatch

Provides batch processing for multiple calls to one or more of the following enterprise project resource methods.

ProjectResourcesCreate

ProjectResourcesDelete

ProjectResourcesReplace

ProjectSetResourcesBookingType

See the following PSI methods:

Classes Project and Resource. There is no direct batch call in the PSI. The ProjectTeamDataSet and ResourceDataSet objects can contain multiple data tables and data rows to provide an equivalent to the PDS batch call.

ProjectAssignmentsCreate

Adds assignments for enterprise or local resources to the Project Server database for the specified project.

If AutoPublish is 1, calls ProjectViewTablesCreate to synchronize the Project Server view tables.

NoteNote
Though an enterprise resource can be assigned to a task programmatically, the assignment does not affect the resource summary records until that project is checked out and checked in through Project Professional.

voidQueueAddToProject(

  GuidjobUid,

  GuidsessionUid,

  ProjectDataSetdataset,

  boolvalidateOnly

);  

Class Project. Requires projectUid and resourceUid or resourceEuid GUIDs in dataset. The jobUid is the queue ID.

Creates entities that exist in dataset, such as new assignments.

See the example "Creating an Assignment" in PDS and PSI Code Examples.

Table 3. Resource (15 PDS methods) and equivalent PSI methods

PDS Method and Comments

PSI Method(s)

PSI Comments

ResourcesStatus

Gets a list of resources accessible to the user, with status information. Supports soft bookings in Team Builder Lite.

ResourceDataSetReadResources (

  stringxmlFilter,

  boolautoCheckOut

);

Class Resource. ReadResources can filter for resource information you need returned in the ResourceDataSet.

For more information about using the xmlFilter parameter, see How to: Use a Filter Parameter with PSI Methods.

ResourcesAccess

Allows the user access to resources. Obsolete in Project 2007.

N/A

N/A

ResourcesAccessCompleted

Notifies the PDS that the user no longer requires access to resources. Obsolete in Project 2007.

N/A

N/A

ResourcesCheckout

Checks out resources from the Enterprise Resource Pool to the user.

voidCheckOutResources(

  Guid[]array

);

Class Resource. Checks resources out. Include the resourceUid list in array.

Allows you to modify properties of enterprise resources.

ResourcesCheckin

Checks in resources to the Enterprise Resource Pool.

voidCheckInResources(

  Guid[]array,

  boolforce

);

Class Resource. Checks resources in and saves changes you made in enterprise resources. Does not require permission to check in a resource that is already checked out by the user.

ResourcesAdd

Adds resources directly into the Project Server database. Also calls ResourcesNew to synchronize the new resources with Project Server.

ResourceDataSetCreateResources(

  ResourceDataSetrds,

  boolvalidateOnly,

  boolautoCheckIn

);

Class Resource. Creates new resources or Project Server users. The rds dataset includes all resource data that ResourcesAdd can specify.

Set autoCheckIn to trueto synchronize with Project Server, or call ResourcesCheckin.

ResourcesDelete

Removes the accounts or resources from the Project Server database. Data integrity rules do not allow the resource to be completely eliminated, so the PDS appends ResourceNameSuffix to the end of ResourceName and also sets the CAN_LOGIN and COUNT_LICENSE fields to 0.

voidDeleteResources(

  Guid[] arrayRes,

  stringdeletionComment

);

Class Resource. Deletes existing resources or Project Server users. You can specify resourceUid values only in arrayRes, not by resourceName.

Project 2007 enables you to delete resources completely. DeleteResources removes the specified resource items from the Enterprise Resource Pool database. You can use the following to mimic the behavior of the PDS method ResourcesDelete:

ResourcesNew

Adds new resources. If the new resource is a generic or material resource, the PDS sets both CanLogin and CountLicense to False. Project Professional calls ResourcesNew after you add a new member to the Enterprise Resource Pool, to ensure that the resource is created as a Project Server user. Obsolete in Project 2007.

N/A

Use Resource.CreateResources.

ResourcesCheck

Determines if the resource exists in the Enterprise Resource Pool. Verifies that a proposed new resource name and other information is unique, to avoid creating resources with the same name or Microsoft Windows–based account. Also avoids creating invalid names and Windows–based accounts.

voidUpdateResources(

  ResourceDataSetrds,

  boolvalidateOnly,

  boolautoCheckIn

);

Class Resource. Updates or deletes existing resources or Project Server users. Also allows the creation of new resources or users.

Set validateOnly to true for ResourcesCheck functionality.

ResourcesUpdate

Edits resources directly in the Project Server database. The PDS also calls ResourcesNew to synchronize the resources with Project Server.

voidUpdateResources(

  ResourceDataSetrds,

  boolvalidateOnly,

  boolautoCheckIn

);

Class Resource. Updates or deletes existing resources or Project Server users. Also allows the creation of new resources or users.

The rds dataset includes all resource data that ResourcesUpdate can specify.

Set autoCheckIn to trueto synchronize with Project Server.

ResourceActivate

Activates a resource.

voidUpdateResources(

  ResourceDataSetrds,

  boolvalidateOnly,

  boolautoCheckIn

);

Class Resource. Updates or deletes existing resources or Project Server users. Also allows creation of new resources or users.

To activate a resource, subtract 100 from its RES_TYPE value. The resource type RES_TYPE is 1 to 99 for active resources and 101 to 199 for inactive resources.

ResourceDeactivate

Deactivates a resource.

voidUpdateResources(

  ResourceDataSetrds,

  boolvalidateOnly,

  boolautoCheckIn

);

Class Resource. Updates or deletes existing resources or Project Server users. Also allows creation of new resources or users.

To deactivate a resource, add 100 to its RES_TYPE value. The resource type RES_TYPE is 1 to 99 for active resources and 101 to 199 for inactive resources.

ResourceAccountModify

Modifies resource account information. Project Server calls ResourceAccountModify when resource account information changes.

voidUpdateResources(

  ResourceDataSetrds,

  boolvalidateOnly,

  boolautoCheckIn

);

Class Resource. Updates or deletes existing resources or Project Server users. Also allows creation of new resources or users.

Handles project table updates for the Enterprise Resource Pool when autoCheckIn is true.

ResourceCodeValues

Returns the values for the active enterprise outline codes, and the non-value list, non-graphical indicator enterprise custom fields for the requested resource. If the optional IncludeValueLists parameter is set to 1, the PDS also gathers the enterprise custom fields with value lists.

ResourceDataSetReadResources(

  stringxmlFilter,

  boolautoCheckOut

);

Class Resource. Returns resource and user data. Use xmlFilter to specify resources and outline code structures to return. Set autoCheckOut to true to check out the resource for editing.

For more information about using the xmlFilter parameter, see How to: Use a Filter Parameter with PSI Methods.

You can also use ReadResource to get non-filtered information for one resource.

ResourceCodeValuesUpdate

Updates the enterprise resource outline codes and custom fields for a specified resource.

voidUpdateResources (

  ResourceDataSetrds,

  boolvalidateOnly,

  boolautoCheckIn

);

Class Resource. Updates or deletes existing resources or Project Server users. Also allows the creation of new resources or users.

Specify the updated outline codes and custom fields in rds.

Table 4. Enterprise custom fields (8 PDS methods) and equivalent PSI methods

PDS Method and Comments

PSI Method(s)

PSI Comments

EnterpriseCustomFields

Returns the active enterprise custom field value list structures for fields of the specified CodeType that have a value list associated with them, or just for the fields specified by the CodeField list.

CustomFieldDataSetReadCustomFields(

  stringxmlFilter,

  boolautoCheckOut

);

CustomFieldDataSetReadCustomFieldsByEntity(

  GuidentityUid

);

CustomFieldDataSetReadCustomFieldsByMdPropUids(

  Guid[] md_prop_uids,

  boolautoCheckOut

);

Class CustomFields. ReadCustomFields returns custom field definitions. Use xmlFilter to specify custom field structures to return. Set autoCheckOut to true to check out the Enterprise Global Template for editing.

For more information about using a filter parameter, see How to: Use a Filter Parameter with PSI Methods.

ReadCustomFieldsByEntity returns custom field definitions for the specified business object (task, resource, or project).

ReadCustomFieldsByMdPropUids returns custom field definitions for the specified custom field properties.

For more information about enterprise custom fields and lookup tables, see Local and Enterprise Custom Fields.

EnterpriseCustomFieldsUpdate

Redefines enterprise custom fields that support value lists. The list values must be supported by the field type (that is, for a number field the values must all be numbers). The PDS checks whether the user has the Enterprise Global Template checked out.

voidUpdateCustomFields(

  CustomFieldDataSetcfds,

  boolvalidateOnly,

  boolautoCheckIn

);

Class CustomFields. Can create or delete custom fields, as well as modify existing custom fields. For example, you can change the name of a custom field.

EnterpriseOutlineCodes

Returns a list of the active enterprise outline code structures (the mask and the value lists) for fields of a specified type.

NoteNote
In Project 2007, outline codes are implemented as custom fields with hierarchical text lookup tables.

LookupTableDataSetReadLookupTables (

 stringxmlFilter,

  boolautoCheckOut,

  intlanguage

);

Class LookupTable. Can return a single level of custom fields and the corresponding code mask, or the hierarchical structure, depending on the values in xmlFilter.

Set autoCheckOut to true to check out the custom field values from the Enterprise Global Template.

Specify language if xmlFilter is an empty string, to get multilanguage lookup tables.

For more information about using a filter parameter, see How to: Use a Filter Parameter with PSI Methods.

EnterpriseOutlineCodesHeirarchical

Returns the active enterprise outline code structures and the code mask for all of the fields of a specified type or just the fields specified by the CodeField list.

LookupTableDataSetReadLookupTables (

  stringxmlFilter,

  boolautoCheckOut,

  intlanguage

);

Class LookupTable. Returns lookup tables and the corresponding code masks for a specified language.

You can specify language if xmlFilter is an empty string, to get multilanguage lookup tables.

Specify language if xmlFilter is an empty string, to get multilanguage lookup tables.

EnterpriseOutlineCodeUpdate

Updates the value list of a specified outline code, and parses the new outline code definition and makes the appropriate changes. Verifies that the Enterprise Global Template is checked out to the current user.

NoteNote
EnterpriseOutlineCodeUpdate does NOT reconstruct the ValueFull field for updated outline code values. Project Professional updates those values the next time the user opens and saves the Enterprise Global Template.

voidUpdateLookupTables (

  LookupTableDataSetltds,

  boolvalidateOnly,

  boolautoCheckIn,

  intlanguage

);

Class LookupTable. Allows creating, updating, and deleting of custom field lookup tables (outline codes) and their corresponding code masks.

UpdateLookupTables replaces four PDS methods. The dataset ltds can include data for updating custom fields, and for adding custom field values, updating, and deleting values.

Set autoCheckIn to true to check in the values to the Enterprise Global Template.

Specify language to update multilanguage lookup tables.

Enables server-side updates of lookup tables from Project Web Access.

OutlineCodeAddValues

Adds outline code values to the database for the specified outline code. Ensures that the user has the Enterprise Global Template checked out.

voidUpdateLookupTables (

  LookupTableDataSetltds,

  boolvalidateOnly,

  boolautoCheckIn,

  intlanguage

);

Class LookupTable. Allows creation, updating, and deleting of custom field lookup tables (outline codes) and their corresponding code masks.

Specify language to update multilanguage lookup tables.

OutlineCodeDeleteValues

Deletes outline code values from the database for the specified outline code. Ensures that the user has the Enterprise Global Template checked out.

voidUpdateLookupTables (

  LookupTableDataSetltds,

  boolvalidateOnly,

  boolautoCheckIn,

  intlanguage

);

voidDeleteLookupTables(

Guid[] ltGuids

);

Class LookupTable. Allows creation, updating, and deleting of custom field lookup tables (outline codes) and their corresponding code masks.

Specify language to update multilanguage lookup tables.

Use DeleteLookupTables to remove one or more lookup tables.

OutlineCodeUpdateValues

Updates outline code values in the database for the specified outline code. Ensures that the user has the Enterprise Global Template checked out.

voidUpdateLookupTables (

  LookupTableDataSetltds,

  boolvalidateOnly,

  boolautoCheckIn,

  intlanguage

);

Class LookupTable. Allows creation, updating, and deleting of custom field lookup tables (outline codes) and their corresponding code masks.

Specify language to update multilanguage lookup tables.

Table 5. Timesheet API (3 PDS methods) and equivalent PSI methods

PDS Method and Comments

PSI Method(s)

PSI Comments

AssignmentsGet

Retrieves assignment data from Project Server; used in Project 2003 for importing assignments into Microsoft Office Outlook.

StatusingDataSetReadAssignments (

  Guid[]assnUIDs

);

TimesheetDataSetReadTimesheetByPeriod (

  GuidresUid,

  GuidperiodUid,

  Navigationselect

);

The Statusing Web service provides methods for managing assignments and status updates as in previous versions of Project Server. The TimeSheet Web service provides methods for extended timesheet functionality in Project Server 2007.

Class Statusing. ReadAssignments gets information about the specified assignments.

You can also get statusing data with many other methods. See the Statusing class in the PSI Reference for more information.

Class TimeSheet. ReadTimesheetByPeriod gets a timesheet's header, timesheet lines, and period information based on resource UID and period UID. The Navigation enumeration is Current, Previous, or Next.

You can also get timesheet data with many other methods. See the TimeSheet class in the PSI Reference for more information.

For more information about timesheets and statusing, see Resource Management Data.

AssignmentsSave

Saves assignment data to Project Server; used in Project 2003 for updating assignments from Outlook.

intSetAssignmentWorkData (

 stringchangeXML

);

voidQueueUpdateTimesheet(

  GuidjobUid,

  GuidtsUid,

  TimesheetDatasetdsDelta

);

Class Statusing. SetAssignmentWorkData saves work durations of an assignment.

Class TimeSheet. QueueUpdateTimesheet puts a message on the queue to apply changes specified in dsDelta to the timesheet for a specified resource.

You can also manipulate timesheet data by the following asynchronous PSI methods (see the PSI Reference for more information):

QueueDeleteTimesheet, QueueRecallTimesheet

AssignmentsProjectManagerUpdate

Sends the project manager updates for the specified assignments or for all assignments with a change recorded for a specified user.

voidSubmitStatus (

  Guid[]updateGuids,

  stringcomment

);

StatusTransactionDataSetQueueApplyStatusApprovals (

  GuidjobUid,

  stringcomment

);

voidQueueSubmitTimesheet(

  GuidjobUid,

  GuidtsUid,

  GuidapproverUid,

  stringcomment

);

Class Statusing. SubmitStatus sends saved assignments to the project manager for approval. QueueApplyStatusApprovals saves accepted or rejected status updates.

Class TimeSheet. Puts a message on the queue to submit a timesheet for approval.

You can also manipulate timesheet updates with the following PSI methods (see the TimeSheet class in the PSI Reference for more information):

ReadTimesheetsPendingApproval, ReadTimesheetsToAdjust, QueueReviewTimesheet

Table 6. Versions (4 PDS methods) and equivalent PSI methods

PDS Method and Comments

PSI Method(s)

PSI Comments

Versions Gets a list of available project versions, version types (regular or archived), version default status, and associated GanttBarStyle.

Enterprise project versions are used in Project 2003 to group projects into a version portfolio for analysis, or to compare versions of the same project for jobs such as tracking different phases or baselines in a project. Obsolete in Project Server 2007.

N/A

Project versions, such as the default Published version in the name ProjectName.Published, are superseded by new functionality in Project Server 2007.

For more information about project versions, see Project Server Programmability.

VersionCreate

Creates a new project version that is unique. Obsolete in Project 2007.

N/A

N/A

VersionDelete

Deletes a specified version. Ensures that the version is valid and if so, deletes the version ID, name, and description from the versions value list.

NoteNote
The PDS does not allow the default version to be deleted, and also ensures that every project that has a copy of the requested version is deleted.

Obsolete in Project 2007.

N/A

N/A

VersionUpdate

Updates a specified version Type and GanttBarStyle. Obsolete in Project 2007.

N/A

N/A

Table 7. Administrative (7 PDS methods) and equivalent PSI methods

PDS Method and Comments

PSI Method(s)

PSI Comments

ProjectSecurityTableClean

Cleans the project security table entries of specified age, project ID, or SQL process ID. Obsolete in Project 2007.

N/A

N/A

ResourceSecurityTableClean

Cleans the resource security table. Obsolete in Project 2007.

N/A

N/A

ProjectClean

Cleans a project from the MSP_PROJECTS table, to effectively free the unused project ID. Obsolete in Project 2007.

ProjectClean remedies the problem where Project Professional 2003 sometimes leaves project ID and related values in the database after it deletes a project.

N/A

Several PSI methods clean project-related structures. For example, the Project class includes the following methods:

QueueDeleteProjects, QueueDeleteFromProject, and UpdateProjectWorkspaceAddress.

The Archive class includes QueueDeleteArchivedProject, and the WssInterop class includes DeleteWSSSite.

Project IDs are GUIDs, not integer IDs.

PermissionCheck

Checks if the user has a specified global permission, as documented in the PDS Permissions topic (PDS Reference for Project Server 2003).

boolCheckUserGlobalPermission(

  GuidglobalPermissionUid

);

Class Security. Checks whether the current user has the specified global permission. Use CheckUserGlobalPermissions to check for multiple global permissions. See also the following methods, and their multiple permission equivalents:

ReadResourceAuthorization in the Resource class returns the specified resource's group memberships and permissions on related security categories.

Use ReadCategoryPermissions or ReadGlobalPermissions to get a PermissionDataSet that contains all category or global permissions.

AdminSettings

Returns a list of administrative settings: AllowLocalBaseCalendars, DisplayMasterProjects, EnforceCurrency, ProtectActuals, ProtectBaseline, BuildTeamOnNewProject, and the user's RBS and DisabledItems.

boolGetSingleCurrencyEnforced();

StatusingSettingsDataSetReadStatusingSettings();

ResourceDataSetReadResource (

  GuidresourceUid

);

There are several PSI methods in different classes that return information about administrative settings. Class Admin: GetSingleCurrencyEnforced gets the setting that enforces a single currency. See additional methods such as GetServerCurrency and GetActiveDirectorySyncEnterpriseResourcePoolSettings.

Class Resource: ReadResource reads the RBS and other information for the specified resourceUid.

GetLoginInformation

Gets Project Server logon information: DBType, DVR, DB, SVR, ResGlobalID, ResGlobalName, UserName, and Password. Obsolete in Project 2007.

N/A

You can use ReadResources with an XML filter or ReadUserList in the Resource class to determine if a user is a valid Project Server user.

For more information about using an XML filter parameter, see How to: Use a Filter Parameter with PSI Methods. For another code sample using xmlFilter, see ReadResources in the PSI reference.

GetInitializationData

Gets a list of Project Server initialization data: a combination of the AdminSettings, GetLoginInformation, and PDSInfo methods. Used in Project Professional startup.

N/A

The WinProj and PWA Web services are for internal use and not for third-party applications.

Table 8. Project Server User Maintenance (5 PDS methods) and equivalent PSI methods

PDS Method and Comments

PSI Method(s)

PSI Comments

PSGroupsGet

Returns a list of all Project Server security group names.

SecurityGroupsDataSetReadGroupList();

Class Security. ReadGroupList gets a list of names and GUIDs of all security groups.

PSGetUsersInGroup

Returns a list of Project Server users in the specified group, including the following information: PSUserName, PSUserIsNT, PSUserNTAccount, PSUserADGUID, PSUserEmail, and PSUserPhonetic.

SecurityGroupsDataSet ReadGroup(

GuidgroupUid

);

ResourceDataSetReadResource (

  GuidresourceUid

);

ResourceDataSetReadResources (

stringxmlFilter,

boolautoCheckout

);

Class Security. Find the security group GUID using ReadGroupList, and then get the Project Server user GUIDs with ReadGroup.

Use Resource.ReadResource to get information about the resources from the resource GUIDs.

For more information about using the xmlFilter parameter, see How to: Use a Filter Parameter with PSI Methods. For another code sample using xmlFilter, see ReadResources.

PSNewUser

Adds new users to Project Server; does not affect membership in the Enterprise Resource Pool.

voidCreateResources (

  ResourceDataSetrds,

  boolvalidateOnly,

  boolautoCheckIn

);

Class Resource. CreateResources can perform the tasks of both the ResourcesAdd and PSNewUser PDS methods.

To add a local user not in the Enterprise Resource Pool, set RES_TYPE = 1 in ResourceDataSet.

PSAddUsersToGroups

Adds the specified Project Server users into the specified server security groups.

voidSetGroups (

  SecurityGroupsDataSetgroup

);

Class Security. Updates one or more security groups. To add users to groups, add the user GUIDs in the GroupMembers table of the group parameter.

PSDelUsersFromGroups

Removes the specified Project Server users from the specified server security groups.

voidSetGroups (

  SecurityGroupsDataSetgroup

);

Class Security. Updates one or more security groups. To delete users from groups, delete the user GUIDs in the GroupMembers table of the group parameter.

Table 9. Miscellaneous (6 PDS methods) and equivalent PSI methods

PDS Method and Comments

PSI Method(s)

PSI Comments

PDSInfo

Returns information about the PDS: ExeName, CompanyName, FileDescription, Comments, ProductName, Title, LegalCopyright, LegalTrademarks, and version (Major, Minor, and Revision).

DataSetReadServerVersion();

Class Admin. Gets the Project Server version. See the PSI reference for an example method using ReadServerVersion.

UpdateResourceAvailabilityAndCube

Generates the resource availability tables, and then generates the cube.

voidQueueCBSRequest(

  CBSRequestMessagesettingcbsMsg

);

Class CubeAdmin. Puts a work item for the Cube Build Service (CBS) on the queue.

The Reporting Data Service (RDS) in Project Server 2007 maintains the staging tables; it propagates each change in the published database to the reporting database.

CheckOLAPCube

Checks to see if a specified cube exists. Project Server 2003 creates one OLAP cube.

NoteNote
Methods in the PWA class are not supported for third-party use.

Class PWA. CubeAdminGetCubes gets a list of cubes in a specified Analysis Server database. CubeAdminGetCubeStatus gets the status of a specified OLAP cube.

By default there are 11 cubes for Project Server 2007:

  • Project non-timephased

  • Task non-timephased

  • Assignment non-timephased; Assignment timephased

  • Resource non-timephased; Resource timephased

  • Timesheet; EPM Timesheet

  • Windows SharePoint Services: Risks; Issues; Deliverables

In addition, there are three virtual cubes that combine data:

  • Include data from the EPM cubes (Project, Task, Assignment, and Resource) with data from the Timesheet cubes

  • Include data from the EPM cubes with data from the Windows SharePoint Services cubes

  • Portfolio Analyzer cube, for backward compatibility with reports in earlier versions

ProjectViewTablesCreate

Starts the process that populates the project view tables for the specified project ID. Ensures that the requested project is not currently checked out. Obsolete in Project 2007.

N/A

Publishing a project creates the view tables for Project Web Access. The publishing process is internal.

ResourceViewTablesCreate

Starts the process that populates the resource view tables for the specified resource UID, or for all resources in the resource pool. Obsolete in Project 2007.

N/A

Saving a ResourceDataSet creates the resource view tables for Project Web Access. The process is internal.

SchedulingContext

Gets a list of projects related to specified projects or resources. A relationship exists if one of the following conditions is met:

  • Projects share enterprise resources (either those on the project team or in the input list)

  • Projects have interproject dependencies (cross-project links)

  • Projects share resources with or have cross-project links with projects that are related to projects in the input list (an indirect relationship)

NoteNote
Project Professional uses the OpenProjects parameter; it serves no purpose for third-party use.

ProjectContextDataSetReadSchedulingContext (

  Guid[] projectUids,

  Guid[] resourceUids

);

Class Project. Determines the scheduling context based on a set of projects and resources.

Service for Enterprise Data Maintenance

The main functions the Service for EDM provides in Project Server 2003 are resource data and project team synchronization, and updating of custom field value lists.

The Service for EDM also provides a higher-level way to exchange XML data between Project Server and other applications through a "file drop" mechanism, as well as through a SOAP programmatic interface. The Service for EDM relies on XML for the data format, and aggregates multiple PDS calls to do the core work.

Following is the value of the Service for EDM in Project Server 2003:

  • A business rules layer can map similar data between another LOB application and Project Server to better integrate the data.

  • The Service for EDM simplifies development work to integrate Project Server 2003 with a variety of LOB applications.

Project Server 2007 does not provide an equivalent file drop mechanism, in part because of security concerns. Anyone who has access to the file drop directory can copy the clear-text XML data The PSI addresses the issues of bulk updates by using Microsoft ADO.NET 2.0 datasets to efficiently transport and manipulate large amounts of data. The PSI provides bulk update functionality for many more objects in Project Server 2007 than the Service for EDM does in Project Server 2003.

Because the PSI allows updates of multiple entities in a single call, in most cases it eliminates the need for an equivalent EDM service in Project 2007. The PSI Web services provide easier development plus improved security and capability for LOB applications. Server-side pre- and post-events enable developers to extend Project Server with business rules.

Table 10. Service for EDM (4 EDM methods) and equivalent PSI methods

PDS Method and Comments

PSI Method(s)

PSI Comments

ResourcesUpdate

Uses the EUID parameter instead of ResourceUID in the PDS method of the same name. The EDM ResourcesUpdate method must at least include the resource Name. All other resource parameters are optional.

Combines the PDS methods ResourcesUpdate, ResourceCodeValuesUpdate, and ResourceDeactivate.

voidUpdateResources (

  ResourceDataSetrds,

boolvalidateOnly,

  boolautoCheckIn

);

Class Resource. Includes all of the functionality for the EDM methods ResourcesUpdate and ResourcesDeactivate.

ResourcesDeactivate

Uses the EUID parameter to deactivate resources in the Enterprise Resource Pool.

voidUpdateResources (

  ResourceDataSetrds,

  boolvalidateOnly,

  boolautoCheckIn

);

Class Resource.

ProjectTeam

Acts on the entire team in one project to add, replace, update, or remove individual resources from the project team. Requires ProjectName or ProjectID.

ProjectTeamDataSetReadProjectTeam (

  GuidprojectUid

);

voidQueueUpdateProjectTeam (

  GuidjobUid,

  GuidsessionUid,

  GuidprojectUid,

  ProjectTeamDataSetdataset

);

Class Project. Use ReadProjectTeam to get the current ProjectTeamDataSet and make changes, and then use QueueUpdateProjectTeam to send a message to the queue to save the changes.

EnterpriseFieldUpdate

Synchronizes custom field value lists between an LOB application and Project Server. Adds and updates enterprise outline codes and other enterprise custom fields that contain value lists in the Enterprise Global Template.

Combines the PDS methods EnterpriseOutlineCodesHierarchical, EnterpriseOutlineCodesUpdate, and EnterpriseCustomFieldsUpdate.

voidUpdateCustomFields (

  CustomFieldDataSetcfds,

  boolvalidateOnly,

  boolautoCheckIn

);

LookupTableDataSetReadLookupTables (

  stringxmlFilter,

  boolautoCheckOut,

  stringlanguage

);

voidUpdateLookupTables (

  LookupTableDataSet ltds,

  boolvalidateOnly,

  boolautoCheckIn,

  stringlanguage

);

Class CustomFields.

The three PSI methods ReadLookupTables, UpdateCustomFields, and UpdateLookupTables include all of the functionality of the Service for EDM method EnterpriseFieldUpdate.

For more information about using the xmlFilter parameter, see How to: Use a Filter Parameter with PSI Methods.

See Also

Tasks

How to: Use a Filter Parameter with PSI Methods

Reference

PDS and PSI Code Examples

Concepts

Project Server Programmability

PSI Reference Overview

Using Project Server Security

Using Security Methods in the PSI

Local and Enterprise Custom Fields

Resource Management Data

Using the ProjTool Test Application

Other Resources

Project Server Interface (PSI) Overview

Project Data Service Reference for Microsoft Office Project Server 2003