Simple Data Explorer
A multi-window SAP GUI explorer for tables, views and CDS SQL views, with filters that re-read as they change, foreign-key navigation, a join builder and pivot tables.
Opens as many tables, DDIC views and CDS SQL views as the screen holds, each in its own dialog box with a select-options panel that re-reads the data when a filter changes. Double-clicking a value opens the check table behind its foreign key, values drag from one window into another's filters, and the Tools area builds joins from the dictionary's foreign keys, pivots over them and shows the generated Open SQL for editing and running. HR plugins jump to PA20 and PP01 and open payroll clusters. It reads with plain Open SQL and performs no S_TABU_* authority checks of its own. The table grid, the join builder and the pivot are also available outside SAP GUI, in Eclipse ADT and VS Code, through VERTEXVERTEXAn extension for ABAP Development Tools for Eclipse and VS Code that shows Simple Data Explorer, AVE and ACE in the editor over the developer's ADT connection.independent, abap.
Facts
Where it sits
Who is behind it
In the atlas: maintains 9, contributes to 10@ysichovmaintainer
What it declares
Every artifact
- Type
- App
- Origin
- Independently maintained
As an app
- Where it runs
- does not say
- Distributed through
- abapGit
Connections
Looking at the data a system holds while developing or supporting it
ADT extension for Eclipse and VS Code showing three SAP GUI tools
Download
README
quoted from ysichov/Simple-Data-Explorer under MIT, readSimple Data Explorer (SDE)
Multi-window explorer for SAP tables, views and CDS views — with per-window select-options that re-read the data as you type, drag-and-drop links between windows, foreign-key navigation, a join builder, pivot tables and a generated Open SQL statement you can edit and run.
Version 2 (SelecTor) lives in src/ and is the version documented here. The older
single-file viewer is still shipped for old releases — see
History and older documentation.
Also outside SAP GUI. The table grid with its select-options, the join builder and the pivot are available in Eclipse ADT and in VS Code through VERTEX · Marketplace.
Table of contents
- Overview
- Requirements
- Installation
- Quick start
- Selection screen
- The table window
- Links between windows
- HR and HCM plugins
- Tools: joins, pivot tables, SQL
- Repository layout
- Architecture
- History and older documentation
- Author
- License
Overview
- Multiple windows. Open as many tables as your screen allows, including the same table several times. Every window is an independent dialog box with its own data and filters.
- A selection panel per window. It opens and closes with the arrow icon. All standard search
helps are connected, including the special ones for personnel numbers (
PAxxxx-PERNR) and organizational management objects (HRPxxxx). - Reactivity. Data is re-read as soon as a filter changes — no round-trip through a separate selection screen, no loss of context.
- Empty columns are hidden by default, because most SAP tables are mostly empty. One menu entry brings them back.
- Multilingualism. All languages installed in the system are supported: column and table names are translated on the fly, and technical field names are one of the options.
- Navigation. Double-click a value to open the checked table behind the foreign key; drag values from one window into the filters of another; look at the link graph as in SE11.
- HR/HCM plugins. Jumps to PA20/PP01, infotype long texts, wage type texts, organizational management links, payroll cluster viewer.
- Tools. Build joins from the foreign keys the dictionary already knows, build pivot tables, read the generated Open SQL, edit it, run it, and save the whole layout to a file.
- Tables, views and CDS. Transparent and cluster tables, DDIC views (including the maintenance views of SM30) and the SQL views generated for CDS entities.

