{"ref":"artifact:abap2ui5-addons-launchpad-kpi","page":"/artifacts/abap2ui5-addons-launchpad-kpi","json":"/artifacts/abap2ui5-addons-launchpad-kpi.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"abap2ui5-addons-launchpad-kpi","name":"launchpad-kpi","artifact_type":"package","ecosystem":"abap","serves_ecosystems":["ui5"],"flavors":[{"key":"standard-abap","source":{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README, Installation","checked":"2026-10-19","quote":"- S/4 Private Cloud or On-Premise, or R/3 NetWeaver AS ABAP 7.50 or higher (Standard ABAP)"}}],"domain":"ui-and-frontend-bridge","secondary_domains":["protocols-and-apis"],"origin_ring":"community-org","use_as":"dependency","description":{"one_line":"An OData service and a one-method ABAP interface that put a number from an [abap2UI5](artifact:abap2ui5-abap2ui5) app on a [SAP Fiori launchpad](external:sap-fiori-launchpad) tile.","short":"Puts a number from an abap2UI5 app on a Fiori launchpad tile","what_it_solves":"A launchpad tile reads its number from an OData `$count` call, and an [abap2UI5](artifact:abap2ui5-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](artifact:abapgit-abapgit) after [abap2UI5](artifact:abap2ui5-abap2ui5), on S/4 Private Cloud, on-premise, or NetWeaver AS ABAP 7.50 and higher.","when_not_to_use":"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.","to_build_on_it":"The open item the README names is a CDS/SADL based OData service for `ABAP for Cloud` compatibility. The repository's own `npm run check` runs abaplint the way its CI workflow `abap-standard.yaml` does."},"links":{"repo":"https://github.com/abap2UI5-addons/launchpad-kpi"},"type_properties":{"placement":{"value":"in-host","sources":[{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README, Usage","checked":"2026-10-19","quote":"Include it into your app to return KPIs as shown here:"},{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README, Installation","checked":"2026-10-19","quote":"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`"}]},"distribution":{"value":["abapgit"],"sources":[{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README","checked":"2026-10-19","quote":"> Part of [abap2UI5-addons](https://github.com/abap2UI5-addons) - addons and apps for [abap2UI5](https://github.com/abap2UI5/abap2UI5), installed with [abapGit](https://abapgit.org)."}]}},"maintainers":["actor:abap2ui5-addons"],"provides":[{"capability":"capability:odata","what_it_does":"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.","sources":[{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README, Why","checked":"2026-10-19","quote":"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."},{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README, Usage","checked":"2026-10-19","quote":"`.../sap/opu/odata/sap/Z2UI5_PROXY_KPI_SRV/ENTITYCollection/$count?$filter=CLASS eq 'zcl_my_app'`"}]},{"capability":"capability:launchpad-content","what_it_does":"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.","sources":[{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README","checked":"2026-10-19","quote":"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."},{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README, Usage","checked":"2026-10-19","quote":"Maintain the KPI at the Launchpad with the following endpoint:"}]}],"requires":[{"ref":"artifact:abap2ui5-abap2ui5","for":"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.","requirement":"required","basis":"binding","role":"framework","sources":[{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README","checked":"2026-10-19","quote":"> Part of [abap2UI5-addons](https://github.com/abap2UI5-addons) - addons and apps for [abap2UI5](https://github.com/abap2UI5/abap2UI5), installed with [abapGit](https://abapgit.org)."},{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README, Installation","checked":"2026-10-19","quote":"[abap2UI5](https://github.com/abap2UI5/abap2UI5)"}]},{"ref":"artifact:abapgit-abapgit","for":"How the interface, the sample class and the OData service get into the system: the `standard` branch is pulled in with it, after abap2UI5.","requirement":"required","basis":"binding","role":"installation","sources":[{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README, Installation","checked":"2026-10-19","quote":"**Steps** - with [abapGit](https://abapgit.org), in this order:"}]}],"connects":[{"ref":"external:sap-fiori-launchpad","kind":"data","direction":"inbound","for":"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.","sources":[{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README, Why","checked":"2026-10-19","quote":"A launchpad tile reads its number from an OData `$count` call - but an abap2UI5 app has no OData service of its own."},{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README, Usage","checked":"2026-10-19","quote":"Maintain the KPI at the Launchpad with the following endpoint:"}]}],"interfaces":[{"key":"kpi-odata-service","name":"Z2UI5_PROXY_KPI_SRV","kind":"api","direction":"in","for":"`$count` on `ENTITYCollection`, filtered by `CLASS` and optionally by a JSON `FILTER` string, returns the count the named class computes.","sources":[{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README","checked":"2026-10-19","quote":"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."},{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README, Usage","checked":"2026-10-19","quote":"`.../sap/opu/odata/sap/Z2UI5_PROXY_KPI_SRV/ENTITYCollection/$count?$filter=CLASS eq 'zcl_my_app'`"},{"url":"https://github.com/abap2ui5-addons/launchpad-kpi","title":"abap2UI5-addons/launchpad-kpi — README, Usage","checked":"2026-10-19","quote":"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:"}]}],"provenance":{"discovered_via":[{"source":"source:github"}],"first_seen":"2026-10-17"},"drafted_with_ai":true,"contributors":["actor:larshp","actor:oblomov-dev"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"2 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"good","evidence":"SAP_BASIS 750 and up, in its abaplint config: includes every maintained line to 816"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"good","evidence":"abap-standard green, 2026-10-12"}],"practice":[{"label":"Tests","tier":"poor","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"README 4 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":2,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-24","npm":"not published under this name","stars":2,"forks":3,"open_issues":0,"archived":false,"pushed_at":"2026-10-12","license_spdx":"MIT","org_owned":true,"default_branch":"standard","created_at":"2023-12-06T18:20:08Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":1,"other_ci":false,"readme_bytes":4229,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2023-12-06","last_commit":"2026-10-12","commits":78,"contributors":2,"ci_status":"success","ci_run_at":"2026-10-12","ci_workflow":"abap-standard","ci_event":"push","readme_path":"README.md","readme_sha":"3307ba5903181889b10f429bb6000a503e2ecb22","repo_read":"2026-10-24","abap_syntax":{"repo":"abap2UI5-addons/launchpad-kpi","file":"abaplint.jsonc","url":"https://github.com/abap2UI5-addons/launchpad-kpi/blob/HEAD/abaplint.jsonc","version":"v750","floor":"750","checked":"2026-10-26"}},"release_notes":{"license":"MIT","quotable":true,"source":{"kind":"github-releases","url":"https://github.com/abap2UI5-addons/launchpad-kpi/releases"},"format":"github-releases","releases":[{"version":"1.139.0","date":"2025-06-26","date_source":"github","heading":"1.139.0","url":"https://github.com/abap2UI5-addons/launchpad-kpi/releases/tag/1.139.0","sections":[],"hash":"0a9676a12bda6287"},{"version":"1.134.0","date":"2024-09-22","date_source":"github","heading":"1.134.0","url":"https://github.com/abap2UI5-addons/launchpad-kpi/releases/tag/1.134.0","sections":[],"hash":"34b1ff0904ade163"},{"version":"1.133.0","date":"2024-08-24","date_source":"github","heading":"1.133.0","url":"https://github.com/abap2UI5-addons/launchpad-kpi/releases/tag/1.133.0","sections":[],"hash":"e3b0c44298fc1c14"},{"version":"1.132.0","date":"2024-07-28","date_source":"github","heading":"1.132.0","url":"https://github.com/abap2UI5-addons/launchpad-kpi/releases/tag/1.132.0","sections":[],"hash":"e3b0c44298fc1c14"},{"version":"1.131.0","date":"2024-07-03","date_source":"github","heading":"1.131.0","url":"https://github.com/abap2UI5-addons/launchpad-kpi/releases/tag/1.131.0","sections":[],"hash":"8c08aa16b4a1a866"},{"version":"1.130.0","date":"2024-06-13","date_source":"github","heading":"1.130.0","url":"https://github.com/abap2UI5-addons/launchpad-kpi/releases/tag/1.130.0","sections":[],"hash":"e3b0c44298fc1c14"},{"version":"1.112.0","date":"2023-12-20","date_source":"github","heading":"1.112.0","url":"https://github.com/abap2UI5-addons/launchpad-kpi/releases/tag/1.112.0","sections":[],"hash":"e3b0c44298fc1c14"},{"version":"1.110.0","date":"2023-12-15","date_source":"github","heading":"1.110.0","url":"https://github.com/abap2UI5-addons/launchpad-kpi/releases/tag/1.110.0","sections":[],"hash":"e3b0c44298fc1c14"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:abap2ui5-addons","name":"abap2UI5-addons","json":"/actors/abap2ui5-addons.json"}],"contributors":[{"ref":"actor:larshp","name":"Lars Hvam","json":"/actors/larshp.json"},{"ref":"actor:oblomov-dev","name":"oblomov-dev","json":"/actors/oblomov-dev.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_on_to":{"ref":"artifact:abap2ui5-abap2ui5","name":"abap2UI5","json":"/artifacts/abap2ui5-abap2ui5.json"},"add_ons":[],"answered_through_parts":[]}}