ABAP & SAP SAP-platform
SAP-platform

Transport, debugger & analysetools

Hoe ontwikkeling door het landschap beweegt (transportrequests, packages), en het gereedschap om code te doorgronden: de debugger, ST22-dumps, SQL-trace, runtime-analyse en ATC/Code Inspector.

Op deze pagina

01Het systeemlandschap & transporten

Custom ontwikkeling ontstaat nooit rechtstreeks in productie. Alles beweegt via transportrequests door een landschap van gescheiden systemen.

Het drie-systemen-landschap

DEV (ontwikkeling)  ──transport──►  QAS (test/kwaliteit)  ──transport──►  PRD (productie)

Transportrequests — SE09/SE10

Packages, naamruimte & herkenning van maatwerk

Klassieke valkuil — "het werkt in DEV maar niet in QAS" betekent bijna altijd: een afhankelijk object (tabelwijziging, customizing, tweede transport) is niet of in de verkeerde volgorde meegekomen. Vergelijk versies met de versiehistorie.

02De ABAP-debugger

Het belangrijkste gereedschap om te begrijpen wat code écht doet. De nieuwe (two-process) debugger opent in een apart venster en kan alles inspecteren wat leeft: variabelen, interne tabellen, objecten, de call stack.

Starten

ManierHoe
Breakpoint in de editorCursor op de regel, Ctrl+Shift+B of het stop-icoon — een externe breakpoint geldt ook voor RFC/HTTP-aanroepen onder jouw gebruiker
/hTyp /h in het commandoveld en voer daarna de actie uit — debugger start bij de eerstvolgende ABAP-regel
Statement BREAK-POINT.Hard gecodeerd stoppunt; variant BREAK gebruikersnaam. stopt alleen voor die gebruiker. Niet naar productie transporteren.
Vanuit een dumpIn ST22: knop "Debugger" springt naar de crashlocatie met de toenmalige variabele-inhoud

Navigeren

ToetsNaamDoet
F5Single stepEén regel; stapt aangeroepen methods/FORM's in
F6ExecuteEén regel; springt over aanroepen heen (voert ze wel uit)
F7ReturnRondt de huidige method/FORM af en stopt bij de aanroeper
F8ContinueDoorlopen tot de volgende breakpoint (of het einde)

03ST22 — runtime-dumps lezen

Crasht een programma, dan ontstaat een short dump. Transactie ST22 toont ze; leren dump-lezen bespaart uren debuggen.

Een dump is opgebouwd uit vaste secties — de nuttigste:

Veelvoorkomende dumpBetekent meestal
TIME_OUTDialoogproces overschreed de maximale looptijd (standaard ± 10 min) — kandidaat voor een achtergrondjob of performancefix
TSV_TNEW_PAGE_ALLOC_FAILEDGeheugen op — meestal een interne tabel die onbedoeld gigantisch werd
CX_SY_OPEN_SQL_DB / SAPSQL_...Fout in een dynamisch opgebouwde SELECT
CONVT_NO_NUMBERTekst naar getal converteren mislukt — invoer valideren!
CALL_FUNCTION_NOT_FOUNDFunctiemodule bestaat niet (in dít systeem) — transport vergeten?

04ST05 — SQL-trace

De performance trace registreert elke database-aanroep van een gebruiker: welk statement, op welke tabel, hoe vaak en hoe lang. Hét gereedschap voor "waarom is dit traag?" én voor "welke tabel zit achter dit scherm?"

  1. ST05 → trace aanzetten (evt. gefilterd op gebruiker).
  2. De trage transactie/het programma uitvoeren.
  3. Trace uitzetten en weergeven.

In het resultaat let je op:

SAT — runtime-analyse

Waar ST05 alleen database-tijd meet, meet SAT (opvolger van SE30) alles: welke methods en FORM's hoeveel tijd kosten, inclusief aanroephiërarchie. Vuistregel: is in SAT het aandeel "database" hoog, ga dan naar ST05; is "ABAP" hoog, zoek dan naar dure lussen (bijv. geneste loops over grote interne tabellen — daar helpt een SORTED/HASHED-key).

05Codekwaliteit: syntaxcheck, Code Inspector & ATC

Drie lagen van geautomatiseerde controle, van licht naar zwaar.

ControleWaarControleert
SyntaxcheckCtrl+F2 in de editorCompileerbaarheid; de extended check (SLIN) vindt daarnaast dode variabelen, twijfelachtige conversies e.d.
Code Inspector (SCI)SCI, of vanuit de editorConfigureerbare checkvarianten: performance (SELECT in loop, ontbrekende WHERE), security, conventies
ATC (ABAP Test Cockpit)ATC, geïntegreerd in de workbench en in Eclipse/ADTOverkoepelend raamwerk bovenop SCI-varianten; centrale runs, prioriteiten, exemptions (goedgekeurde uitzonderingen), en blokkeren van transportvrijgave bij fouten

Bij S/4HANA-migraties draait ATC met speciale checkvarianten die incompatibele code vinden (vervallen tabellen, gewijzigde veldlengtes) — zie ook ABAP Cloud, waar ATC bepaalt welke API's je überhaupt mag gebruiken. In veel organisaties is een schone ATC-run een harde voorwaarde voor transportvrijgave.

ABAP Unit — geautomatiseerde tests

Unittests schrijf je als lokale testclasses bij een class; ze draaien met Ctrl+Shift+F10 en in centrale ATC-runs mee. Zie ABAP Unit voor de opbouw met FOR TESTING en CL_ABAP_UNIT_ASSERT.

06Versiebeheer & vergelijken

ABAP heeft ingebouwd versiebeheer per object — geen git, maar wel volledig.

Eclipse / ADT

De ABAP Development Tools in Eclipse zijn de moderne ontwikkelomgeving: snellere navigatie (Ctrl+klik), refactoring (hernoemen, method extraheren), quick fixes, en de enige plek waar je CDS-views en RAP-objecten kunt bewerken. SE80/SE38 in de GUI blijven bestaan, maar nieuwbouw gebeurt in toenemende mate in ADT.