Using the Object Link Provider
In Microsoft Office Project Server 2007, the ObjectLinkProvider (OLP) Web service is part of the Project Server Interface (PSI). The ObjectLinkProvider class includes methods to manage links between Project Server entities (projects and tasks) and other Web objects that are external to Project Server such as list items in Windows SharePoint Services.
By default, the ObjectLinkProvider methods enable links from projects or tasks in Project Server to items in project workspace lists such as documents, issues, risks, and deliverables. The methods also allow linking to other SharePoint list types and even to objects in third-party applications. The following scenarios are some of the ways you can use the OLP in a custom application or Web Part.
Display and manage all links from projects or tasks to any kind of SharePoint list or URL-identifiable object. For example, create custom SharePoint lists and link projects or tasks to items in the custom lists.
Create links between other Project Server objects and external objects. For example, link resources with documents in Windows SharePoint Services or with file system objects in a human resources application.
Create links between pairs of external objects. For example, link an issue in a SharePoint list with document or a file system object.
The Indicators column in task views in Project Professional, and in the Project Details page in Project Web Access, include the default links (documents, issues, risks, and deliverables). To show extended links, you can create a custom Web Part and add it to a custom view.
At a high level, the OLP takes external objects with IDs that have meaning in different systems, such as a list with a SharePoint GUID (TP_ID), and gives the objects distinct Web object GUIDs in Project Server. The OLP can create many-to-many relationships between projects or tasks in Project Server with objects of different types in Windows SharePoint Services and in external systems. The WebObjectType enumeration defines the types of SharePoint list items. The WebObjectLinkType enumeration defines the types of links between Web objects.
The OLP Web service URL is
/_vti_bin/psi/ObjectLinkProvider.asmx. The ObjectLinkProvider class exposes methods for creating, obtaining, and deleting link data. For a list of the classes and datasets in the Object Link Provider, see WebSvcObjectLinkProvider. For documentation of the OLP methods such as CreateWebObjectLink, DeleteWebObject, ReadLinkedWebObjects, ReadProjectWebObject, and ReadTaskWebObject, see ObjectLinkProvider.
Web Objects and Links in the ObjectLinkProviderDataSet
The ObjectLinkProviderDataSet maps Web object and link properties in the following two tables:
WebObjectsDataTable includes all linkable objects known to Project Server and stores the properties of each object. For descriptions of the properties and methods of each Web object, see WebObjectsRow.
WebObjectLinksDataTable maintains the links with Web objects defined in WebObjectsDataTable. For descriptions of the properties and methods of each link object, see WebObjectLinksRow.
The ObjectLinkProviderDataSet is empty until an application attempts to create a link between any two objects. For example, to link a task and an issue, you first create a Web object for both the task and the issue in a WebObjectsDataTable, and then create a link in a WebObjectLinksDataTable.