Show TOC

BPM OData ServiceLocate this document in the navigation structure

The BPM OData service enables you to access BPM-related data and operations with a custom user interface based on a modern Web technology such as SAPUI5. It acts as a wrapper, exposing selected functionalities of the BPM public API.

Due to the well-defined OData protocol, the service provides a uniform way to access the exposed data and functionalities. Therefore, the service supports you in development of custom desktop applications as well as mobile applications with access to BPM-related data and operations.

Note The BPM OData service consists of several services. There is one service for each type of activity. In the following, we summarize these OData services for accessing BPM data and operations as BPM OData service.

For more information about the BPM OData service and corresponding examples, see the BPM OData blog series in SCNInformation published on SAP site.

Prerequisites

To access the BPM OData service, the following role needs to be assigned to you:

  • SAP_BPM_ODATA

In addition, you need the necessary permissions to execute specific actions on BPM entities. For example, you can only claim a task if you are a potential owner. To start a process, the role SAP_BPM_TRIGGER_EVENT must be assigned to you. The additionally needed permissions are listed as prerequisites in the respective sections, for example, in BPM OData Service for Accessing BPM Tasks, BPM OData Service for Accessing BPM Task Data, or BPM OData Service for Starting BPM Processes.

For more general information about BPM roles, see Authorizations and Roles.

BPM-Related Data and Operations Accessible with BPM OData Service

With the help of the BPM OData service you can access the following BPM data and operations from custom UIs:

  • BPM task data and operations on the task (BPM task metadata, BPM task input and output data, claim BPM tasks, complete BPM tasks)
  • Value help (bind the user interface directly, expose the services of value help)
  • BPM process start (get the active process definition, start a process)

To access BPM task and task data, the following services are available:

  • BPM Tasks OData service (tasks.svc) to access task metadata
  • BPM Task Data OData service (taskdata.svc) to access input and output data
Entity Model

The data that is exposed by an OData service is based on an underlying abstract data model. This data model is called Entity Data Model (EDM). The data types of the BPM data are modeled during design time. The format used to model these data types is the XML Schema Definition (XSD). The EDM of the BPM OData service is generated at runtime. The EDM can be inspected using the standard OData operation $metadata.

For general information about OData, see http://www.odata.org/introductionInformation published on non-SAP site.

Invoking the BPM OData Service

The BPM OData service is available via a defined URL. The URL is composed as follows:

http://<host>:<port>/bpmodata/<service_name>/<path_segment(s)>/<OData_resource_path_and_query_options>

You need to know the host name and the server port used to connect to SAP BPM. The keyword bpmodata is then followed by the name of the specific service you want to use.

The path segment is specific to the service and is not always needed. The last part of the URL is the OData resource path and the query. The OData resource path specifies the resource you want to access or the operation you want to perform.

IDs in the BPM OData Service

In BPM, we use IDs to identify different artifacts, for example, task instances. IDs can be represented in two different formats: hexadecimal and URI. The BPM OData service can handle both formats.

Example Hexadecimal

Sample ID: d6e6590d109d11e39633000000288732

The following table shows URLs with an exemplary ID in hexadecimal format:

GET /bpmodata/tasks.svc/TaskCollection('d6e6590d109d11e39633000000288732')

GET /bpmodata/taskdata.svc/d6e6590d109d11e39633000000288732/InputData

Example URI

Sample ID: bpm://bpm.sap.com/task-instance/d81fe974703611e0803800000156fd47

An ID in URI format contained in a URL needs to be URL-encoded as follows: bpm%3A%2F%2Fbpm.sap.com%2Ftask-instance%2Fd6e6590d109d11e39633000000288732

The following table shows URLs with an exemplary ID in URI format:

GET /bpmodata/tasks.svc/TaskCollection('bpm%3A%2F%2Fbpm.sap.com%2Ftask-instance%2Fd6e6590d109d11e39633000000288732')

GET /bpmodata/taskdata.svc/bpm%3A%2F%2Fbpm.sap.com%2Ftask-instance%2Fd6e6590d109d11e39633000000288732/InputData