ABAP Debugger Data View Extension
An extension of the ABAP New Debugger that renders the internal table or structure on screen as a typed VALUE statement, ready to paste into an ABAP Unit test.
Test data for an ABAP Unit test of existing code usually already sits in the debugger, at the spot the test is meant to cover. DDVE adds entries to the Services of the Tool menu of the New Debugger's table and structure views, and a Data for ABAP View button in the ALV table display, that render the current variable as a formatted VALUE constructor expression in a popup, recursing through nested structures and tables. Rows filtered out and columns hidden in the ALV grid are left out of the statement, and debugger type names are resolved to source-valid types, with VALUE #( ... ) where no type can be derived. It hooks into the standard debugger through three implicit enhancement implementations, installs with abapGitabapGitA Git client written in ABAP that runs inside the system, so objects are cloned, pulled and pushed without leaving it; with no package manager in ABAP, a cloned repository is how code is distributed.community org, abap on NetWeaver ABAP 7.40 SP08 or higher, and lets each user pick the pretty printer, indented or compressed to a maximum line length, in table ZTOP_DVE_CUST.
Facts
Where it sits
Who is behind it
In the atlas: maintains 1, contributes to 2@geppartamaintainer
What it declares
Every artifact
- Type
- Generator
- Origin
- Independently maintained
As a generator
- Generates
- Code or test data
- Run with
- does not say
- Distributed through
- abapGit
Connections
Seeing what running code did between input and result
Testing application logic, with test doubles for its dependencies
Download
README
quoted from gepparta/abap_debugger_data_view_extension under Apache-2.0, read
ABAP Debugger Data View Extension (DDVE)
Turn any internal table or structure you are inspecting in the ABAP debugger into a ready-to-paste VALUE #( ... ) statement — and cut the most tedious part of writing ABAP Unit tests: creating test data by hand.
" One click in the debugger turns the content of LT_FLIGHTS into:
DATA(lt_flights) = VALUE tt_flights(
( carrid = 'LH' connid = '0400' fldate = '20260115' price = '666.00' currency = 'EUR' )
( carrid = 'LH' connid = '0402' fldate = '20260116' price = '471.00' currency = 'EUR' )
( carrid = 'AA' connid = '0017' fldate = '20260117' price = '422.94' currency = 'USD' ) ).
Copy, paste into your test class, done.
Why
When you write unit tests for existing code, the realistic test data usually already exists — in the debugger, at the exact spot you are trying to cover. Typing it off the screen field by field is slow and error-prone. This extension adds a menu entry to the debugger's table and structure views that renders the current variable content as a syntactically correct, nicely formatted VALUE constructor expression.
Features
- Internal tables and structures — works from both the table view and the structure view of the new ABAP debugger.
- Nested data — structures in tables, tables in structures: the renderer recurses through arbitrary nesting.
- Respects your ALV state — rows filtered out in the ALV grid and columns you have hidden (
no_out) are excluded from the generated statement. - Real type names — the type resolver translates internal debugger type names (
\CLASS=...\TYPE=...) into source-valid type expressions, so the output isDATA(name) = VALUE zcl_foo=>tt_bar( ... )instead of a cryptic placeholder. If no valid type can be derived, it falls back toVALUE #( ... ). - Pretty printing — a built-in parser formats the expression with indentation that follows the nesting depth. A second printer variant compresses the output to a configurable maximum line length.
- Per-user customizing — which pretty printer class is used can be configured per user in table
ZTOP_DVE_CUST(maintenance views included). You can plug in your own implementation ofZIF_DDVE_VALUE_PRETTY_PRINTER. - Unit-tested — the core classes ship with ABAP Unit tests; dependency injection via
ZCL_DDVE_PRET_PRINTER_INJECTORkeeps the components testable.
Requirements
- SAP NetWeaver ABAP 7.40 SP08 or higher (the code base is deliberately kept compatible with 7.40 SP08 so it can be installed on older systems).
- abapGit to install.
Installation
- Install abapGit on your system.
- Create a package (the repository ships as a local package;
$Z_DEBUGGER_DATA_VIEW_EXTworks fine) and clone this repository into it:https://github.com/gepparta/abap_debugger_data_view_extension.git - Pull and activate all objects, including the enhancement implementations (
ZENH_TABLE_VALUES,Z_TABLE_V_BUILD_SERVICES_MENUE,Z_STRUC_V_BUILD_SERVICES_MENUE) — they hook the extension into the standard debugger.
Usage
-
Run the included demo program
Z_DEBUGGER_DATA_VIEW_EXT_DEMO(or any program of yours) and stop at a breakpoint. -
Display an internal table or structure in the debugger.
-
Open the Services of the Tool menu of the table/structure view — you will find new entries added by this extension (in the ALV table display there is also a toolbar button Data for ABAP View).

