Skip to main content
Version: 8.8 (unreleased)

SAP BTP plugin

The Camunda SAP Business Technology Platform (BTP) plugin is an artifact run on BTP. It consists of a UI5 app, a CAP service layer and backend (using PostgreSQL), and an approuter for traffic dispatching.

The BTP plugin connects to Camunda 8 SaaS to provide:

  • A generic Fiori app for starting BPMN processes and displaying Camunda Forms in the Fiori design language.
  • A generic endpoint to start BPMN processes with.

Prerequisites

  • Camunda API Client
    Create an API client for your Camunda SaaS cluster with the full scope: Zeebe,Tasklist,Operate,Optimize,Secrets

  • Locally, for configuring via csap only (see below): Node.js >= 20 LTS

On SAP BTP:

Features

  • Model user tasks in your BPMN process—they will be automatically detected and rendered by the BTP plugin at runtime.

Camunda Forms in Fiori

  • Equip the last user task with a custom header final-user-task and the value:

    • success to display the last user task on the "happy path".
    • fail to use that user task to communicate a failed process to the user.

    screenshot of header variable in Modeler

  • Auto-start a process via URL parameter using run=<processID>.
    For example, https://<btp plugin url>/index.html?channelId=<id>&run=application-process.

  • For debugging purposes, add debug=true as the URL parameter.
    For example, https://<btp plugin url>/index.html?channelId=<id>&run=application-process&debug=true.

  • /inbound endpoint for starting a BPMN process in Camunda

Camunda Forms in SAP Fiori

Layout: Only a single-row layout is supported:
image-20250219112232376

Custom properties are not supported:
image-20250219112156011

Supported Form Features and Properties

Camunda Forms Feature / PropertySupported in Camunda BTP Plugin?Comments
Input
Text field
Text area
Number
Date timeOnly UTC values will be stored
- Date format yyyy-MM-dd, for example 2025-02-29"12
- Hours format will be stored as the string 10:12:34 pm
- 24 hours format will be stored as the string 22:12:34
Expression
Filepicker
Selection
Checkbox
Checkbox group
Radio groupOnly static options source is supported.
SelectOnly static options source is supported.
Tag list
Presentation
Text view
Image view
Table
HTML view
Document preview
Spacer
Separator
Containers
Group
Dynamic list
iframe
Action
Button

Configuration and deployment

Use csap for setting up the BTP plugin, as a manual configuration is cumbersome and error-prone.

With Camunda, no setup/config work is necessary to use the BTP plugin.

Configuring the BTP plugin using csap

Either walk yourself through the prompts or provide all information to the CLI:

  • csap setup will guide you interactively.

  • Assuming your Camunda cluster's API credentials are sourced in your shell environment, this will do the configuration for you:

csap setup --for btp-plugin \
--camunda 8.7 \
--deployment SaaS \
--btpRoute camunda-btp-plugin.cfapps.eu10-004.hana.ondemand.com

The host name provided as btpRoute will be the URL to the BTP plugin's app; following the example above: https://camunda-btp-plugin.cfapps.eu10-004.hana.ondemand.com.

Deploying to BTP

  1. Log into the desired SAP BTP subaccount via the Cloud Foundry cli (cf-cli):
$> cf login
API endpoint: https://api.cf. ...
...
  1. cd to the folder csap logs after a successful build, for example, /tmp/camunda/8.6/sap-btp-plugin
  2. Issue cf deploy mta_archives/*.mtar
    • Add the -f switch to force an update, for example, by deploying the same version again (cf deploy mta_archives/*.mtar -f).
    • Consider adding --delete-services to recreate eventually failed service creation of previous deployment. For example, cf deploy mta_archives/*.mtar -f --delete-services.

For advanced deployment configuration, consider working with your SAP practice, starting from the created mta.yaml deployment descriptor (in the $TMP folder as output by csap).

Working with the BTP plugin

The BTP plugin provides a guided, one-user multi-page flow where a single user progresses through a sequence of steps to complete a task or workflow. It renders subsets of Camunda Forms, with each page representing a distinct part of the process.

After deployment, the BTP plugin is available at the btpRoute provided: https://<btpRoute>. If called manually (for example, in the browser) it will redirect automatically to /app/index.html?channelId=<unique id> . The <unique id> or "channel ID" links the output device to the BTP plugin, representing a dedicated "output channel".

Starting a BPMN process in the browser

Start any Camunda BPMN process manually via the menu bar.

BTP Plugin UI to start process

In the popup, enter the ID of the BPMN to run.

start process in Fiori app

Alternatively, the process can be auto-started by directly calling the URL:

https://<btp plugin url>/index.html?channelId=<random id>&run=fiori-bupa-search

Starting a BPMN process via API

Make a POST http call to https://<btpRoute>/backend/inbound with this defined payload:

{
"bpmnProcessId": "processId", # ex above: fiori-bupa-search
"user": "beck@renegade.org", # unique id of the user
"wait": false, # or true to wait for the BPMN run to finish and get the result back
"variables": { # optional
"some_key": "some_value",
"some_other_key": 10
}
}

The advantage over Camunda REST API: use the authentication realm between BTP and S/4 / ECC, there is no need for adminstrating additional credentials.