PackagePackagetypeA library you install and call yourself.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 →

selection-screen

Select-options with saved variants for an abap2UI5 app, built from a database table name or from an internal table the app passes in.

In SAP GUI a report gets its selection screen and its variants from SELECT-OPTIONS; in a UI5 app each filter field, its range dialog and the variant handling are written by hand. This reads the fields over RTTI from a table name or from data passed to it, renders one select-option per field inline in the view or as a filter popup, and hands the filter back as ms_result-t_filter for a dynamic SQL WHERE or for filtering an internal table. Variants go into its own table z2ui5_t_13, per app, optionally per user and with a default variant. The field names come back from the browser, so the README asks the app to keep only the names that are fields of its own table before they reach a dynamic WHERE, since a forged name could carry a condition or a subquery on another table.

Facts

Last pushLicenceMIT

Where it sits

Lives in
Provides
UI written in ABAPABAPUI written in ABAPcapabilityProducing a web user interface from ABAP code, with the application’s backend language also defining what the user sees and how it behaves.
Add-on to
abap2UI5abap2UI5artifactOne ABAP class implementing z2ui5_if_app is the whole app: the browser loads a generic UI5 shell once, and every interaction after that is an HTTP roundtrip back into ABAP.
Requires
abap2UI5abap2UI5artifactThe framework it extends: its classes render into an abap2UI5 view and are driven from an app's main method, and the core has to be installed first.layout-managementlayout-managementartifactWhat AGENTS.md names behind the variant persistence, resolved from its main branch with no version pin; the README's installation steps list only abap2UI5 and this repository, so how far an installation gets without it is not stated.abapGitabapGitartifactHow the classes and the variant table z2ui5_t_13 get into the system: the README installs abap2UI5 and then this repository's main branch with abapGit.

Who is behind it

abap2UI5-addonsabap2UI5-addonsOrganisationMaintains this
In the atlas: maintains 21
@abap2UI5-addons
maintaineroblomov-devPersonContributes to this
In the atlas: maintains 4, contributes to 44
@oblomov-dev
1 contributor

Before choosing this

Conditions

PracticalFunctional boundary

The PARAMETERS-style selection screen with event blocks is not here: z2ui5_cl_sel_screen and z2ui5_cl_sel_screen_sel are a skeleton whose methods are still empty, and the README points at abap-cloud-gui for a full report-style screen.

What it declares

Every artifact

Type
Package
Origin
Independently maintained

As a package

Where it runs
Inside its host
Distributed through
abapGit

Connections4

selection-screen connectionsselection-screenPROVIDES→ provides1provides stated Builds the select-options of an [abap2UI5](artifact:abap2ui5-abap2ui5) app from ABAP: it reads a table's or an internal table's fields over RTTI, renders one select-option per field inline in the view or as a filter popup, handles the range dialogs and the load and save of variants, and returns the entered filter to the app. abap2UI5-addons/selection-screen — README, Why: https://github.com/abap2ui5-addons/selection-screenUI written in ABAPNEEDS→ needs3needs stated The framework it extends: its classes render into an [abap2UI5](artifact:abap2ui5-abap2ui5) view and are driven from an app's `main` method, and the core has to be installed first. abap2UI5-addons/selection-screen — AGENTS.md, What this repository is: https://raw.githubusercontent.com/abap2UI5-addons/selection-screen/main/AGENTS.md abap2UI5-addons/selection-screen — README: https://github.com/abap2ui5-addons/selection-screenabap2UI5needs stated How the classes and the variant table `z2ui5_t_13` get into the system: the README installs [abap2UI5](artifact:abap2ui5-abap2ui5) and then this repository's `main` branch with [abapGit](artifact:abapgit-abapgit). abap2UI5-addons/selection-screen — README, Installation steps: https://github.com/abap2ui5-addons/selection-screen abap2UI5-addons/selection-screen — README: https://github.com/abap2ui5-addons/selection-screenabapGitneeds stated What AGENTS.md names behind the variant persistence, resolved from its `main` branch with no version pin; the README's installation steps list only [abap2UI5](artifact:abap2ui5-abap2ui5) and this repository, so how far an installation gets without it is not stated. abap2UI5-addons/selection-screen — AGENTS.md, Dependencies: https://raw.githubusercontent.com/abap2UI5-addons/selection-screen/main/AGENTS.md abap2UI5-addons/selection-screen — AGENTS.md, Dependencies: https://raw.githubusercontent.com/abap2UI5-addons/selection-screen/main/AGENTS.mdlayout-management

