launchpad-kpi
An OData service and a one-method ABAP interface that put a number from an abap2UI5abap2UI5One 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.community org, abap app on a SAP Fiori launchpadSAP Fiori launchpadSAP's shell for SAP Fiori apps: it hosts them and gives them navigation, personalisation, embedded support and application configuration. For the things here it is the shell a KPI tile stands in, reading the number it shows from the system behind it. tile.
A launchpad tile reads its number from an OData $count call, and an abap2UI5abap2UI5One 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.community org, abap 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 abapGitabapGitA Git client written in ABAP that runs inside the system, so objects are cloned, pulled and pushed without leaving it; with no package manager in ABAP, a cloned repository is how code is distributed.community org, abap after abap2UI5abap2UI5One 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.community org, abap, on S/4 Private Cloud, on-premise, or NetWeaver AS ABAP 7.50 and higher.
Facts
Where it sits
Who is behind it
In the atlas: maintains 21@abap2UI5-addonsmaintainerLars HvamContributes to this
In the atlas: maintains 13, contributes to 92, wrote 1@larshpoblomov-devContributes to this
In the atlas: maintains 4, contributes to 44@oblomov-dev2 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
Connections
Getting apps, cards and pages in front of users in a launchpad
Exposing data and operations through OData
SAP's shell for SAP Fiori apps: it hosts them and gives them navigation, personalisation, embedded support and application configuration. For the things here it is the shell a KPI tile stands in, reading the number it shows from the system behind it.
UI5 apps written as one ABAP class, rendered by a generic shell
Git client written in ABAP that runs inside the system
Download
Where it sits in your app
Download
$count endpoint of Z2UI5_PROXY_KPI_SRV with the app's class in the CLASS filter and shows the number it gets back.standard branch is pulled in with it, after abap2UI5.README
quoted from abap2UI5-addons/launchpad-kpi under MIT, readlaunchpad-kpi
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:
- abap2UI5
- this repository (branch
standard) - the interfaceZ2UI5_IF_LP_KPI, the sampleZ2UI5_CL_LP_KPI_HELLO_WORLDand the OData serviceZ2UI5_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
- 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.
- 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.
- 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
Preview
Limitations & Todo
- Implement a CDS/SADL based OData Service for
ABAP for Cloudcompatibility
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.
History
Others providing
- open-steamgateopen-steamgateAn ABAP application server you clone and run on your own machine: transpiled ABAP serving classic /IWBEP/ OData v2 to Fiori over a local database, with no SAP system attached.independent, abapLocal ABAP server serving /IWBEP/ OData v2 without an SAP system
- SAP Cloud Portal ServiceSAP Cloud Portal ServiceSAP's BTP service for role-based portal sites: pages, apps and widgets behind single sign-on for employees, customers and partners, with content from SAP products and other providers.sap official, btpRole-based portal sites with pages, apps and widgets
Details
Sources
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
abaplint
Flavors
“- S/4 Private Cloud or On-Premise, or R/3 NetWeaver AS ABAP 7.50 or higher (Standard ABAP)” — abap2UI5-addons/launchpad-kpi — README, Installation
Contributors
History in the atlas
- First seen.
For your agent
- Ref
artifact:abap2ui5-addons-launchpad-kpi- JSON
- /artifacts/abap2ui5-addons-launchpad-kpi.json
- MCP
- Connecting an agent