PackagePackagetypeA library you install and call yourself.See every one →What this type is →by a community orgby a community orgoriginPublished by a community organisation, so it outlives any one maintainer.See every one →

launchpad-kpi

An OData service and a one-method ABAP interface that put a number from an abap2UI5 app on a SAP Fiori launchpad tile.

A launchpad tile reads its number from an OData $count call, and an abap2UI5 app has no OData service of its own. This repository installs one generic service, Z2UI5_PROXY_KPI_SRV, which creates the class named in the request's CLASS filter and asks it for the count, so an app implements the interface Z2UI5_IF_LP_KPI and its single count method and nothing else. A second FILTER condition, a JSON string, is handed to that method for different calculations, and the sample class Z2UI5_CL_LP_KPI_HELLO_WORLD shows both forms of the call. It is pulled in with abapGit after abap2UI5, on S/4 Private Cloud, on-premise, or NetWeaver AS ABAP 7.50 and higher.

Facts

Last pushLicenceMIT

Where it sits

Lives in
Provides
ODataABAPODatacapabilityExposing data and operations through OData, including the service model, metadata and protocol versions clients require. Version differences affect which clients can consume a service and which query features they can use.Launchpad and site contentUI5Launchpad and site contentcapabilityGetting apps, cards, pages and workspaces in front of users in an application launchpad or portal, including content providers, content packages and access roles. Serving the application’s files is [app hosting](capability:app-hosting); extending the surrounding shell is [launchpad plugins](capability:launchpad-plugins).
Add-on to
abap2UI5abap2UI5artifactOne ABAP class implementing z2ui5_if_app is the whole app: the browser loads a generic UI5 shell once, and every interaction after that is an HTTP roundtrip back into ABAP.
Serves
Requires
abap2UI5abap2UI5artifactThe framework the apps it reports on are written in, installed before this repository; the README lists it under Requirements and as step 1 of the installation.abapGitabapGitartifactHow the interface, the sample class and the OData service get into the system: the standard branch is pulled in with it, after abap2UI5.

Who is behind it

abap2UI5-addonsabap2UI5-addonsOrganisationMaintains this
In the atlas: maintains 21
@abap2UI5-addons
maintainerLars HvamPersonContributes to this
In the atlas: maintains 13, contributes to 92, wrote 1
@larshp
oblomov-devPersonContributes to this
In the atlas: maintains 4, contributes to 44
@oblomov-dev
2 contributors

Before choosing this

Conditions

PracticalFunctional boundary

There is nothing here for ABAP for Cloud: the requirements name Standard ABAP releases only, and a CDS/SADL based OData service for ABAP for Cloud compatibility stands under Limitations & Todo.

What it declares

Every artifact

Type
Package
Origin
By a community org

As a package

Where it runs
Inside its host
Distributed through
abapGit

Connections5

launchpad-kpi connectionslaunchpad-kpiPROVIDES→ provides2provides stated Supplies the number a KPI tile in the [SAP Fiori launchpad](external:sap-fiori-launchpad) displays for an [abap2UI5](artifact:abap2ui5-abap2ui5) app: the tile is maintained against the `$count` endpoint with the app's class in the filter. abap2UI5-addons/launchpad-kpi — README: https://github.com/abap2ui5-addons/launchpad-kpi abap2UI5-addons/launchpad-kpi — README, Usage: https://github.com/abap2ui5-addons/launchpad-kpiLaunchpad and site contentprovides stated Ships one generic OData service, `Z2UI5_PROXY_KPI_SRV`, whose `$count` on `ENTITYCollection` creates the ABAP class named in the `CLASS` filter and returns the value its `count` method gives back. abap2UI5-addons/launchpad-kpi — README, Why: https://github.com/abap2ui5-addons/launchpad-kpi abap2UI5-addons/launchpad-kpi — README, Usage: https://github.com/abap2ui5-addons/launchpad-kpiODataNEEDS→ connects to1connects to stated A launchpad tile calls the `$count` endpoint of `Z2UI5_PROXY_KPI_SRV` with the app's class in the `CLASS` filter and shows the number it gets back. abap2UI5-addons/launchpad-kpi — README, Why: https://github.com/abap2ui5-addons/launchpad-kpi abap2UI5-addons/launchpad-kpi — README, Usage: https://github.com/abap2ui5-addons/launchpad-kpiSAP Fiori launchpad→ needs2needs stated The framework the apps it reports on are written in, installed before this repository; the README lists it under Requirements and as step 1 of the installation. abap2UI5-addons/launchpad-kpi — README: https://github.com/abap2ui5-addons/launchpad-kpi abap2UI5-addons/launchpad-kpi — README, Installation: https://github.com/abap2ui5-addons/launchpad-kpiabap2UI5needs stated How the interface, the sample class and the OData service get into the system: the `standard` branch is pulled in with it, after abap2UI5. abap2UI5-addons/launchpad-kpi — README, Installation: https://github.com/abap2ui5-addons/launchpad-kpiabapGit

Where it sits in your app

Download
Your ABAP systemabap2UI5-addons/launchpad-kpi — README, Why, checked 2026-10-19: “A launchpad tile reads its number from an OData `$count` call - but an abap2UI5 app has no OData service of its own.”inbounddocumentedrequiresdocumentedrequiresSAP Fiori launchpad, SAP solutionSAP Fiori launchpadSAP solutionlaunchpad-kpi, modulelaunchpad-kpiabap2UI5, moduleabap2UI5abapGit, moduleabapGit
SAPnot SAP's, or the project's ownstated in the documentdocumented only