README

quoted from abap2UI5-addons/selection-screen under MIT, read
abap2UI5-addons/selection-screen/README.mdOn GitHub

selection-screen

abap2UI5-addons ABAP abap2UI5 License
ABAP Cloud ABAP Standard rename check-abap2UI5 abap2UI5

Select-options with saved variants for your abap2UI5 apps - generated from a table name or your data. You pass a database table name or an internal table; selection-screen builds one select-option per field, lets the user enter ranges in a popup, and saves and loads the whole selection as a variant. Your app gets the filter back and turns it into a SQL WHERE clause or filters an internal table with it. For developers of abap2UI5 apps that read data on user-defined criteria.

Part of abap2UI5-addons - addons and apps for abap2UI5, installed with abapGit.

Why

In SAP GUI a report gets its selection screen and variants for free with SELECT-OPTIONS. In a UI5 app each filter field, its range dialog and the variant handling would have to be built by hand.

selection-screen does that generically: it reads the fields via RTTI, renders the select-options either inline in your page or as a filter popup, and keeps variants in its own table z2ui5_t_13 - per app, optionally per user, with a default variant.

Good for:

  • Data browsers and reports on abap2UI5 that select from a database table.
  • Filtering an internal table the user already sees, with ranges instead of a search field.

Installation

Requirements

  • ABAP Cloud (S/4 Public Cloud, BTP ABAP Environment), S/4 Private Cloud or On-Premise, or SAP NetWeaver AS ABAP 7.50 or higher
  • abap2UI5

Steps - with abapGit, in this order:

  1. abap2UI5
  2. this repository (branch main) - classes and the table z2ui5_t_13 for the variants; nothing else to set up

Start - run a sample like any abap2UI5 app, e.g. ?app_start=z2ui5_cl_sel_sample_01 for select-options over table T100. All samples are listed under Samples.

Usage

Select-options for every field of a database table, inline in your page (condensed from z2ui5_cl_sel_sample_01):

" DATA mo_multiselect TYPE REF TO z2ui5_cl_sel_multisel.