-
The generated
VALUEstatement is displayed in a popup, ready to be copied into your test code.
Tip for tables: filter rows and hide columns in the ALV grid first — the generated statement will contain exactly what you see.
Architecture
The extension hooks into the debugger via three implicit enhancements (no modifications) and is otherwise a small, modular class library:
| Component | Role |
|---|---|
ZENH_TABLE_VALUES, Z_TABLE_V_BUILD_SERVICES_MENUE, Z_STRUC_V_BUILD_SERVICES_MENUE | Enhancement implementations — debugger entry points (table and structure view). |
ZCL_DDVE_DEBUGGER_INTEGRATION | Data acquisition: extracts variable content from the debugger context via asXML transformation. |
ZCL_DDVE_TABLE / ZCL_DDVE_STRUCTURE | Facades for the table/structure view; apply ALV row filters and hidden columns, build the final statement. |
ZCL_DDVE_VALUE_RENDERER | Rendering engine: builds VALUE #( ... ) expressions, owns the recursion for nested data. |
ZCL_DDVE_COMPONENT | Formats individual field values. |
ZCL_DDVE_TYPE_RESOLVER | Resolves debugger type names into source-valid type expressions and derives variable names. |
ZCL_DDVE_SIMPLE_FIELD_CATALOG | Simplified field catalog for DDIC and local types, resolves .INCLUDEs recursively. |
ZIF_DDVE_VALUE_PRETTY_PRINTER | Abstraction for pretty printer implementations. |
ZCL_DDVE_VALUE_PRETTY_PRINTER / ZCL_DDVE_MAX_LINE_LENGTH_PP | Formatting engines: indented output / compressed to a maximum line length. |
ZCL_DDVE_PRETTYPRINTER_FACTORY + ZCL_DDVE_PP_CUSTOMIZING + ZTOP_DVE_CUST | Per-user selection of the pretty printer implementation. |
ZCL_DDVE_OUTPUT_PRESENTER | Output: wraps cl_demo_output for display. |
ZCL_DDVE_PRET_PRINTER_INJECTOR | Dependency injection for unit tests. |
Data flow: debugger enhancement → data acquisition (asXML) → ALV filter → printer selection (customizing) → rendering → display.
Background
The idea, the original implementation and its evolution are described in these articles (newest first):
- ABAP Debugger Enhancement — Reloaded (LinkedIn, 2026)
- DDVE-Update: typisierte VALUE-Anweisungen (German, 2026)
- ABAP Debugger Enhancement — Update (SAP Community, 2019)
- ABAP debugger enhancement — or how to speed up your test data creation process (SAP Community, 2017)
Related community posts:
- Speed up regression tests with the ABAP debugger — uses this tool to generate test data for regression tests (2019)
- Fork of ABAP Debugger Data View Extension tool — a community fork with performance and robustness improvements
License
Licensed under the Apache License 2.0.
Others providing
- dbg_value_statementdbg_value_statementAn ABAP Debugger script that turns a variable's structure or table into the VALUE statement that recreates it, with a tree explorer, also callable as a function module from a report.independent, abapDebugger script generating a VALUE statement for a variable
- dump_infodump_infoDisplays the variables an ABAP short dump captured, for dumps selected on a selection screen; its documentation does not state which dumps it reads, which releases it runs on or how it installs.independent, abapDisplays the variables of ABAP short dumps
- ADAMADAMAn MCP server that debugs ABAP on a connected system over ADT, as one-shot captures or an interactive session, over stdio next to the assistant or as a shared server on SAP BTP Cloud Foundry.independent, abapMCP server driving SAP's ABAP debugger over ADT for an agent
- abapsmithabapsmithAn MCP server that lets an LLM develop in ABAP on a live system over ADT, with writes off by default and every mutation recorded in a local journal that can undo it.independent, abapABAP MCP server over ADT with a local journal that can undo writes
- ABAP-Object-VisualizerABAP-Object-VisualizerA debugger script that writes an object hierarchy to the clipboard at a breakpoint as a Graphviz description, for pasting into a renderer such as webgraphviz.com.independent, abapDebugger script exporting an object hierarchy as Graphviz
- abap_debugger_object_graph_extensionabap_debugger_object_graph_extensionAn ABAP debugger extension that shows the object on the debugger's Objects tab as a Graphviz graph in a browser window, built on ABAP Graph and Graphviz-browser and tested on NetWeaver 7.5.independent, abapABAP debugger extension drawing objects as a Graphviz graph
- Graphviz-browserGraphviz-browserA static page that draws a Graphviz graph in a browser, written for the ABAP debugger object graph extension and deployable as BSP pages in the system the debugger runs in.independent, abapStatic page drawing Graphviz graphs for the ABAP debugger extension
- 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
- 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
- Smart DebuggerSmart DebuggerA debugger script for the SAP GUI New Debugger that records every step and variable change of an ABAP program, so execution can be stepped backwards with F5 and F8.independent, abapSAP GUI debugger script recording steps so execution can run backwards
- abap2UI5 headless frontendabap2UI5 headless frontendPlays the frontend's side of the abap2UI5 request/response contract in ABAP, so an app class is driven and asserted on from a plain ABAP Unit test.community org, abapDrives abap2UI5 app classes from ABAP Unit tests
- @abap2ui5/mcp-server@abap2ui5/mcp-serverAn MCP server that puts the abap2UI5 development loop on the machine an agent runs on: check the view the ABAP builds, photograph it, deploy the class into a sandbox, boot the app headless and read the errors.community org, abapMCP server for the abap2UI5 check, deploy and run loop
- assertassertA fluent assertion helper for ABAP Unit tests that wraps cl_abap_unit_assert in chained calls such as assert(x)->equals(y), also usable outside tests through ZCL_ASSERTABLE.independent, abapFluent assertion helper for ABAP Unit tests
- @abaplint/transpiler@abaplint/transpilerTranspiles ABAP 7.02 syntax to ES6 JavaScript, so ABAP code and its unit tests run on Node.js in CI without an ABAP system, with optional SQLite, PostgreSQL, Snowflake or SAP HANA drivers.community org, abapTranspiles ABAP to JavaScript to run on Node.js
- Modernization Agents for SAP on AWSModernization Agents for SAP on AWSAWS's suite of agents for SAP modernisation work: custom ABAP converted for S/4HANA, PI/PO interfaces moved to Integration Suite, BW objects moved to SAP Datasphere, deployed into a customer's own AWS account and reached only after registration.partner, abapAWS agents for ABAP, PI/PO and BW modernisation work
- abap_db_preparatorabap_db_preparatorA wrapper over ABAP's OpenSQL replacement service that exports chosen rows into a stored bundle and, in a unit test's setup, replays it as fake table content in two method calls.independent, abapReplays stored database snapshots in ABAP unit tests
- cacamber-BDD-for-ABAPcacamber-BDD-for-ABAPA BDD framework for ABAP that turns Gherkin-style Given/When/Then scenarios into ABAP Unit test steps, matching each step against a regular expression and calling the test class method it maps to.independent, abapBDD framework turning Given/When/Then into ABAP Unit steps
- abap-utesthelpabap-utesthelpTwo helper classes for ABAP Unit tests: one verifies a domain constant class against its domain's fixed values, the other creates test doubles without naming the interface.independent, abapHelper classes for ABAP Unit tests and test doubles
- regression_testregression_testA snapshot library for ABAP that records a value once and compares against it on every later run, from either the debugger or a unit test, storing snapshots in eCATT test data containers.independent, abapSnapshot testing library for ABAP, from debugger or unit test
- abapCovabapCovA report, ZABAPCOV, that uploads ABAP Unit test code coverage results to codecov.io, once the repository is installed through abapGit and codecov.io's certificates through STRUST.independent, abapUploads ABAP Unit code coverage to codecov.io
- 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
- open-steamgateopen-steamgateAn ABAP application server you clone and run on your own machine: transpiled ABAP serving classic /IWBEP/ OData v2 to Fiori over a local database, with no SAP system attached.independent, abapLocal ABAP server serving /IWBEP/ OData v2 without an SAP system
- express-icf-shimexpress-icf-shimA shim that runs an ABAP ICF handler written against if_http_extension behind an Express 4.x server, for ABAP transpiled to JavaScript and run on Node.js in testing and continuous integration.community org, abapShim running an ABAP ICF handler behind an Express 4.x server
- open-abap-coreopen-abap-coreReusable ABAP functionality for code transpiled by @abaplint/transpiler: the core ABAP artifacts that code runs against on Node.js.community org, abapCore ABAP artifacts for code transpiled by @abaplint/transpiler
- mockup_loadermockup_loaderA tool that loads ABAP unit test data prepared in Excel as TAB-delimited text into ABAP structures and tables, and generates interface stubs that return that mock data.independent, abapLoader of Excel-prepared ABAP unit test data, with stub generation
- mockAmockAA free mocking framework for ABAP, published under the Apache License 2.0.independent, abapA free mocking framework for ABAP, published under the Apache License 2.0.
- Vise_for_ABAPVise_for_ABAPA characterisation-test helper: ZCL_VISE=>GRIP records a field's value once and fails a later run if it has changed.independent, abapA characterisation-test helper: `ZCL_VISE=>GRIP` records a field's value once and fails a later run if it has changed.
- abap-senchaabap-senchaA BDD/TDD assertion library for ABAP Unit, styled after the JavaScript library Chai.js, that wraps cl_abap_unit_assert in chainable expect, should and assert styles.independent, abapBDD/TDD assertion library for ABAP Unit, styled after Chai.js
- abap-test-containerabap-test-containerA test data container for ABAP Cloud that loads unit test data in JSON, XML or raw formats from GitHub and maps it onto the target structure, filling the platform's missing native one.independent, abapGitHub-hosted test data container for ABAP Cloud
- abap-unit-runnerabap-unit-runnerAn application job that runs and schedules ABAP Unit tests in SAP's ABAP Environment through the SAP_COM_0735 API, where the on-premise test runner has no SAP GUI to run from.independent, abapApplication job that runs and schedules ABAP Unit tests in the cloud
- adash-servicesadash-servicesThe backend service behind ADASH Cli, exposing ABAP Unit test runs and coverage as REST and OData services for CI/CD pipelines, with a report scheduled to run tests per package.independent, abapBackend exposing ABAP Unit runs and coverage over REST and OData
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
Flavors
“- SAP NetWeaver ABAP **7.40 SP08 or higher** (the code base is deliberately kept compatible with 7.40 SP08 so it can be installed on older systems).” — gepparta/abap_debugger_data_view_extension — README
History in the atlas
- First seen.
For your agent
- Ref
artifact:gepparta-abap-debugger-data-view-extension- JSON
- /artifacts/gepparta-abap-debugger-data-view-extension.json
- MCP
- Connecting an agent
