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 →

open-abap-gui

A library of GUI controls for ABAP transpiled to JavaScript, such as cl_gui_alv_grid and cl_gui_html_viewer, marked work in progress in its README.

Facts

Last pushLicenceMIT

Who is behind it

open-abapopen-abapOrganisationMaintains this
In the atlas: maintains 9
@open-abap
maintainerLars HvamPersonContributes to this
In the atlas: maintains 13, contributes to 92, wrote 1
@larshp
1 contributor

What it declares

Every artifact

Type
Package
Origin
By a community org

As a package

Where it runs
does not say
Distributed through
npm

README

quoted from open-abap/open-abap-gui under MIT, read
open-abap/open-abap-gui/README.mdOn GitHub

open-abap-gui

GUI Dynpro controls and classic report/dynpro processing for open-abap, rendered as HTML in the browser.

Work in progress.

Preview of main: https://open-abap.github.io/open-abap-gui-preview-deployments/main/

Usage

Classic reports (*.prog.abap) are converted to classes, transpiled, and served in the browser through express-icf-shim.

npm install --save-dev @abaplint/open-abap-gui-converter @abaplint/transpiler-cli @abaplint/runtime @abaplint/database-sqlite express@4

abap_transpile.json, with the reports in reports/:

{
  "input_folder": ["src", "generated"],
  "output_folder": "output",
  "converter": {
    "input_folder": ["reports"],
    "output_folder": "generated"
  },
  "libs": [
    { "url": "https://github.com/open-abap/open-abap-core" },
    { "url": "https://github.com/open-abap/express-icf-shim" },
    { "url": "https://github.com/open-abap/open-abap-bal" },
    { "url": "https://github.com/open-abap/open-abap-gui", "files": ["/src/**", "/framework/**"] }
  ],
  "options": {
    "addCommonJS": true,
    "setup": { "filename": "../setup.mjs", "preFunction": "setupDatabase" }
  }
}

The converter writes one class per report to generated/; see converter/README.md. framework/ holds the host and workbench the generated classes run in.

setup.mjs, a database for the transpiled code:

import {SQLiteDatabaseClient} from "@abaplint/database-sqlite";

export async function setupDatabase(abap, schemas, insert) {
  const database = new SQLiteDatabaseClient();
  abap.context.databaseConnections.DEFAULT = database;
  await database.connect();
  await database.execute(schemas.sqlite);
  await database.execute(insert);
}

package.json:

"scripts": {
  "convert": "open-abap-gui-convert",
  "build": "npm run convert && abap_transpile abap_transpile.json",
  "express": "npm run build && node express.mjs"
}

express.mjs:

import express from "express";
import {initializeABAP} from "./output/init.mjs";
import {cl_express_icf_shim} from "./output/express-icf-shim/cl_express_icf_shim.clas.mjs";
await initializeABAP();

const app = express();
app.use(express.raw({type: "*/*"}));
app.all("*", async function (req, res) {
  await cl_express_icf_shim.run({req, res, class: "ZCL_GG_HTTP_HANDLER"});
});
app.listen(3000);

Then npm run express and open http://localhost:3000 for the workbench.

abaplint.app

Looking for a hosted setup? abaplint.app runs abaplint automatically on your GitHub pull requests: no system installation, custom configurations supported, and findings reported right where you review code.

MIT, read

Details

Sources3
Added by handdiscovered herechecked
github.com/open-abap/open-abap-guitree, 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 viaAdded by hand
first seen in the atlas
ecosystem and domainabap, ui-and-frontend-bridge
abaplint
issues under its own abaplint configuration0
lines8,478
statements4,352
objects275
files141
analysed, main
abaplint version2.120.25
Contributors1

From the repository’s contributor list, .

History in the atlas1
  1. First seen.
For your agent
Ref
artifact:open-abap-open-abap-gui
JSON
/artifacts/open-abap-open-abap-gui.json
MCP
Connecting an agent