Requirements
- SAP GUI for Windows. The whole UI is built on
CL_GUI_*controls (ALV grid, HTML viewer, splitter, dialog boxes); layouts are saved through frontend services. - SAP_BASIS 7.50 or higher for the sources in
src/. For older systems use the legacy one-file versions. - Display rights on the data you open. SDE reads with plain Open SQL and performs no
S_TABU_*authority checks of its own — treat it as a developer/support tool and install it accordingly.
Installation
abapGit
- In abapGit, create an online repository for
https://github.com/ysichov/Simple-Data-Explorer.gitand assign it to a package (for example$ZSDEfor a local one). - Pull, then activate all objects.
- Run program
ZSDE2(SE38 / SA38).
Standalone single-file program
No package, no abapGit, nothing to activate except one report:
- Create a report (for example
Z_SDE_STANDALONE) in SE38. - Paste the contents of
src/z_sde_standalone.prog.abap. - Activate and run.
The file is generated from the sources in src/ — do not edit it by hand.
Legacy one-file versions
Generation 1 of the viewer, kept for old systems and for the HR flavour:
| File | Target | Notes |
|---|---|---|
SDE_702.abap | SAP_BASIS 7.02 | Report YS_SDE |
SDE_750_HR.abap | SAP_BASIS 7.50 | HR/HCM build, infotype texts (PAxxxx-ITXEX) |
Quick start
- Run
ZSDE2. - Pick the object type with the buttons in the toolbar of the selection screen: Tables, Views, CDS.
- Type a name and press Enter — a window opens. Type the next name and press Enter again to open another window; the selection screen stays where it is.
- Filter in the left panel of a window; the grid follows every change.
- Press the Tools icon in a window to build joins and pivot tables on top of it.
Selection screen
| Field | Meaning |
|---|---|
| Tables / Views / CDS | Switches the input field. Tables accepts transparent and cluster tables, Views any DDIC view (F4 lists the maintenance views of SM30), CDS the SQL view generated for a CDS entity (application class SDGV). |
| Table / View / CDS name | F4 is available in all three modes. The name is checked before the window opens. |
| Max rows | Row limit of every read, 500 by default. It also caps the statements the Tools area runs. |
| Folder for saved joins | Frontend folder for .sdj layout files, C:\temp\sde\ by default. F4 opens a directory browser. |
The table window
A window is a dialog box split into the selection panel (left, collapsible) and the data grid (right). When the Tools area is opened, it is docked below the data.
Toolbar
| Button | Description |
|---|---|
| Show/hide select-options | Collapses the selection panel and gives the width to the grid. |
| Refresh | Re-reads the data with the current filters. |
| Load join layout | Reads a .sdj file; opens the Tools area if needed. |
| Save join layout | Writes the current tables, fields, mode, filters and SQL to a .sdj file. |
| Languages | Menu: Technical name plus every language installed in the system. |
| Empty columns options | Menu: Hide empty columns / Show empty columns. |
| Table links | Opens the graphical link visualization. |
| Tools | Docks the join and pivot builder below the data (click again to hide). |
| Sort ascending / descending | Builds ORDER BY on the marked columns — see Sorting. |
| Standard ALV functions | Shows or hides the standard ALV toolbar (export, layouts, find, …). |
Select-options panel

One row per field, with the dictionary information next to it — data element, domain, data type and length. This is meant to save time while writing technical specifications.

- F4 on a row opens the standard search help of the field. Values already entered in other rows are passed to the help, so the proposals stay in the context of the current filter.
- Double-click opens the dictionary: on the
ELEMENTcolumn SE11 with the data element, on theDOMAINcolumn SE11 with the domain, on any other column the documentation of the data element. - The option icon opens the standard sign/option dialog (
EQ,BT,NE,CP, …). - The more icon opens the complex selections dialog — an arbitrary number of ranges per field, exactly as on a normal selection screen. The icon shows whether ranges exist.
- Fields whose search help is a short value list get a drop-down in the input cell.
- The context menu offers Clear Select-Options and Delete receiver (see Drag and drop).

Filter shortcuts
Typing is interpreted the way an experienced user expects:
| Input | Result |
|---|---|
| a value in low | I EQ value |
| values in low and high | I BT low high |
a value containing *, %, + or & | I CP pattern |
| clearing sign and option | the row is cleared |
| a date or time | converted from the user format into the internal one |
Empty columns
Empty columns are hidden after every read, so a 200-column table shows only what actually carries data. Show empty columns brings them all back.

