Producing a web interface is UI written in ABAPUI written in ABAPProducing a web user interface from ABAP code, with the application’s backend language also defining what the user sees and how it behaves.Community only; operating an existing screen programmatically is GUI automationDriving the SAP GUIOperating the SAP GUI programmatically to perform tasks or test interactions through the actual screen. Agent access to your code works with development objects instead of the user interface.Community only.
Developer Experience
The work of building: the editor and the local server, generators and tests, linting and debugging, and how code is reviewed and versioned before it ships.
Capabilities
Compare the concerns mapped here and open an ecosystem for its assessment. Artifact counts show providers; content counts show items linked directly to the capability.
Each ecosystem hexagon shows its own coverage assessment. Coverage is never combined across ecosystems.
Artifacts
Providers, examples and other artifacts mapped to this domain, from SAP and the community. Each artifact appears once.
Event roundtrips and visual fidelity stay with a live run: the documentation leaves those to the project's MCP server and to [abap2UI5 for VS Code](artifact:abap2ui5-vscode-extension). A class that builds view parts in helper methods without the handle idiom cannot be statically reconstructed, and the render gate is then skipped with a notice while the property gate runs on what was reconstructed. A screenshot is not a preview of the app: nothing round-trips, no event reaches ABAP, and a table filled by a SELECT photographs empty unless a mock JSON file sits beside the source.
Every gate here runs off-system, so what the class does on a real system and what the view does on the oldest UI5 release it has to serve are what the `pitfalls` catalogues carry and no local run can see. It runs abap2UI5 app classes, so ABAP that is not one has nothing here to deploy into. In system mode the sandbox tools are not offered, and an `app_act` event runs on the system as the configured user.
What adt-ls cannot do headless the maintainer puts out of scope, so a consumer that needs an ADT call the language server does not expose is back to speaking ADT itself. The README states the current runtime compatibility as verified on macOS arm64, against adt-ls 1.1.2 as the minimum and `1.1.2.202608131517` as the version tested. An Eclipse installation does not supply that runtime: SAP versions the two separately, so the VS Code extension has to be installed even where nobody opens VS Code.
It is a bundle, not a plugin with one job. Depending on it for one feature brings the rest.
The manifest calls it a dummy library exposing custom CDS annotations, but the published contents are a one-line README, a single exported barrier() whose body is throw Error("not yet implemented"), and no .cds file at all — there is nothing to import and nothing to annotate with. No repository, one release, May 2025.
Its own readme carries a caution: this is a sample, not intended for production use. It exists to demonstrate the plugin mechanism, and the bookstore sample is where it is used.
Neither the package manifest nor the repository tree declares a licence.
There is no repository and no README: what the eight commands do is only readable from the compiled dist that ships in the package. Three of them — npmrc, install, project — are written for "SimpleMDG" projects rather than for CAP generally, so the reusable part is bind-local, run-local and debug. Seven releases up to July 2026. Its binding step writes the resolved VCAP_SERVICES into default-env.json in the project, where [@sap/cds-dk](artifact:sap-cds-dk) keeps only the place the credentials can be fetched from, so a project using it needs that file kept out of version control.
There is nothing to run: it is published for a generator or a script to call, not for a developer to invoke in a project, and it declares Node.js 22 or later.
Its own account of itself is local running and tests: the DCN it writes serves as input for running an application using AMS on the DCL bundle locally. It carries the SAP Developer License Agreement rather than an open-source licence, and the repository named in its package metadata is an internal SAP host, so the npm page is the only thing to read.
Not in a project whose dependencies must all carry an open-source licence: KAEV is proprietary software, its licence page states that downloading or viewing the npm package does not by itself grant permission to use, copy, modify, redistribute, sublicense, sell, host or create derivative works, and the LICENSE file shipped with the package carries the controlling terms. Not as the last word on whether a UI5 application is secure: its rule reference states that a heuristic finding is not proof of a vulnerability, and its documentation puts professional security review beside it rather than under it.
Lowercase HTML tags such as `<div>` typecheck but throw: the default renderer constructs UI5 controls, and the HTML-aware renderer plugin is described as planned. `withScope` restores the previous scope on a synchronous return only, so an `await` inside its callback leaks the scope on runtimes without `AsyncLocalStorage`. A view that has to stay adaptable through UI5 flexibility has no path here yet: the project's [Devtoberfest session](content:devtoberfest-2026-ui5-views-type-safe-tsx) states that flexibility support is not built in yet.
It shows the wiring and a converted view pair, not the runtime's API surface; the directives, the plugin SPI and the binding forms are demonstrated in [@ui5-community/jsx-runtime-showcase](artifact:ui5-community-jsx-runtime-showcase) instead.
Its views are not a template for application code: every showcase view overrides `getController()` to return itself so a sample stays readable in one file, and the gotchas page says not to ship that in production, where a view keeps a separate `*.controller.ts`. Routing from a sample, an `ODataModel` v2 or v4, `sap.ui.mdc.Table`, forms and custom control authoring in TSX are absent by decision and documented as deferred.
It reads a UI5 project and the framework's own documentation, not a running system or a backend: a question about the service behind the app is answered somewhere else. Node.js v20.17 or v22.9 and above.
The declared repository is archived.
Not where the UI library itself is expected to bind data: the documentation leaves binding a component's content and events to the host framework. Not from a CDN script tag: the project publishes none, so it assumes a build step.
On an [SAP BTP ABAP environment](artifact:btp-abap-environment) system only the generated code is left: DDIC creation is not supported on ABAP Cloud, because classic DDIC object creation over REST is not available there. Create DDIC is also disabled where ADT is not installed in the same Eclipse, and Insert into Editor then works with any editor implementing `ITextEditor` instead of the ABAP one.
On a system below ABAP 7.51, or one without a connected HANA database, the client-based mode does not run, and the server-based mode is only available where the abap-code-search-tools backend is installed in the system.
It is an Eclipse install. A development object that is not native-integrated in Eclipse opens in the SAP GUI that is installed locally with the client.
On a system where the abap-search-tools backend is not installed: the plugin lists it as a precondition, and the beta update site expects that backend's dev branch in particular.
In beta by its own page's account, where conversion bugs may occur and not all functions and variants are supported yet. The shapes named as not yet supported are sub selects, FOR ALL ENTRIES, functions such as count and sum, and the IN operator with a value list, so a statement built on one of those is outside what the converter sets out to do.
Quiet No published releases; repository quiet for 27 months.
Functional boundary It binds to the .abap and .ABAP file extensions inside Visual Studio Code, so it does nothing for ABAP opened in another editor, or for source read from a system over ADT instead of from a file on disk.
No published releases; repository quiet for 28 months.
No published releases; repository quiet for 97 months.
No published releases; repository quiet for 83 months.
Not a tool a developer runs: it is a library to build one with, and it ships no editor, command line or interface of its own. Its sample connects with a plain HTTP URL, a user and a password, so a system that does not expose the adt ICF service that way is out of reach.
A Python 3.10+ CLI, installed with pipx rather than through any SAP-provided package manager. Its own README lists what it does not do yet: where-used, syntax check and unit test runs — for those it says to reach for [ADT/Eclipse](external:eclipse) or an MCP server. First release, v0.1.0, and no standalone LICENSE file in the repository — the MIT grant is in the README and in pyproject.toml's project metadata rather than its own file.
A system below ABAP 7.50: some of the classes it uses are only available from 7.50, and the maintainer states that downward compatibility to 7.40 in a single branch is currently not possible without resorting to dynamic programming.
Not reachable since 2026-10-20.
No published releases; repository quiet for 43 months.
No published releases; repository quiet for 67 months.
Not below SAP_BASIS 7.40 SP08, and not on [SAP S/4HANA Cloud Public Edition](external:sap-s4hana-cloud-public-edition) or [the SAP BTP ABAP environment](artifact:btp-abap-environment), where the classic transport check, the report and job calls and the cluster table `INDX` it rests on do not exist and the maintainer names gCTS as the answer instead. Only on a development system where every developer is trusted: each developer's GitHub token is kept in a cluster table encrypted with a key held in the same table, so anybody who can run ABAP on that system can read both, and the separation between author and reviewer holds only as far as that trust does. Not where the gate has to be unconditional — `#NOREVIEW` in a request's short text skips the check for that request, `ZTR_DISABLED` switches it off for a system, a check that cannot reach GitHub lets the release go on, and nothing checks who writes the marker.
The embedded preview needs a system that accepts basic auth: the documentation states that pure SSO or SAML without a basic-auth fallback is not supported, and points at `external` mode, which opens the app in the normal browser with the existing SAP session. On the web only the language half runs; the preview with its proxy, traffic log and screenshot, Ctrl+F3 activation, the render gate, the workspace-wide check and the MCP servers are desktop-only. The agent app tools send nothing until `abap2ui5.agent.enableAppTools` is switched on in User settings, because an event they fire runs as the configured user and changes data on the system for real.
There is no control tree: visibility and enablement are not evaluated, and `set_value( )` is not checked against the bound paths. The frontend `CONFIG` (device, UI5 version, focus, scroll) is not sent at all, so an app that branches on device or theme sees initial values. It drives `z2ui5_cl_ui5_handler` and the draft service, which the README states are not part of abap2UI5's released API in `src/02`, so a core change there can require a change here.
The class has to be moved by hand: an abapGit pull of the exported ZIP, or a paste into ADT or SE24. The palette is held to the 121 controls of UI5 1.71, and a control inserted by its class name instead comes from whatever UI5 the canvas has loaded, with nothing checking it against 1.71 - *Checks* reports that. An app class that builds no view, or more than one, is refused.
A `SELECT` from a business table has nothing to select from: the database in the page holds the framework's own tables, and nothing can reach outside the browser, so an app that reads a system's data cannot be tried here. Only the UI5 libraries built in are available and a control from anywhere else will not load; what the transpiler cannot compile is reported in the output panel rather than run. State lives in the tab — a reload, and a press of Run, starts over on a fresh database.
Release and repository quiet for 36 months.
No published releases; repository quiet for 67 months.
No published releases; repository quiet for 53 months.
Quiet No published releases; repository quiet for 92 months.
Functional boundary A system that already handles the session has nothing to gain from it. The maintainer states that importing it there causes no issue and simply sets the flag twice.
No published releases; repository quiet for 48 months.
Quiet No published releases; repository quiet for 35 months.
No license Neither the package manifest nor the repository tree declares a licence.
No published releases; repository quiet for 72 months.
No published releases; repository quiet for 31 months.
No published releases; repository quiet for 45 months.
A system that reports itself productive, or whose role the probe cannot prove non-productive, is write-locked with no override, so changing code in production is not something this does. The permission ladder constrains the package, object name and transport request the server itself passes on a write, and is not a sandbox around ABAP it executes: `abap_run`, `abap_test` and the opt-in `core.eval` run under the connected technical user's SAP authorisations, which is where the boundary actually sits. Data preview, dump variable contents and driving a transaction by batch input stay off in every mode, `admin` included, until each is named explicitly.
No published releases; repository quiet for 38 months.
Release and repository quiet for 37 months.
A client that cannot reach the adt ICF service over HTTP has nothing to call.
No published releases; repository quiet for 29 months.
Any run nobody is watching: the drawing tools work only while the draw.io canvas at `http://localhost:3000/` is open and connected, so there is no diagram to produce on a build agent or a server. Nothing checks the result either, because the maintainer keeps a diagram linter on the [roadmap](https://github.com/etosin/arc-draw#-roadmap) rather than in the release. The maintainer marks the status early at v0.x, installs it from source, and records testing with Claude Code alone.
The diff holds only while the object is inactive, since after activation the previous version is gone and a watched journal directory is what the maintainer points to instead. It adds no write path of its own: the IDE writes through SAP's extension, and the README states arc-1 can stay on `SAP_ALLOW_WRITES=false`. DDIC metadata files are skipped, because SAP's own stub for them says they are not supported in ABAP development tools for VS Code.
It audits through npm: a project that resolves its dependencies with another package manager, or has no `package.json`, has nothing for it to run. What it reports is what `npm audit` knows, so a vulnerability outside the npm advisory data is not in its table.
The exported file list is hard-coded, so a dev space whose setup lives in files the readme does not name is not carried across; the roadmap lists making the list flexible as open work. Nothing from the BAS profile is in the zip, so a developer who wants the colour scheme, the keymaps or the installed extensions uses the BAS profile export on its own.
No published releases; repository quiet for 63 months.
No published releases; repository quiet for 62 months.
No published releases; repository quiet for 28 months.
No published releases; repository quiet for 40 months.
Neither the package manifest nor the repository tree declares a licence.
Neither the package manifest nor the repository tree declares a licence.
Neither the package manifest nor the repository tree declares a licence.
Quiet Release and repository quiet for 27 months.
Functional boundary Not a test-data factory. It writes files at build time to seed a database, so it does not build fixtures inside a unit test. The declared peer range stops at cds 7 — nothing says it fails on 9, but nothing says it was tried either.
It is a bundle rather than a plugin with one job, and a single release from March 2026 — depending on it for the query helpers brings the auth and validation layers too.
Neither the package manifest nor the repository tree declares a licence.
It calls the OpenAI API directly with a key in the environment. It was written in early 2023 and last touched in May 2023, which is before SAP AI Core and the CAP LLM plugins existed — so read it for the shape of the application, not for how a CAP service should reach a model today.
Neither the package manifest nor the repository tree declares a licence.
Last released July 2022, and no repository is declared on the package.
Explicitly internal utilities, so the surface is not a stable public API and last moved in March 2024. The repository the package declares has been deleted — verified against the GitHub API, not just a failed fetch. The package is still on npm, so it installs; the source it was published from is no longer readable, which is a harder thing to discover than a stale version number.
Release and repository quiet for 46 months.
Not an editor integration. If you want completion, navigation and diagnostics, that is the CDS language server, not this.
Not reachable Not reachable since 2026-10-20.
Functional boundary The Level A–D grade merges SAP's two published files in the tool's own engine: it is an orientation rather than an ATC result and is left out of the signed audit pack, and the repository documents state by state where the grade is expected to differ from what the clean core ATC check reports. Nothing here runs ABAP Unit — on the RAP track that result is recorded from your own SAP system, and generated CAP tests run against mocks in an isolated runner rather than in a real SAP S/4HANA system. Tenants, organisation accounts, single sign-on, a self-hosted edition and write access through an API are deliberately not built, and one account has five analysis runs before a Gemini API key of its own is needed.
An Eclipse installation older than the 2026-03 release, or a Java below 21, cannot take it: both are listed prerequisites, and 2026-03 is named as the oldest release the current ADT installs on. The tenant, region, client ID and client secret are entered per installation in Eclipse preferences, so each developer configures the Cloud ALM connection in their own IDE.
Not for an automated check: the answer arrives as a page in a browser, so a rule that has to run over a codebase, or an agent mid-task, needs the repository as data rather than as a form.
This is the legacy edition, for on-premise systems from SAP_BASIS 7.40. On ABAP Cloud, [the Cloud Edition](artifact:sap-code-pal-for-abap-cloud) is the one that runs.
No published releases; repository quiet for 58 months.
No published releases; repository quiet for 57 months.
The README tells you to fork before cloning, because Claude rewrites `references/` and `SKILL.md` in place as you use it, so a clone shared between people changes under all of them. Installing means `git` and `ln` on macOS or Linux and a symlink into `~/.claude/skills`. Fine positioning stays manual: the coordinates Claude writes can be rough apart from the centre coordinates of elements joined by a straight arrow and the containment relationships.
No published releases; repository quiet for 69 months.
Windows only, with PowerShell 7 (`pwsh`) installed; the run needs access to `download.eclipse.org`, `tools.hana.ondemand.com`, `eclipse.devepos.com` and the update site of every plugin selected, from the machine it installs on. A plugin outside the catalog is installed only after someone adds its update site and feature group id to `catalog.json`.
It reads TypeScript exports only; a project written in plain JavaScript has no exported functions for it to extract. A call to the function name in a test file counts as tested, and a call through property access such as `.foo(` does not.
Release and repository quiet for 33 months.
No published releases; repository quiet for 66 months.
It targets the Application Frontend service only — not the HTML5 application repository — fixes authentication to IAS, and always creates new service instances, so reusing existing ones means editing the generated `mta.yaml` afterwards. Version 0.1.0 is the only release.
No published releases; repository quiet for 35 months.
Not for a single-application project with no deployment configuration: for that the README points to [generator-ui5-app](artifact:ui5-community-generator-ui5-app) instead.
Quiet Release and repository quiet for 38 months.
Functional boundary The scaffold is JavaScript and not TypeScript, and `react-router-dom` and UI5 Web Components are not included; its README leaves both for the project to add.
No published releases; repository quiet for 27 months.
A team that does not keep one long-lived branch per environment has no environment branches for it to compare feature branches against. What it reports is the merge state of branches in Git, so it says nothing about whether a merged change has been built or deployed to the environment.
It runs on macOS only. Hammer Core Services, the part installed into the SAP system, needs that system on ABAP Platform 2023 or newer with SAP_BASIS 758 or newer, and installing it needs a user who can create development objects and run background jobs in that system.
Everything it checks is a name: a file name under `rootDir`, or an identifier a parser extracted from a file, so a convention that cannot be written as a regex over one name has no rule shape here. Content rules targeting `.hdbanalyticalprivilege` or `.hdbconstraint` return no results, which the README states as not yet implemented, so conventions centred on those two artifact types go unchecked.
Driving the GUI reaches whatever a user can reach, which is business data and not a development surface. Decide what an agent may do in a session before granting one, not after. Windows only. The HTTP transport is meant for team use but binds to localhost, and unattended multi-user operation is listed as not yet available — a limitation and also the safer default.
Driving the GUI reaches whatever a user can reach, which is business data and not a development surface. Decide what an agent may do in a session before granting one, not after. It has also not been touched since February 2025, which the maintenance reading states — the three later entries here are where the CI, the Web GUI and the testing framing went.
No published releases; repository quiet for 93 months.
There is nothing to clone here: "Access is provided through a registration page. Once registered, you will receive access to the GitHub repository containing the agents, deployment guides, and documentation", and that repository answers 404 to anyone who has not registered, so neither the agent code nor the deployment guides can be read before the form is filled in. AWS states the agents are published as an unsupported solution, with customers responsible for testing and securing the code before deploying in production, and that they are intended for non-production SAP environments rather than production systems. The documentation link in the README is still a placeholder.
Not a system to run a business application on: there is no business application in it, and what it implements of the language, the dictionary and Gateway is a stated subset of each. It is a clean-room reimplementation of the `/IWBEP/` interfaces that bundles no SAP source and no standard DDIC, so a service that reads standard objects has nothing to read, and `ANORMALIES.md` records every place the runtime differs from SAP before any workaround is written.
Release and repository quiet for 43 months.
Not in production. SAP states it is just a sample, not optimised for performance or security.
Not in production. SAP states it is just a sample, not optimised for performance or security.
No published releases; repository quiet for 68 months.
Quiet No published releases; repository quiet for 24 months.
Functional boundary Not against a system holding local repository changes that have not been pushed: Pull Repos overwrites every repository named in zdevsysinit_params, which is why the maintainer leaves that box unticked and calls it a danger zone. The maintainer calls the whole report work in progress, to be used at own risk.
Quiet No published releases; repository quiet for 28 months.
Functional boundary Values the test data container cannot hold: references of any kind, complex structures, and tables whose line type is a complex structure or another table. Structures must be defined in the ABAP Dictionary, so one declared locally cannot be stored at all.
Not in production. SAP states it is just a sample, not optimised for performance or security.
Not in production. SAP states it is just a sample, not optimised for performance or security.
Nothing opens until an SAP WebGUI endpoint is configured, and the page names the Basis team as the source of that URL. Use also needs the extension owner's approval, requested by an issue on the extension's GitHub repository, after which the owner sends the configuration instructions.
A diagram of anything other than an SAP, BTP or on-premise landscape: the skill is tuned to the Horizon style and its 71 templates. It drafts rather than finishes, and its README budgets 15 to 30 minutes of edits in draw.io per diagram. Without Python the validator does not run.
The declared repository is archived.
No published releases; repository quiet for 26 months.
Its README calls it early-stage — the core workflows run end-to-end against real systems and packaging, documentation and polish are stated as still evolving. A Rust binary rather than an npm install, so the platform build matters.
No published releases; repository quiet for 66 months.
Not in production: "This repository contains sample code which should not be used in production", and the README sends a production reader to the officially supported libraries instead.
Not on ABAP Cloud: the system tables and the classic Workbench APIs the screens use are not released for the ABAP Cloud language version, and there is no 7.02 version below the 7.50 floor either. Not where the full original function is needed, since only the listed transactions exist and about 300 buttons and fields are shown disabled. The authorization checks are rebuilt rather than the originals, which is why the README asks that the screens be tried with a restricted user on a sandbox before the ICF service is opened to more people.
Not reachable Not reachable since 2026-10-20.
Functional boundary Driving the GUI reaches whatever a user can reach, which is business data and not a development surface. Decide what an agent may do in a session before granting one, not after. And a UI test is slower and more brittle than the layer below it: this is for what only the screen can answer.
Neither the package manifest nor the repository tree declares a licence.
Not as it stands on a system past development: it reads the contents of any table the user names without an authorisation check of its own, so access is bounded only by whatever restrictions exist on the underlying handler or service. The README asks for your own checks first, naming `AUTHORITY-CHECK` on `S_TABU_DIS`/`S_TABU_NAM`, and for a restriction on who may run the app. There is no 7.02 downport either, because the selection-screen dependency has no `702` branch.
Not in production. SAP states it is just a sample, not optimised for performance or security.
Not in production. SAP states it is just a sample, not optimised for performance or security.
No published releases; repository quiet for 58 months.
It runs whatever SQL a user types without an authorisation check of its own, and the native path additionally uses ADBC, which bypasses ABAP authorisations and client separation; the README asks anyone running it beyond a development system to add authorisation checks and restrict who may start the app. The native console needs Standard ABAP, so on ABAP Cloud only the Open SQL console is available.
Release and repository quiet for 37 months.
No published releases; repository quiet for 62 months.
Not reachable since 2026-10-20.
Where abapGit itself is not installed in the system, since every tool here acts on its repositories.
Release and repository quiet for 29 months.
Neither the package manifest nor the repository tree declares a licence.
Neither the package manifest nor the repository tree declares a licence.
Release and repository quiet for 39 months.
Quiet Release and repository quiet for 75 months.
Functional boundary It supports Basic Authentication only, so a backend that needs another method is not reachable through it.
It records what the app actually asked for, so an entity no recorded journey touched is not in the dataset and replay will not answer for it. Its own README asks for `fiori-tools-appreload` to be disabled while recording, because a reload loop is what happens otherwise.
Release and repository quiet for 36 months.
Neither the package manifest nor the repository tree declares a licence.
Release and repository quiet for 66 months.
The version list comes from ui5.sap.com, so a build that cannot reach it has nothing to match the project's version against. It checks the version written in `ui5.yaml`; a framework version a deployed app loads from elsewhere is outside what it sees.
Release and repository quiet for 50 months.
Neither the package manifest nor the repository tree declares a licence.
Its README assumes a `manifest.json` with an app ID, JavaScript files that start with `sap.ui.define`, and access to ui5.sap.com to preload the standard library metadata. It says of TypeScript that ts-morph, its parser there, has drawbacks, and that not all linters work for TypeScript.
Two of its JavaScript and TypeScript checks, EventTypeLinter and WrongNamespaceLinter, apply to TypeScript projects only.
A project nested inside another is not parsed: its README says nested projects are not supported any more. A library installed from npm is read only when it ships its `-dbg.js` files and `manifest.json`.
Quiet No published releases; repository quiet for 136 months.
No license Neither the package manifest nor the repository tree declares a licence.
No published releases; repository quiet for 59 months.
It declares a VS Code engine and binds to the .tabl.ddic file extension, so it does nothing for a table definition opened in another editor, or read from a system rather than from a file on disk.
Archived The declared repository is archived.
No license Neither the package manifest nor the repository tree declares a licence.
Archived The declared repository is archived.
No license Neither the package manifest nor the repository tree declares a licence.
Neither the package manifest nor the repository tree declares a licence.
Where the login cannot be completed by configuration. Its authentication page states that multi-factor authentication is not supported, because a media break between browser and phone cannot be managed out of the box.
It is not the framework and takes no framework fixes: those belong upstream in abap2UI5, and nothing under `src/`, `downport/`, `output/` and `build/` here is a source file. The build is frozen on pinned commits with no scheduled rebuild, so it does not show what abap2UI5 main does today, samples in subfolders of the samples repository are excluded because they require a real SAP system, and a known upstream transpiler issue leaves `check_on_init( )` always false, so backend-built view XML may not be returned.
Texts that must not leave the organisation: the file is uploaded to the site to be translated, and neither the tool's page nor the site's data protection notice says where it is processed or how long it is kept.
No published releases; repository quiet for 54 months.
Related capabilities
Distinct from static analysisStatic analysisCatching problems in code before it runs: naming, obsolete statements, security findings, and compatibility with a target environment. Style linting, security scanning and cloud-readiness checks are often treated as one concern.SAP and community, narrow by design, which says what is wrong and leaves the source where it is.
Distinct from unit testingUnit testingTesting application logic without a running business process — and the test doubles that make dependencies on the database and on framework services tractable.SAP and community, unassessed, which proves logic in code and keeps the proof.
Managed delivery of changes belongs to transport managementChange promotionMoving a change through the environments of a landscape, from development through test to production, and knowing which change has reached which environment. A CI/CD pipeline builds and tests on each source change, deployment puts a build onto its runtime, and getting source into git is source control.SAP and community, unassessed.
A CI/CD pipelineCI/CD pipelinesA pipeline that builds, tests and delivers an application each time its source repository changes, with a build log that shows which step failed. Deployment describes getting the build onto its target runtime.SAP only builds and tests on each source change, deploymentDeploymentGetting an application onto a runtime and keeping it there: build descriptors, deployment topology, service bindings and lifecycle operations. The target runtime determines how the application is packaged and configured.SAP and community, narrow by design puts a build onto its runtime, and getting source into git is source controlSource controlKeeping source code and development objects in version control, comparing their revisions, and moving them between development environments. Managed delivery of changes belongs to transport management.SAP and community, community owns it.
DeploymentDeploymentGetting an application onto a runtime and keeping it there: build descriptors, deployment topology, service bindings and lifecycle operations. The target runtime determines how the application is packaged and configured.SAP and community, narrow by design describes getting the build onto its target runtime.
Raising findings against a rule is static analysisStatic analysisCatching problems in code before it runs: naming, obsolete statements, security findings, and compatibility with a target environment. Style linting, security scanning and cloud-readiness checks are often treated as one concern.SAP and community, narrow by design.
Raising findings against rules is static analysisStatic analysisCatching problems in code before it runs: naming, obsolete statements, security findings, and compatibility with a target environment. Style linting, security scanning and cloud-readiness checks are often treated as one concern.SAP and community, narrow by design; reading an individual change is code reviewCode reviewReading a change before it moves on: which files or objects a change contains, what changed in each since an earlier version, and what a reviewer decided about each part. Comparing two versions of one object is where it starts; the review is the record kept of the decision.SAP and community, unassessed.
Raising findings against rules is static analysisStatic analysisCatching problems in code before it runs: naming, obsolete statements, security findings, and compatibility with a target environment. Style linting, security scanning and cloud-readiness checks are often treated as one concern.SAP and community, narrow by design; reading an individual change is code reviewCode reviewReading a change before it moves on: which files or objects a change contains, what changed in each since an earlier version, and what a reviewer decided about each part. Comparing two versions of one object is where it starts; the review is the record kept of the decision.SAP and community, unassessed.
Data shipped with an application for development and demonstration is seed dataSeed dataGetting realistic data into a service so it can be developed and demonstrated — initial data, per-tenant content, and believable volumes for testing.SAP and community, narrow by design.
Generating an application's source at design time is generatorsGeneratorsGetting from nothing to a project that runs, and from a project that runs to one that has the piece you just decided you need. Two different moments: the first is a one-time decision about layout, the second recurs for the life of the project.SAP and community, narrow by design.
Agent access to your codeAgent access to your codeLetting a coding agent read the project or the system you actually have, reach its model, its objects and its checks, and act on it. In file-based environments that works out of the box; complex systems need dedicated access capabilities. Whatever the environment, the agent also needs project- and framework-specific context, so it understands the thing in front of it rather than guessing from what it remembers of its training data. The transport is incidental: an MCP server, a language server or a CLI answer the same question, and what differs between them is how much of the real thing the agent can see. Distinct from MCP servers, which is a protocol adapter on your own running service, and from agent guidance, which is knowledge handed over as files rather than read from the thing itself.SAP and community, unassessed works with development objects instead of the user interface.
Distinct from editor supportEditor supportWorking in source code with the editor helping rather than treating it as text — completion, go-to-definition, inline errors, refactoring and preview.SAP and community, narrow by design, which is what the editor does once it is there: this is the download, the update site, the install and how the result reaches machines a developer does not administer.
Starting a coded project from a template is generatorsGeneratorsGetting from nothing to a project that runs, and from a project that runs to one that has the piece you just decided you need. Two different moments: the first is a one-time decision about layout, the second recurs for the life of the project.SAP and community, narrow by design, and building a native mobile client is mobile appsMobile appsBuilding a native iOS or Android app over business data: onboarding, offline sync against an OData service, device features, and the client that runs on the phone. Distinct from a web app opened in a phone's browser; operating a web app with a finger is touch operation.SAP and community, unassessed.
Starting a coded project from a template is generatorsGeneratorsGetting from nothing to a project that runs, and from a project that runs to one that has the piece you just decided you need. Two different moments: the first is a one-time decision about layout, the second recurs for the life of the project.SAP and community, narrow by design, and building a native mobile client is mobile appsMobile appsBuilding a native iOS or Android app over business data: onboarding, offline sync against an OData service, device features, and the client that runs on the phone. Distinct from a web app opened in a phone's browser; operating a web app with a finger is touch operation.SAP and community, unassessed.
Looking at what a table holds is browsing table dataBrowsing table dataLooking at what a system holds while developing or supporting it: the rows behind a key, the reference data a field points at, the tables that carry data for one object. Editing configuration records through maintenance screens is a different job, even where the same transaction does both.SAP and community, unassessed, even where one transaction does both.
Looking at what a system holds once you are inside one is browsing table dataBrowsing table dataLooking at what a system holds while developing or supporting it: the rows behind a key, the reference data a field points at, the tables that carry data for one object. Editing configuration records through maintenance screens is a different job, even where the same transaction does both.SAP and community, unassessed, and driving its screens as a program is GUI automationDriving the SAP GUIOperating the SAP GUI programmatically to perform tasks or test interactions through the actual screen. Agent access to your code works with development objects instead of the user interface.Community only.
Looking at what a system holds once you are inside one is browsing table dataBrowsing table dataLooking at what a system holds while developing or supporting it: the rows behind a key, the reference data a field points at, the tables that carry data for one object. Editing configuration records through maintenance screens is a different job, even where the same transaction does both.SAP and community, unassessed, and driving its screens as a program is GUI automationDriving the SAP GUIOperating the SAP GUI programmatically to perform tasks or test interactions through the actual screen. Agent access to your code works with development objects instead of the user interface.Community only.
Distinct from Web Components interopWeb Components interopUsing standards-based custom elements inside an app, and the question of which control set an app should be built from at all, two concerns that are often answered as one.SAP and community, narrow by design, which brings in standard custom elements, and from generatorsGeneratorsGetting from nothing to a project that runs, and from a project that runs to one that has the piece you just decided you need. Two different moments: the first is a one-time decision about layout, the second recurs for the life of the project.SAP and community, narrow by design, which scaffold a control project rather than being one.
Checking a file somebody uploaded is malware scanningMalware scanningChecking a file somebody uploaded before anyone else can download it — where the scan runs, what happens to the file meanwhile, and who is told when it fails.SAP only, and checking an application's own source for flaws is static analysisStatic analysisCatching problems in code before it runs: naming, obsolete statements, security findings, and compatibility with a target environment. Style linting, security scanning and cloud-readiness checks are often treated as one concern.SAP and community, narrow by design.
General
It reads TypeScript exports only; a project written in plain JavaScript has no exported functions for it to extract. A call to the function name in a test file counts as tested, and a call through property access such as `.foo(` does not.
A team that does not keep one long-lived branch per environment has no environment branches for it to compare feature branches against. What it reports is the merge state of branches in Git, so it says nothing about whether a merged change has been built or deployed to the environment.
Content
Content includes reference architectures. Each item appears once; filter by type to narrow the list.
Recent changes
- Browsing table datacore coverage revised
Reassessed against the graph (check:capabilities): the note described the providers as SAP GUI programs only, and browser apps, an IDE extension and a desktop editor have arrived; the state stays core-and-community.
- Build and dev-server toolingcore coverage revised
Reassessed against the graph (check:capabilities): providers of many kinds arrived after 2026-08-31 and the entry said nothing of what they add. State core-and-community unchanged.
- Calling a service by handcore coverage revised
Reassessed against the graph (check:capabilities): abap-odata-test arrived after the block was assessed and changes the kinds of community answer; the state stays core-and-community.
- Code formattingcore coverage revised
Reassessed against the graph (check:capabilities): the abap2UI5 playground provides this capability and the text never named it; ABAP FS named for the kind of VS Code integration.
- Code reviewcore coverage revised
Reassessed against the graph (check:capabilities): providers that arrived after the 2026-09-13 assessment (abapTimeMachine, abapOpenReview, a transport review app) shape the answer; state unchanged, core-and-community.
- Debuggingcore coverage revised
Reassessed against the graph (check:capabilities): the opening counted SAP packages; the list that follows is unchanged.
- Debuggingcore coverage revised
Reassessed against the graph (check:capabilities): community CAP providers answer the boundary the block names (which handlers ran, why a value came out), and the block said nothing of them. State stays core-and-community.
- Debuggingcoverage by ecosystem revised
Reassessed against the graph (check:capabilities): seven ABAP providers newer than the block were never named. State stays core-and-community.
- Driving the SAP GUIcore coverage revised
Reassessed against the graph (check:capabilities): every provider counting for the ABAP door is independent, the SAP sample is not a presence, and the block states no sourced what_core_does, so no core presence is recorded.
- Driving the SAP GUIcore coverage revised
Reassessed against the graph (check:capabilities): the sentence explained a state the providers contradict and made a claim about all providers, which one coordinate-based server and a batch input package do not fit.