METHOD z2ui5_if_app~main.

  IF client->check_on_init( ).
    mo_multiselect = z2ui5_cl_sel_multisel=>factory_by_name( val       = `T100`
                                                             s_variant = VALUE #( handle01 = `ZMY_APP` ) ).
    view_display( ).    " calls mo_multiselect->set_output( client = client view = lo_panel )
    RETURN.
  ENDIF.

  " range popups, Clear, Load and Save variant are handled here
  IF mo_multiselect->main( client ).
    RETURN.
  ENDIF.

  IF client->check_on_event( `GO` ).
    DATA(lv_where) = z2ui5_cl_util=>filter_get_sql_where( mo_multiselect->ms_result-t_filter ).
    SELECT FROM t100 FIELDS * WHERE (lv_where) INTO TABLE @mt_t100 UP TO 100 ROWS.
    client->view_model_update( ).
  ENDIF.

ENDMETHOD.

The select-options are bound to the view, so ms_result-t_filter - field names included - comes back from the browser. Before the names go into a dynamic WHERE, keep only those that are fields of your table, as z2ui5_cl_sel_sample_01 does: a forged name could otherwise carry a condition or a subquery on another table.

As a filter popup over an internal table (condensed from z2ui5_cl_sel_sample_02):

" on init
mo_variant = z2ui5_cl_sel_multisel_pop=>factory_by_data( data        = mt_table
                                                         var_handle1 = `ZMY_APP` ).
" on the Filter button
client->nav_app_call( mo_variant ).

" back in your app
IF client->check_on_navigated( ).
  DATA(lo_filter) = CAST z2ui5_cl_sel_multisel_pop( client->get_app_prev( ) ).
  IF lo_filter->result( )-check_confirmed = abap_true.
    z2ui5_cl_util=>filter_itab( EXPORTING filter = lo_filter->result( )-t_filter
                                CHANGING  val    = mt_table ).
  ENDIF.
ENDIF.

Features

  • Ranges, Filters, Selection-Screens
  • Persist Variants

What is there

ClassPurpose
z2ui5_cl_sel_multiselselect-options for a table name (factory_by_name), for data (factory_by_data) or for a filter (factory_by_filter); renders into your view with set_output( ), handles its events in main( )
z2ui5_cl_sel_multisel_popthe same as a popup app; returns the filter with result( )
z2ui5_cl_sel_var_pop_read, z2ui5_cl_sel_var_pop_savepopups to load and save a variant
z2ui5_cl_sel_var_dbvariant persistence in table z2ui5_t_13
z2ui5_cl_sel_screen, z2ui5_cl_sel_screen_selskeleton of a PARAMETERS-style selection screen - the methods are still empty

For a full report-style selection screen with PARAMETERS, SELECT-OPTIONS and event blocks, see abap2UI5-addons/abap-cloud-gui.

Samples

SampleShows
z2ui5_cl_sel_sample_01Select-options for table T100 inline in the page, result read with a dynamic WHERE
z2ui5_cl_sel_sample_02Filter popup over an internal table
z2ui5_cl_sel_sample_03Skeleton of the PARAMETERS-style selection screen

Demo

Selection-Screen
image
Filter Popup
Google Chrome 2025-05-03 10 38 12 image

Development

npm ci
npm run check           # all gates below, as in CI
npm run lint            # abaplint, Standard ABAP (v750)
npm run check:cloud     # abaplint, ABAP Cloud
npm run check:abap2ui5  # abap2UI5-linter over apps and views
npm run rename          # namespace rename check

Contributing

Issues and pull requests are welcome - whether you're fixing bugs, adding new functionality, or improving documentation. Read CONTRIBUTING.md first.

License

MIT - see LICENSE.

MIT, read

History

Latest

v1.139.0

UI written in ABAP
  1. abap2UI5-localabap2UI5 folded into the local classes of one HTTP handlerfrom ABAP
  2. abap2UI5UI5 apps written as one ABAP class, rendered by a generic shellfrom ABAP
  3. abap-cloud-guiReport-style programming model for abap2UI5 on ABAP Cloudfrom ABAP
  4. custom-controlsThirteen custom UI5 controls for abap2UI5 appsfrom ABAP
  5. http-connectorForwards abap2UI5 roundtrips to another system over HTTPfrom ABAP
  6. layout-managementTable and form layouts with saved variants for abap2UI5from ABAP
  7. abap2UI5 for ExcelOffice add-in running an abap2UI5 app in Excel's task panefrom ABAP
  8. abap2UI5-addons/popupsReady-made dialogs for abap2UI5 appsfrom ABAP
  9. rap-extFloorplans rendered from CDS UI annotations as abap2UI5 appsfrom ABAP
  10. abap2UI5 frontend-webcomponentabap2UI5 frontend rendering with UI5 Web Componentsfrom ABAP
  11. abap2UI5 frontendabap2UI5 frontend as ABAP artefacts installed with abapGitfrom ABAP
  12. abap2UI5 Layout EditorDrag-and-drop UI5 view editor that writes an abap2UI5 app classfrom ABAP
  13. abap2UI5 protocolVersioned specification of the abap2UI5 roundtrip protocolfrom ABAP
  14. ZFPM_TOOLSEdits, copies and transports a whole FPM hierarchy at oncefrom ABAP
  15. ZWD_CALENDAR_VHWeb Dynpro ABAP calendar value help for date fieldsfrom ABAP
  16. abap_mustacheMustache template engine for ABAPfrom ABAP

Details

Sources3
GitHub APIdiscovered herechecked
github.com/abap2UI5-addons/selection-screentree, 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 viaGitHub API
first seen in the atlas
ecosystem and domainabap, ui-and-frontend-bridge
abaplint
issues under its own abaplint configuration0
lines1,537
statements699
objects12
files20
analysed, main
abaplint version2.120.84
Flavors2
ABAP Cloud
“ABAP Cloud (S/4 Public Cloud, BTP ABAP Environment), S/4 Private Cloud or On-Premise, or SAP NetWeaver AS ABAP 7.50 or higher” — abap2UI5-addons/selection-screen — README, Installation requirementschecked
Standard ABAP
“ABAP Cloud (S/4 Public Cloud, BTP ABAP Environment), S/4 Private Cloud or On-Premise, or SAP NetWeaver AS ABAP 7.50 or higher” — abap2UI5-addons/selection-screen — README, Installation requirementschecked
Contributors1

From the repository’s contributor list, .

History in the atlas1
  1. First seen.
For your agent
Ref
artifact:abap2ui5-addons-selection-screen
JSON
/artifacts/abap2ui5-addons-selection-screen.json
MCP
Connecting an agent