README

quoted from abap2UI5-addons/launchpad-kpi under MIT, read
abap2UI5-addons/launchpad-kpi/README.mdOn GitHub

launchpad-kpi

abap2UI5-addons ABAP abap2UI5 License
ABAP Standard

Send KPIs of your abap2UI5 apps to the SAP Fiori Launchpad. Implement a single interface with a single method that returns the KPI value, and the OData service Z2UI5_PROXY_KPI_SRV of this repository hands it to a launchpad tile. For developers who want their abap2UI5 apps to show a live number on the launchpad.

Part of abap2UI5-addons - addons and apps for abap2UI5, installed with abapGit.

Why

A launchpad tile reads its number from an OData $count call - but an abap2UI5 app has no OData service of its own. launchpad-kpi brings one generic OData service that creates the class named in the filter and asks it for the count, so every app only has to implement one method.

Installation

Requirements

  • S/4 Private Cloud or On-Premise, or R/3 NetWeaver AS ABAP 7.50 or higher (Standard ABAP)
  • abap2UI5

Steps - with abapGit, in this order:

  1. abap2UI5
  2. this repository (branch standard) - the interface Z2UI5_IF_LP_KPI, the sample Z2UI5_CL_LP_KPI_HELLO_WORLD and the OData service Z2UI5_PROXY_KPI_SRV

Start - call the count of the sample class: .../sap/opu/odata/sap/Z2UI5_PROXY_KPI_SRV/ENTITYCollection/$count?$filter=CLASS eq 'z2ui5_cl_lp_kpi_hello_world'

Usage

  1. The launchpad-kpi addon is accessed via a single interface and method:
INTERFACE z2ui5_if_lp_kpi
  PUBLIC.

  METHODS count
    IMPORTING
      filter        TYPE string
    RETURNING
      VALUE(result) TYPE i.

ENDINTERFACE.
  1. Include it into your app to return KPIs as shown here:
CLASS zcl_my_app DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC .

  PUBLIC SECTION.
    INTERFACES z2ui5_if_lp_kpi.
    INTERFACES z2ui5_if_app.

ENDCLASS.

CLASS zcl_my_app IMPLEMENTATION.

  METHOD z2ui5_if_lp_kpi~count.
    "kpi calculation....
    result = 10.
  ENDMETHOD.

  METHOD z2ui5_if_app~main.
    "abap2UI5 app logic here...
  ENDMETHOD.

ENDCLASS.
  1. Maintain the KPI at the Launchpad with the following endpoint: .../sap/opu/odata/sap/Z2UI5_PROXY_KPI_SRV/ENTITYCollection/$count?$filter=CLASS eq 'zcl_my_app'

The sample z2ui5_cl_lp_kpi_hello_world also shows how to pass a second FILTER condition (a JSON string) to count for different calculations: ...$filter=CLASS eq 'z2ui5_cl_lp_kpi_hello_world' and FILTER eq '{ "PROP1" : "B", "PROP2" : "VAL2" }'

Features

  • KPI Connector: Send KPIs of your abap2UI5 Apps to SAP Fiori Launchpad
  • User-Friendly: Implement just a single interface and method to return the KPI value
  • Project Consistency: Easily integrable with your abap2UI5 apps

Demo

Idea
image
Preview
Pasted Graphic 3

Limitations & Todo

  • Implement a CDS/SADL based OData Service for ABAP for Cloud compatibility

Development

npm ci
npm run check

npm run check runs abaplint the way CI does (abap-standard.yaml).

Contributing

Issues and pull requests are welcome! Whether you're fixing bugs, adding new functionality, or improving documentation, your contributions are highly appreciated.

License

MIT - see LICENSE.

MIT, read

History

Others providing5

OData
  1. odata-fwABAP framework for OData services with one class per entity
  2. open-steamgateLocal ABAP server serving /IWBEP/ OData v2 without an SAP system
  3. open-abap-odataOData and Gateway shims serving SEGW-style services on Node.js
  4. @root3287/cap-segwCompiler from a CDS service to SEGW model and data provider classes
  5. OData Batch CreatorBuilds OData batch request payloads from an uploaded $metadata file

Details

Sources3
GitHub APIdiscovered herechecked
github.com/abap2UI5-addons/launchpad-kpitree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
discovered viaGitHub API
first seen in the atlas
ecosystem and domainabap, ui-and-frontend-bridge
abaplint
issues under its own abaplint configuration0
lines474
statements285
objects14
files12
analysed, standard
abaplint version2.120.84
Flavors1
Standard ABAP
“- S/4 Private Cloud or On-Premise, or R/3 NetWeaver AS ABAP 7.50 or higher (Standard ABAP)” — abap2UI5-addons/launchpad-kpi — README, Installationchecked
Contributors2

From the repository’s contributor list, .

History in the atlas1
  1. First seen.
For your agent
Ref
artifact:abap2ui5-addons-launchpad-kpi
JSON
/artifacts/abap2ui5-addons-launchpad-kpi.json
MCP
Connecting an agent