abap-cloud-gui

An addon of abap2UI5

Classic ABAP reports, as UI5 apps - on ABAP Cloud and down to 7.02

Selection screen, WRITE list, ALV grid, START-OF-SELECTION, AT LINE-SELECTION, MESSAGE: write a class that reads like a report and get an app in the browser. The reports you have already convert with report2cloud - try it below, nothing leaves your browser.

Try the converter Install with abapGit

No SAP GUI on ABAP Cloud

No selection screens, no lists, no CL_SALV_TABLE. A report of ten minutes on premise turns into RAP, CDS and a Fiori app. abap-cloud-gui keeps the report model and renders it with abap2UI5.

The concepts you know

Event blocks are methods of the same name, PARAMETERS and SELECT-OPTIONS are attributes, write( ) writes the list, alv( ) shows a grid - with drilldown, value helps, variants and messages. No UI5 knowledge needed.

Converted, not rewritten

report2cloud turns a .prog.abap into a report class: FORMs into methods, the list and the ALV into their counterparts, dynpros and SAP GUI controls into stand-ins. What it cannot convert it refuses with the line - it never guesses.

A report as a class

CLASS zcl_hello DEFINITION PUBLIC INHERITING FROM z2ui5_cl_cgui_report FINAL CREATE PUBLIC.
  PUBLIC SECTION.
    DATA p_name  TYPE string.
    DATA p_times TYPE i.
  PROTECTED SECTION.
    METHODS selection_screen REDEFINITION.
    METHODS start_of_selection REDEFINITION.
ENDCLASS.

CLASS zcl_hello IMPLEMENTATION.
  METHOD selection_screen.
    screen->parameter( val = p_name text = `Your name` obligatory = abap_true
        )->parameter( val = p_times text = `Lines` ).
  ENDMETHOD.

  METHOD start_of_selection.
    write( |Hello { p_name }!| )->uline( ).
    DO p_times TIMES.
      write( |Line { sy-index }| )->new_line( ).
    ENDDO.
  ENDMETHOD.
ENDCLASS.

Start it like any abap2UI5 app (?app_start=zcl_hello): the selection screen comes up, Execute runs the report and shows the list, Back returns.

report2cloud playground

Paste a classic report of your own, or pick an example, and it is converted as you type. The converter runs in this page - the same code as npm run report2cloud; nothing is sent anywhere. Includes and the repository's DDIC are not there, so a report that needs them converts with TODOs.

Report .prog.abap
Text pool .prog.xml, optional - the selection texts and text symbols
The generated class appears here.

Measured on the web

Every week the converter runs over the open-source ABAP of the web - the share that converts, the refusals ranked, and how many of the converted reports start in the transpiled runtime.

Checked like code

abaplint against ABAP Cloud and 7.02, the abap2UI5 linter, ABAP Unit in a transpiled runtime, and a runtime test that drives every converted sample report through the UI5 protocol.

Open source

MIT licensed, installed with abapGit, part of abap2UI5-addons. Issues and pull requests welcome.