Access PPM data using OData

PPM supports OData (Open Data Protocol), the OASIS REST-based standard for accessing data. Developers with required access can use OData to access PPM data. This topic provides instructions for accessing PPM data using OData.

Prerequisites

You should configure the following before using OData to access PPM data.

  • Expose PPM data to OData by creating a self-service portlet data source from a dashboard data source. For details, see Create self-service portlet data sources.
  • Enable the self-service portlet data source.
  • Specify who can access PPM data by giving users or user groups the access to the self-service portlet data source. For details, see Access.

    Developers that belong to the specified user groups can retrieve PPM data over OData by directly querying with an API client.

Back to top

Base URI

The PPM server base URI for accessing PPM data using OData is:

https://<web_server><server_port>/itg/odata/<self_service_portlet_data_source_service_name>

Back to top

Access PPM data using OData

This section describes how to access PPM data using OData with a REST client.

Authenticate

To work with OData, authenticate using one of the authentication methods described in Authentication.

Retrieve PPM data

You can use OData to retrieve PPM data, but you cannot update (POST, PUT, DELETE) PPM data. Only GET requests are supported.

Action Details
Get the metadata

Append $metadata to the base URI:

GET <base_URI>/$metadata

The data is returned in the XML format.

Get the rows
  • For custom self-service portlet data sources, append Rows to the base URI:

    GET <base_URI>/Rows

  • For PPM supplied self-service portlet data sources, append the EntitySet returned in the metadata to the base URI:

    GET <base_URI>/<EntitySet_Name>

The data is returned in the JSON format.

Use OData query options for refined results

Refine the results by appending the query options to the end of the GET requests.

PPM currently supports the following OData URI conventions:

Functions

String functions: concat, contains, endswith, startswith, indexof, length, toupper, tolower, trim, substring, round

Operators

Logical operators: gt, lt, ge, le, eq, ne, and, or, not

Arithmetic operators: add, div, - (the minus sign), mod, mul, sub

Transformations $apply transformations: aggregate, filter, groupby

For details about the OData URI convesions, see the OData documentation.

Example

Example: To return the forecast benefits of the portfolio 30000, grouped by strategic themes:

GET <base_URI>/PortfolioItems?PORTFOLIO_ID=30000&$apply=groupby((RES_F_strategicTheme),aggregate(RES_F_totalForecastBenefit%20with%20sum%20as%20RES_F_totalForecastBenefit_totals))

Back to top

See also: