AppApptypeAn application you deploy and use, installed into a system or loaded into an application as a component, rather than a library whose functions you call.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 →

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 VERTEX.

Facts

Last pushLicenceMIT

Where it sits

Lives in
Provides
Browsing table dataABAPBrowsing table datacapabilityLooking at what a system holds while developing or supporting it: the rows behind a key, the reference data a field points at, the tables that carry data for one object. Editing configuration records through maintenance screens is a different job, even where the same transaction does both.

Who is behind it

Yurii SychovYurii SychovPersonMaintains this
In the atlas: maintains 9, contributes to 10
@ysichov
maintainer

What it declares

Every artifact

Type
App
Origin
Independently maintained

As an app

Where it runs
does not say
Distributed through
abapGit

Connections2

README

quoted from ysichov/Simple-Data-Explorer under MIT, read
ysichov/Simple-Data-Explorer/README.mdOn GitHub

Simple 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.

SelecTor selection screen

Table of contents


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.

Multiple windows

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
  1. In abapGit, create an online repository for https://github.com/ysichov/Simple-Data-Explorer.git and assign it to a package (for example $ZSDE for a local one).
  2. Pull, then activate all objects.
  3. Run program ZSDE2 (SE38 / SA38).
Standalone single-file program

No package, no abapGit, nothing to activate except one report:

  1. Create a report (for example Z_SDE_STANDALONE) in SE38.
  2. Paste the contents of src/z_sde_standalone.prog.abap.
  3. 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:

FileTargetNotes
SDE_702.abapSAP_BASIS 7.02Report YS_SDE
SDE_750_HR.abapSAP_BASIS 7.50HR/HCM build, infotype texts (PAxxxx-ITXEX)

Quick start

  1. Run ZSDE2.
  2. Pick the object type with the buttons in the toolbar of the selection screen: Tables, Views, CDS.
  3. 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.
  4. Filter in the left panel of a window; the grid follows every change.
  5. Press the Tools icon in a window to build joins and pivot tables on top of it.

Selection screen

FieldMeaning
Tables / Views / CDSSwitches 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 nameF4 is available in all three modes. The name is checked before the window opens.
Max rowsRow limit of every read, 500 by default. It also caps the statements the Tools area runs.
Folder for saved joinsFrontend 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
ButtonDescription
Show/hide select-optionsCollapses the selection panel and gives the width to the grid.
RefreshRe-reads the data with the current filters.
Load join layoutReads a .sdj file; opens the Tools area if needed.
Save join layoutWrites the current tables, fields, mode, filters and SQL to a .sdj file.
LanguagesMenu: Technical name plus every language installed in the system.
Empty columns optionsMenu: Hide empty columns / Show empty columns.
Table linksOpens the graphical link visualization.
ToolsDocks the join and pivot builder below the data (click again to hide).
Sort ascending / descendingBuilds ORDER BY on the marked columns — see Sorting.
Standard ALV functionsShows or hides the standard ALV toolbar (export, layouts, find, …).
Select-options panel

Selection 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.

Dictionary information

  • 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 ELEMENT column SE11 with the data element, on the DOMAIN column 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).

Search help

Filter shortcuts

Typing is interpreted the way an experienced user expects:

InputResult
a value in lowI EQ value
values in low and highI BT low high
a value containing *, %, + or &I CP pattern
clearing sign and optionthe row is cleared
a date or timeconverted 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.

Same table with and without empty columns

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.

The same table in three languages and with technical names

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.

Double-click navigation

The colour of a column tells what a double-click will do:

ColourMeaning
BlueThe field has a check table: it opens in a new window, filtered by the value you clicked.
GreenA plugin handles the field — a transaction, or a related table that no foreign key describes.
GreyA column of the text table, joined to the data automatically so the language-dependent text stands next to the code.
WhiteA plain field.

Blue and green links

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.

Drag and drop between windows

Delete receiver in the context menu of the selection panel breaks the link again.

The Table links button opens the graphical visualization of the foreign key relations of the current table, the same picture SE11 draws.

Table link graph

HR and HCM plugins

Links that no foreign key describes are hard-coded as plugins.

By data element:

Data elementAction
PERSNOPA20 for the personnel number, with infotype, subtype and validity dates prefilled
HROBJIDPP01 for the OM object
LGARTWage type text table T512W
ITXEXLong text of the infotype record, in a text viewer window
SUBTYSubtype table of the infotype