Languages and technical names
The Languages menu lists every language installed in the system plus Technical name. The choice re-translates the grid headers and the labels of the selection panel.

Sorting
The sort buttons do not sort the fetched rows on the frontend — that would sort the wrong 500
rows. They build an ORDER BY and read again from the database. Mark one or more columns (or just
place the cursor in one) and press the sort icon. Because the statement is built by the Tools area,
sorting requires Tools to be open; the program says so if it is not.
Links between windows
Double-click navigation
The colour of a column tells what a double-click will do:
| Colour | Meaning |
|---|---|
| Blue | The field has a check table: it opens in a new window, filtered by the value you clicked. |
| Green | A plugin handles the field — a transaction, or a related table that no foreign key describes. |
| Grey | A column of the text table, joined to the data automatically so the language-dependent text stands next to the code. |
| White | A plain field. |

Drag and drop
Select one or more cells or a whole column in a data grid and drag them onto the selection panel of another window. The dragged column turns into buttons in the source window, an inheritance indicator appears next to the receiving field, and clicking a button in the source re-reads the target window with that value. Dragging between two selection panels works the same way. A data model of several tables comes alive in about a minute.

Delete receiver in the context menu of the selection panel breaks the link again.
Table link graph
The Table links button opens the graphical visualization of the foreign key relations of the current table, the same picture SE11 draws.

HR and HCM plugins
Links that no foreign key describes are hard-coded as plugins.
By data element:
| Data element | Action |
|---|---|
PERSNO | PA20 for the personnel number, with infotype, subtype and validity dates prefilled |
HROBJID | PP01 for the OM object |
LGART | Wage type text table T512W |
ITXEX | Long text of the infotype record, in a text viewer window |
SUBTY | Subtype table of the infotype |
By table and field:
| From | To |
|---|---|
PA0001-PLANS / ORGEH / STELL | HRP1000, object type S / O / C |
HRP1001-SCLAS / SOBID | The related OM object — it is put into the search parameters of the same window, so you can walk the structure link by link |
HRP1001-ADATANR | The additional data table of the relation |
HRP1002 / HRP1035 / HRP1222, field TABNR | HRT1002 / HRT1035 / HRT1222 |
PA2006-QUONR | PTQUODED, and from there back to PA2006 / PA2001 |
HRPY_RGDIR-SEQNR | Payroll cluster viewer |

