HR_DME
A read-only SAP GUI report that lists every infotype, payroll cluster and assignment table holding data for one SAP HCM person or organisational object.
Given an object type, an object ID and a validity period, it scans the infotype directory T777D and shows each PA or PD infotype table with records for that object, with counts, and for a person also the payroll directory, quota deductions and assignment tables. Each table opens in a viewer whose fields navigate to the objects they point at, and payroll results open as structure trees. It stands in for a round of PA20, PA30, PP01, PC_PAYRESULT and SE16, and is built on the engine of Simple Data ExplorerSimple Data ExplorerA 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.independent, abap. Infotype data is read with direct SELECTs, so HR authorisations such as P_ORGIN are not evaluated.
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
Download
README
quoted from ysichov/HR_DME under MIT, readHR_DME — SAP HCM Data Model Explorer
One transaction that shows every piece of HR data attached to a person or an org object. Infotypes, payroll clusters, quota deductions and the check tables behind them appear in a single tree; double-clicking any field jumps to the object it points at. One ABAP report, no database objects of its own, no customizing.
It replaces a chain of PA20 / PA30 / PP01 / PC_PAYRESULT / SE16 round-trips with one screen. Built on the engine of Simple Data Explorer; this repository adds the HR-specific collectors and the navigation plugins.
Version: beta 0.1.10.10 · RU write-up on the author's blog
Table of contents
- 1. What it does
- 2. Requirements
- 3. Installation
- 4. Running it
- 5. The table viewer
- 6. Navigation map
- 7. Payroll clusters
- 8. Linked windows (drag & drop)
- 9. Known limitations
- 10. Links and license
1. What it does
Given an object type and an object ID, the report scans the infotype directory (T777D) and reads
every infotype table that actually has records for that object in the selected validity period. The
result is a tree of "what data exists for this person/object", with record counts, instead of a
guess-and-check tour of transactions.
| Reads | PA infotypes (PA*), PD infotypes (HRP*), payroll directory and WPBP, quota deductions, assignment tables |
| Shows | SALV tree of populated tables → ALV viewer per table → RTTI tree for cluster structures |
| Navigates | Foreign keys, data-element plugins, infotype subtype tables, related PD objects, payroll results |
| Writes | Nothing. The report is read-only |
2. Requirements
- SAP_BASIS 7.40 SP08 or higher — the source uses inline declarations,
VALUE/NEW/COND, string templates and inline@DATAin Open SQL. - SAP GUI for Windows. The UI is built from
CL_GUI_*controls in dialog-box containers with drag & drop; it will not run in Web GUI or as a Fiori tile. - SAP HCM with PA/PD data.
CL_HRPIQ00CONSTis used for the active plan variant default, and payroll cluster display needsPYXX_READ_PAYROLL_RESULTplus the country-specificPAY<ISO>_RESULTstructure.
3. Installation
- Install abapGit if it is not there yet.
- abapGit → Online → clone
https://github.com/ysichov/HR_DMEinto a Z package. - Pull and activate. The repository contains a single executable program,
ZHR_DME— no DDIC objects, no table entries, nothing to customize. - Optionally create a transaction code for
ZHR_DME.
4. Running it
4.1 Selection screen
| Field | Meaning |
|---|---|
P_PLVAR | Plan variant. Defaults to the active one (CL_HRPIQ00CONST=>C_PLVAR_ACTIVE) |
P_OTYPE | Object type — P for person, O/S/C/… for PD objects. F4 from H_T778O, SPA/GPA POT |
P_OBJID | Object ID. F4 calls RH_OBJID_REQUEST for the object type entered above, SPA/GPA PON |
P_BEGDA / P_ENDDA | Validity interval. Defaults to 1800.01.01 – 9999.12.31, i.e. everything |
Press Enter, not F8. ONLI is excluded from the selection-screen status on purpose: the tree
opens from AT SELECTION-SCREEN, so the selection screen stays behind it and you can go straight to
the next object without leaving the report.
4.2 The object tree
The window caption is built from PA0002 — first name, last name, middle name, and the
OTYPE/OBJID you entered. Each leaf is labelled (infotype) infotype text (record count), with
texts taken from T582S for persons and T777T for PD objects.
For object type P the tree has three folders:
| Folder | Contents |
|---|---|
| Infotypes | Every PA* table from T777D with records for this PERNR in the period |
| Salary data | HRPY_RGDIR (payroll directory), HRPY_WPBP |
| Others | PTQUODED (quota deduction), ASSHR, ASSOB, ASSOB_HR |
For any other object type the tree has one folder, Infotypes, holding every HRP* table from
T777D with records for PLVAR/OTYPE/OBJID in the period.
Double-clicking a node opens the table in a viewer window with PERNR (or OBJID) already applied
as a filter.
5. The table viewer
Every table opens in its own resizable dialog box titled TABNAME - DDIC description. The ALV has a
compact toolbar of its own:
| Button | Effect |
|---|---|
| ◄ Select-Options | Opens the filter panel: one row per field, sign/option icons, F4 help, context menu, multiple ranges |
| Tech names | Switches column headers between DDIC texts and technical field names |
| Language buttons | Re-reads the column headers in another installed language (first 10 languages of the system) |
| Show empty columns | Hides columns that are initial in every selected row, or brings them all back |
| ►/◄ Toolbar | Appends the standard ALV toolbar (layouts, export, sums, print) to the compact one |
Text tables are joined automatically where DDIC declares one, so key fields show their description next to the code.
6. Navigation map
Double-clicking a cell is the main navigation gesture. The plugin layer resolves the click in
this order: field-to-field links → field-to-plugin links → data-element links → HRP1001-ADATANR →
DDIC foreign key. The first rule that matches wins.
Data-element links (LCL_PLUGINS=>MT_EL_LINKS):
| Data element | Action |
|---|---|
PERSNO | Calls PA20 in display mode, positioned on the infotype/subtype/validity of the clicked row |
HROBJID | Calls PP02 via BDC, positioned on the infotype of the clicked row |
LGART | Opens T512W (wage type valuation) filtered to that wage type |
SUBTY | Opens the subtype text table for this infotype (T777D-STYPT/NAMST) |
ITXEX | Reserved for the long-text viewer — currently a stub, see limitations |
Field-to-field links (LCL_PLUGINS=>MT_FIELD_LINKS):
| From | To |
|---|---|
PA0001-PLANS | HRP1000 for object type S (position) |
PA0001-ORGEH | HRP1000 for object type O (org unit) |
PA0001-STELL | HRP1000 for object type C (job) |
HRP1001-SCLAS / SOBID | The related object — re-filters the current window to the target OTYPE/OBJID |
HRP1002 / HRP1035 / HRP1222 TABNR | The matching HRT1002 / HRT1035 / HRT1222 table part |
PA2006-QUONR ↔ PTQUODED-QUONR | Absence quota ↔ its deduction records |
PTQUODED-DOCNR | PA2001 (the absence that consumed the quota) |
HRPY_RGDIR-SEQNR | The payroll result for that sequence number — see below |
Anything not covered by a rule falls back to the DDIC foreign key: DD_FORKEY_GET supplies the
check table and the key field mapping, and the check table opens pre-filtered. Language and country
grouping are carried over from SY-LANGU and SPA/GPA MOL where the target table has SPRSL /
MOLGA.
7. Payroll clusters
Double-clicking SEQNR in HRPY_RGDIR resolves the employee's country grouping with
RH_PM_GET_MOLGA_FROM_PERNR, translates it to the ISO country code via T500L, builds the
PAY<ISO>_RESULT structure dynamically by RTTI, and reads the cluster through
PYXX_READ_PAYROLL_RESULT. The result is displayed as an RTTI tree — every nested structure and
internal table of the cluster (RT, CRT, WPBP, BT, …) can be expanded and drilled into.
Several clusters can be open side by side, so results from different periods are directly comparable.
8. Linked windows (drag & drop)
Drag a column from one table viewer and drop it on the select-options panel of another. That creates a live link: the dragged column turns into a button, and from then on selecting a row in the source window pushes the value into the target's filter and re-reads it.
Dragging a filter row from one select-options panel onto another copies the range and keeps the two linked — later changes on the source side propagate to the target, which is flagged with an "inherited" icon. This is how you build a small ad-hoc "report" out of several tables without writing any code.
9. Known limitations
- SAP GUI for Windows only — control framework, dialog boxes and drag & drop rule out Web GUI.
- No HR authorization check. Infotype data is read with direct
SELECTs, soP_ORGIN,P_PERNRand friends are not evaluated. Restrict access to the report itself (S_PROGRAM, a dedicated transaction, authorization group) before letting it out of a sandbox. Payroll clusters are the exception:PYXX_READ_PAYROLL_RESULTperforms its own read check. - Unfiltered reads are capped at 100 rows. Opening a table with no filter shows the first 100 records by primary key. Add a filter in the select-options panel to read the full set.
ITXEXlong-text display is a stub —RUN_TEXTis empty, so clicking a long-text flag does nothing yet.HRP1001-ADATANRnavigation to the adjacent-data table (T77AR→T77AD) is written but commented out.- Time management and business-trip clusters are still on the wish list — of the cluster data only
payroll results and
PTQUODEDare collected so far. - The PD branch (
OTYPE≠P) collectsHRP*infotypes only; it has no Salary data or Others folders.
10. Links and license
Related projects by the same author:
- Simple Data Explorer · SDE_abapgit — the generic table explorer this report is built on
- Smart Debugger — the RTTI tree and debugger data explorer
- ABAP-AI-Code — agentic AI coding assistant running inside SAP
External code used:
- ABAP Object Visualizer by Lars Hvam
- Data object visualizer by AtomKrieg
Author: Yurii Sychov — blog · LinkedIn · ysichov@gmail.com
Licensed under the MIT 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
- Simple Data ExplorerSimple Data ExplorerA 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.independent, abapMulti-window SAP GUI explorer for tables, views and CDS SQL views
- 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
History in the atlas
- First seen.
For your agent
- Ref
artifact:ysichov-hr-dme- JSON
- /artifacts/ysichov-hr-dme.json
- MCP
- Connecting an agent