By table and field:

FromTo
PA0001-PLANS / ORGEH / STELLHRP1000, object type S / O / C
HRP1001-SCLAS / SOBIDThe related OM object — it is put into the search parameters of the same window, so you can walk the structure link by link
HRP1001-ADATANRThe additional data table of the relation
HRP1002 / HRP1035 / HRP1222, field TABNRHRT1002 / HRT1035 / HRT1222
PA2006-QUONRPTQUODED, and from there back to PA2006 / PA2001
HRPY_RGDIR-SEQNRPayroll cluster viewer

Organizational management links HRP1002 and HRT1002

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.

Tools area

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
Join example
  • 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
Pivot example

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, AVG for numeric fields, COUNT / MIN / MAX otherwise. 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 bare X.
  • Sorting the grid sorts the matrix itself — the pivot's grouped statement has no column that corresponds to a spread column, so ORDER BY cannot 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

PathContents
src/The program: one report, the global classes, one interface, plus the generated standalone report
SDE_702.abap, SDE_750_HR.abapLegacy one-file versions (not part of the abapGit package)
generate_standalone.sh, generate_standalone.bat, fix_event_order.pyDeveloper tooling that regenerates the standalone report from src/
AGENTS.mdRules for automated contributors

Architecture

ObjectResponsibility
zsde2 (report)Selection screen, object type switch, entry point
zcl_sde_applGlobal state: list of open windows, languages, icons, parameters
zcl_sde_table_viewerOne window — grid, toolbar, data read, navigation, docked tools
zcl_sde_sel_optSelection panel: rows, options, ranges, F4, drop-downs, dictionary jumps
zcl_sde_transmitter, zcl_sde_receiverEvent link that makes one window drive another
zcl_sde_dragdrop, zcl_sde_dd_dataDrag and drop between grids and selection panels
zcl_sde_toolsJoin and pivot builder: HTML UI, SQL generation, result grid, layout files
zcl_sde_pivot, zif_sde_pivot_typesPivot model, builder panel and the grouped statement
zcl_sde_pluginsDictionary and HR navigation rules
zcl_sde_py_cluster_viewerPayroll result as a tree
zcl_sde_text_viewerInfotype long texts
zcl_sde_rttiDynamic types, field catalogs, drop-down lists
zcl_sde_sqlDynamic reads and existence checks
zcl_sde_ddic, zcl_sde_commonDictionary and ALV helpers
zcl_sde_popupBase 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.

Author

Yurii Sychov — e-mail · blog · LinkedIn

ALV listbox handling is based on bizhuka/eui.

License

MIT

MIT, read
Browsing table data
  1. sapguiThirty classic transactions rebuilt as abap2UI5 apps
  2. se16nTable content browser in abap2UI5, for ABAP Cloud and on premise
  3. sql-consoleBrowser-based SQL console built on abap2UI5
  4. HammerNative macOS code editor for ABAP and CDS
  5. abap-db-browserSAP GUI browser for tables, views, CDS views and joins
  6. ABAP_DATABASE_MANAGERABAP report running custom SQL queries into an ALV grid
  7. urbani-saplinkSE16 clone shipped as SAPlink files
  8. ABAP remote filesystemVS Code extension editing ABAP systems over ADT as a filesystem
  9. ztoadOpen SQL editor for ABAP with ALV output
  10. ABAP Development Tools for EclipseSAP's Eclipse plugins for ABAP development over ADT
  11. HR_DMERead-only SAP GUI report listing where HCM object data is stored
  12. VERTEXADT extension for Eclipse and VS Code showing three SAP GUI tools

Details

Sources3
Added by handdiscovered herechecked
github.com/ysichov/Simple-Data-Explorertree, 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, developer-experience
abaplint
issues under its own abaplint configuration7,339
lines16,233
statements12,387
objects21
files40
analysed, master
abaplint version2.120.84
Flavors1
Standard ABAP
“- **SAP_BASIS 7.50 or higher** for the sources in `src/`. For older systems use the” — ysichov/Simple-Data-Explorer — READMEchecked
History in the atlas2
  1. 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).
  2. First seen.
For your agent
Ref
artifact:ysichov-simple-data-explorer
JSON
/artifacts/ysichov-simple-data-explorer.json
MCP
Connecting an agent