Payroll clusters
A double-click on a sequence number in HRPY_RGDIR opens the payroll result of that personnel
number and sequence number as a tree: every cluster table of the result is a node, and each node
opens in a normal SDE window with filters, empty-column handling and everything else.
Tools: joins, pivot tables, SQL
The Tools button docks a builder below the data of the window: an HTML canvas on top (the join graph, or the pivot cross), the field list, the generated SQL, and the result grid.
Two cards switch the mode — Join and Pivot table. Clicking the active card again turns the mode off and leaves the plain table behind.
Join builder
- Candidates are discovered from the dictionary around the base table: outgoing foreign keys, incoming ones and text tables. Any other table can be added by name.
- Selecting a candidate gives it an alias (
T0,T1,T2, …) that never changes afterwards, so filters and sorts stay valid while you rearrange the join. - Each joined table has a join type (
INNER/LEFT OUTER) and an ON condition, filled from the key pairs and editable by hand. - Tables can be reordered; fields can be picked with select all / clear / keys, per table or one by one, reordered by dragging or by click-to-move, and selected with a lasso. The field texts follow a language of your choice.
- The selection panel of the window gains every field of every joined table under its alias
(
T1_CONNID), so filters can be set on any table of the join. Filters of tables that leave the join are dropped instead of breaking the statement.
Pivot tables
The pivot mode replaces the canvas with the pivot cross: ROWS run down the left side, COLUMNS across the top, MEASURES fill the body, and the available fields sit below it. The SELECT list of the join is collapsed while pivoting — it has no effect on the pivot beyond deciding which fields are on offer — so the generated statement takes the whole lower half.
- Every section starts with three slots and grows by one more as soon as it fills up, so there is always a free slot to aim at.
- Fill a slot by dragging a field chip into it, or click the chip and then click the slot. Chips can be dragged from one slot to another to reorder them or to move them between sections; the cross on a chip removes it.
- Every measure chip carries an aggregation:
SUM,COUNT,MIN,MAX,AVGfor numeric fields,COUNT/MIN/MAXotherwise. The same field can be measured several times, once per aggregate. - Fields already placed are dimmed in the list below; in a join every chip keeps the color of its table.
One statement does the aggregation: the join is grouped by the row and the column fields
together, so every line of the result is one cell. The matrix itself is spread in ABAP — a
dynamically specified SELECT list cannot carry the CASE expressions a SQL-side matrix would
need, and the parser rejects them. Up to 50 distinct column value combinations become columns;
a blank value is shown as (empty). Pivot works on the base table and on a join alike.
- Fixed values become text. A field whose domain has fixed values (like a status or a class)
shows the domain's short text instead of its raw code, both in a spread column's header and in a
plain row. A checkbox-style field without domain text of its own (a
FLAG) shows its own field name for the checked value instead of a bareX. - Sorting the grid sorts the matrix itself — the pivot's grouped statement has no column that
corresponds to a spread column, so
ORDER BYcannot reach it the way it does for the plain join.
Generated SQL
The statement is always visible below the panel. The edit link turns it into a text area: change
anything you like and run it. UP TO n ROWS, ORDER BY and GROUP BY are recognized and applied
separately, and the row limit of the selection screen still applies when the statement does not
carry one. The result appears in the grid next to the field list.
Filters set in the window feed the WHERE clause, so the SQL text and the result follow the
selection panel while you type.
Saving and loading layouts
Save join layout / Load join layout in the toolbar write and read .sdj files in the folder
from the selection screen (C:\temp\sde\ by default). A layout is tab-separated plain text —
readable in any editor — and contains the base table, the joined tables with their conditions, the
field list and its order, the mode, the filters, the ORDER BY and a manually edited statement if
there is one. Loading a layout restores all of it, even before the selection panel has been opened.
Repository layout
| Path | Contents |
|---|---|
src/ | The program: one report, the global classes, one interface, plus the generated standalone report |
SDE_702.abap, SDE_750_HR.abap | Legacy one-file versions (not part of the abapGit package) |
generate_standalone.sh, generate_standalone.bat, fix_event_order.py | Developer tooling that regenerates the standalone report from src/ |
AGENTS.md | Rules for automated contributors |
Architecture
| Object | Responsibility |
|---|---|
zsde2 (report) | Selection screen, object type switch, entry point |
zcl_sde_appl | Global state: list of open windows, languages, icons, parameters |
zcl_sde_table_viewer | One window — grid, toolbar, data read, navigation, docked tools |
zcl_sde_sel_opt | Selection panel: rows, options, ranges, F4, drop-downs, dictionary jumps |
zcl_sde_transmitter, zcl_sde_receiver | Event link that makes one window drive another |
zcl_sde_dragdrop, zcl_sde_dd_data | Drag and drop between grids and selection panels |
zcl_sde_tools | Join and pivot builder: HTML UI, SQL generation, result grid, layout files |
zcl_sde_pivot, zif_sde_pivot_types | Pivot model, builder panel and the grouped statement |
zcl_sde_plugins | Dictionary and HR navigation rules |
zcl_sde_py_cluster_viewer | Payroll result as a tree |
zcl_sde_text_viewer | Infotype long texts |
zcl_sde_rtti | Dynamic types, field catalogs, drop-down lists |
zcl_sde_sql | Dynamic reads and existence checks |
zcl_sde_ddic, zcl_sde_common | Dictionary and ALV helpers |
zcl_sde_popup | Base class of every dialog window |
z_sde_standalone (report) | Everything above merged into one file — generated, never edited |
History and older documentation
Generation 1 of SDE was a single report for viewing tables and the links between them; this repository is its successor and the description above covers both generations. The wiki of this repository documented generation 1 and is superseded by this file.
The repository used to be called SDE; links of the form github.com/ysichov/SDE/... still
redirect here.
- Simple Data Explorer — feature description in Russian
Author
Yurii Sychov — e-mail · blog · LinkedIn
ALV listbox handling is based on bizhuka/eui.
License
Others providing
Compare all 13 on the Browsing table data page →- sapguisapguiThirty classic transactions, SE80 and SE16N among them, rebuilt as abap2UI5 apps and installed with abapGit into a standard ABAP system.independent, abapThirty classic transactions rebuilt as abap2UI5 apps
- se16nse16nAn abap2UI5 app that browses and filters the content of a table in the browser, on ABAP Cloud systems that have no SE16N as well as on premise.independent, abapTable content browser in abap2UI5, for ABAP Cloud and on premise
- sql-consolesql-consoleA browser-based SQL console built on abap2UI5, in an Open SQL and a native ADBC variant, that shows a query's result as a filterable table without Eclipse or SAP GUI.independent, abapBrowser-based SQL console built on abap2UI5
- HammerHammerA native macOS code editor for ABAP and CDS, with an Object Navigator, Transport Organizer, Data Browser and Gateway Client in the same app as the editor.independent, abapNative macOS code editor for ABAP and CDS
- abap-db-browserabap-db-browserAn SAP GUI program for browsing tables, views, CDS views, custom queries and joins, installed with abapGit together with two other repositories from the same maintainer and needing ABAP 7.50.independent, abapSAP GUI browser for tables, views, CDS views and joins
- ABAP_DATABASE_MANAGERABAP_DATABASE_MANAGERA report that runs custom SQL queries against the SAP database or an external connection, shows the results in an ALV grid, and inserts, updates and deletes data in the connected database.independent, abapABAP report running custom SQL queries into an ALV grid
- urbani-saplinkurbani-saplinkAn SE16 clone shipped as SAPlink files: an ABAP report that reads a table named at runtime with up to 190 select-options, and a Web Dynpro application beside it.independent, abapSE16 clone shipped as SAPlink files
- ABAP remote filesystemABAP remote filesystemA Visual Studio Code extension that opens an ABAP system over ADT as an editable filesystem and exposes system tools to GitHub Copilot and external MCP clients.independent, abapVS Code extension editing ABAP systems over ADT as a filesystem
- ztoadztoadAn Open SQL editor for ABAP that runs a query written in the editor pane on the server and shows the rows in an ALV window, with a pane of saved queries to reuse and share.independent, abapOpen SQL editor for ABAP with ALV output
- ABAP Development Tools for EclipseABAP Development Tools for EclipseSAP's Eclipse plugins for ABAP: source, dictionary and CDS editors, Project Explorer, Outline and ABAP Unit, calling ADT resources on the connected system.sap official, abapSAP's Eclipse plugins for ABAP development over ADT
- HR_DMEHR_DMEA read-only SAP GUI report that lists every infotype, payroll cluster and assignment table holding data for one SAP HCM person or organisational object.independent, abapRead-only SAP GUI report listing where HCM object data is stored
- VERTEXVERTEXAn extension for ABAP Development Tools for Eclipse and VS Code that shows Simple Data Explorer, AVE and ACE in the editor over the developer's ADT connection.independent, abapADT extension for Eclipse and VS Code showing three SAP GUI tools
Details
Sources
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
abaplint
Flavors
“- **SAP_BASIS 7.50 or higher** for the sources in `src/`. For older systems use the” — ysichov/Simple-Data-Explorer — README
History in the atlas
- The table grid, the join builder and the pivot are also available outside SAP GUI, in Eclipse ADT and VS Code, through [VERTEX](artifact:ysichov-vertex).
- First seen.
For your agent
- Ref
artifact:ysichov-simple-data-explorer- JSON
- /artifacts/ysichov-simple-data-explorer.json
- MCP
- Connecting an agent