SampleSampletypeA worked example you read or clone. Evidence: it demonstrates, it never provides.See every one →What this type is →independently maintainedindependently maintainedoriginPublished by one person or a small company outside SAP. Says nothing about quality; the readings say that.See every one →Starting point

off-stack-abap

A demonstration of off-stack ABAP development: one class with an add method, linted by abaplint, transpiled to JavaScript and run with its ABAP Unit tests on Node.js.

Runs the ABAP quality loop on a laptop with no ABAP system in it: npm run lint puts abaplint over src/, npm run transpile turns the class and its test class into JavaScript, and the ABAP Unit tests then execute as a Node.js program. The ABAP under test is one class with one method, add, returning the sum of two integers, so what the repository carries is the pipeline around it. npm start chains lint, transpile, test, coverage and documentation in one command and leaves five files behind: a JUnit XML unit report, an Allure report of the same run, coverage/lcov.info with an HTML report beside it, and the ABAP Doc comments as docs/index.html. What executes is the transpiled JavaScript, so the ABAP available to it is whatever the abaplint runtime and open-abap implement, not what an application server would have supplied.

Facts

Last pushLicenceApache-2.0

Where it sits

Lives in
Demonstrates
Static analysisABAPStatic analysiscapabilityCatching 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.Unit testingABAPUnit testingcapabilityTesting application logic without a running business process — and the test doubles that make dependencies on the database and on framework services tractable.DocumentationABAPDocumentationcapabilityFinding the answer in what has already been written, and writing it where it has not — first-party documentation made searchable by something other than a person scrolling it, including by an agent, and a document of custom code produced from the code itself.
Requires
abaplintabaplintartifactthe lint step, npm run lint, which reads the ABAP in src/ before anything is transpiledNode.jsNode.jsoutside the atlasthe runtime the transpiled ABAP and its unit tests execute on, and the runner for every npm script the README documents

Who is behind it

Tobias HofmannTobias HofmannPersonMaintains this
In the atlas: maintains 4, contributes to 12
@tobiashofmann
maintainer

What it declares

Every artifact

Type
Sample
Origin
Independently maintained
Runtime
Node.js

As a sample

Form
A reference application

Connections5

README

quoted from tobiashofmann/off-stack-abap under Apache-2.0, read
tobiashofmann/off-stack-abap/README.mdOn GitHub

Off-stack ABAP development

This repo serves as a demonstration for off-stack ABAP development. Developing ABAP code without access to an ABAP system. The project depends on abaplint and transpiler as well as related work like open-abap.

Description

A sample ABAP class and Unit Test are in folder src/. The class has one method (add) that returns the sum of two input integers. An ABAP unit test class tests the method. The method add_test is not tested. It serves to demonstrate the unit and coverage feature. The ABAP code can be transpiled to JavaScript and run as a Node.js application. The unit tests can be executed and the results of the test run and code coverage captured. Additionally, the ABAP Doc comments can be transformed to a web page.

Running the app will transpile ABAP code to JavaScript, run unit tests and capture code quality data and generate reports.

npm start output

Files generated:

  • test-results/abap-unit-junit.xml: The unit report (xml)
  • docs/index.html: ABAP Doc as HTML
  • coverage/lcov.info: Coverage data
  • coverage/index.html: Coverage report as HTML
  • allure-report/index.html: ABAP Unit test run as Allure report

Installation

Get the source code: either clone the repo, or download it as a zip and unzip it locally. Ensure that you have Node.js LTS installed.

The project is a Node.js app. It uses abaplint to lint and transpile ABAP code. Allure and c8 are used for code quality reporting.

npm ci

Run app

To run all tasks and to get from ABAP code to final reports, run npm start.

npm start

Available Tasks

The tasks available can be used to check the ABAP coding, transform it to JavaScript, run it and the unit tests, as well as capture code quality metrics and reports.

  1. Linting

Validate the ABAP coding using abaplint.

npm run lint
  1. Transpile

Generate JavaScript code out of the ABAP code.

npm run transpile

The generated JavaScript sources can be found in folder output/

  1. Unit tests
npm run test
  1. Capture unit test data
npm run test:unit
  1. Generate unit test report
npm run report

Display the generated HTML site in a web browser to see the report.

  1. Get code coverage data
npm run coverage

Open coverage/index.html in a web browser to see the report. Use lcov.info in your IDE or tool of choice to display the coverage data in an editor.

  1. Generate ABAP doc report
npm run docs

Open docs/index.html to access the report in a browser.

Apache-2.0, read

Details

Sources3
Added by handdiscovered herechecked
github.com/tobiashofmann/off-stack-abaptree, 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
runtimesnode
discovered viaAdded by hand
first seen in the atlas
ecosystem and domainabap, developer-experience
History in the atlas1
  1. First seen.
For your agent
Ref
artifact:tobiashofmann-off-stack-abap
JSON
/artifacts/tobiashofmann-off-stack-abap.json
MCP
Connecting an agent