Skip to main content
Planview Customer Success Center

Getting Started with WS API

PPM Pro provides a number of web service operations that are called through a secure HTTPS address. You can use these operations to perform CRUD actions on any WS-enabled entity in the PPM Pro application.

The first thing to do is take a look at the available operations. There are several ways to view a list of supported web services operations:

  • look at the PPM Pro WSDL:https://<yourcompanysubdomain>.ppmpro.com/services/MainService?wsdl

  • load the WSDL into a tool such as SOAP UI (http://www.soapui.org/

  • read the javadoc by navigating to Admin/Web Services (click the View API Documentation button)

  • get an authentication token - see Authentication Token

Identify the PPM Pro Entities

As mentioned in About Web Services, the API workhorses are entities and fields. When you plan an integration, you will need to get some information about the entity, or entities, that your integration will access.

Entities are the high-level objects in PPM Pro, such as portfolios, projects, resources, and tasks. Entity types are referenced by ID numbers. You can view the list of entity type IDs on the Admin/Web Services API page in PPM Pro.

Entities have fields, or attributes, associated with them. For example, a project entity might have fields like Title, Status, Owner, Start Date, Complete Date. Each field, including user-defined fields (UDFs), is assigned a unique ID. You'll need to use these IDs to interact with PPM Pro programmatically through the API. 

Use the Fields function for an entity on Admin/Web Services API to display a dialog showing available fields for each entity state: select, insert, and update. The dialog also provides field IDs and an indication of which fields are required. The screen below shows the Fields dialog for the Project entity:

ws_intergration_ui.png

Once you have the entity ID, we recommend you call getEntityFields to get an accurate accounting of the fields on the entity. You can use this to validate the field IDs you are using in the rest of your integration.