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 →

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 Explorer. Infotype data is read with direct SELECTs, so HR authorisations such as P_ORGIN are not evaluated.

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

Connections1

README

quoted from ysichov/HR_DME under MIT, read
ysichov/HR_DME/README.mdOn GitHub

HR_DME — SAP HCM Data Model Explorer

HR_DME main tree

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

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.

ReadsPA infotypes (PA*), PD infotypes (HRP*), payroll directory and WPBP, quota deductions, assignment tables
ShowsSALV tree of populated tables → ALV viewer per table → RTTI tree for cluster structures
NavigatesForeign keys, data-element plugins, infotype subtype tables, related PD objects, payroll results
WritesNothing. 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 @DATA in 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_HRPIQ00CONST is used for the active plan variant default, and payroll cluster display needs PYXX_READ_PAYROLL_RESULT plus the country-specific PAY<ISO>_RESULT structure.

3. Installation

  1. Install abapGit if it is not there yet.
  2. abapGit → Online → clone https://github.com/ysichov/HR_DME into a Z package.
  3. Pull and activate. The repository contains a single executable program, ZHR_DME — no DDIC objects, no table entries, nothing to customize.
  4. Optionally create a transaction code for ZHR_DME.

4. Running it

4.1 Selection screen
FieldMeaning
P_PLVARPlan variant. Defaults to the active one (CL_HRPIQ00CONST=>C_PLVAR_ACTIVE)
P_OTYPEObject type — P for person, O/S/C/… for PD objects. F4 from H_T778O, SPA/GPA POT
P_OBJIDObject ID. F4 calls RH_OBJID_REQUEST for the object type entered above, SPA/GPA PON
P_BEGDA / P_ENDDAValidity 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.

Infotype tree for a person

For object type P the tree has three folders:

FolderContents
InfotypesEvery PA* table from T777D with records for this PERNR in the period
Salary dataHRPY_RGDIR (payroll directory), HRPY_WPBP
OthersPTQUODED (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:

ButtonEffect
◄ Select-OptionsOpens the filter panel: one row per field, sign/option icons, F4 help, context menu, multiple ranges
Tech namesSwitches column headers between DDIC texts and technical field names
Language buttonsRe-reads the column headers in another installed language (first 10 languages of the system)
Show empty columnsHides columns that are initial in every selected row, or brings them all back
►/◄ ToolbarAppends 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 elementAction
PERSNOCalls PA20 in display mode, positioned on the infotype/subtype/validity of the clicked row
HROBJIDCalls PP02 via BDC, positioned on the infotype of the clicked row
LGARTOpens T512W (wage type valuation) filtered to that wage type
SUBTYOpens the subtype text table for this infotype (T777D-STYPT/NAMST)
ITXEXReserved for the long-text viewer — currently a stub, see limitations

Field-to-field links (LCL_PLUGINS=>MT_FIELD_LINKS):

FromTo
PA0001-PLANSHRP1000 for object type S (position)
PA0001-ORGEHHRP1000 for object type O (org unit)
PA0001-STELLHRP1000 for object type C (job)
HRP1001-SCLAS / SOBIDThe related object — re-filters the current window to the target OTYPE/OBJID
HRP1002 / HRP1035 / HRP1222 TABNRThe matching HRT1002 / HRT1035 / HRT1222 table part
PA2006-QUONR ↔ PTQUODED-QUONRAbsence quota ↔ its deduction records
PTQUODED-DOCNRPA2001 (the absence that consumed the quota)
HRPY_RGDIR-SEQNRThe 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.

Payroll clusters and their tables side by side

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, so P_ORGIN, P_PERNR and 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_RESULT performs 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.
  • ITXEX long-text display is a stub — RUN_TEXT is empty, so clicking a long-text flag does nothing yet.
  • HRP1001-ADATANR navigation 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 PTQUODED are collected so far.
  • The PD branch (OTYPE ≠ P) collects HRP* infotypes only; it has no Salary data or Others folders.

Related projects by the same author:

External code used:

Author: Yurii Sychov — blog · LinkedIn · ysichov@gmail.com

Licensed under the MIT License.

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. Simple Data ExplorerMulti-window SAP GUI explorer for tables, views and CDS SQL views
  12. VERTEXADT extension for Eclipse and VS Code showing three SAP GUI tools

Details

Sources3
Added by handdiscovered herechecked
github.com/ysichov/HR_DMEtree, 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 configuration1,763
lines4,152
statements2,865
objects2
files2
analysed, main
abaplint version2.120.84
History in the atlas1
  1. First seen.
For your agent
Ref
artifact:ysichov-hr-dme
JSON
/artifacts/ysichov-hr-dme.json
MCP
Connecting an agent