OData-Konsole
Die OData-Konsole zeichnet jeden OData-Request der App auf, zerlegt $batch in seine Teile und zeigt den Fehlertext des Backends so, wie Gateway, RAP oder CAP ihn meinen. Dazu kommen Replay mit Vorschau, Export ohne Tokens, gespeicherte Filter und der Service als Diagramm. Alles bleibt im Browser.
- Edition
- Community
- Tab
- „OData“
- Oberflächen
- DevTools-Panel und Side-Panel
- Protokoll
- OData V2 und V4,
$batchMultipart und JSON - Speicher
- je Tab bis 2.000 Requests oder 50 MB
- Auf PROD
- Anzeige und Export, Replay gesperrt
Der Tab im Überblick
Öffne den Tab OData im DevTools-Panel oder im Side-Panel und bediene die App. Jeder OData-Request erscheint als Zeile; ein $batch klappt in seine Teile auf. Im schmalen Side-Panel fehlen nur die Spalten Zeit und Größe.

$batch antwortet 200, sein Teil 400.- Vier Ansichten desselben Logs: Requests, Sammlungen, Metadaten und Diagramm.
- Pausieren hält die Aufzeichnung an, Leeren löscht das Log, Log behalten bewahrt es beim Neuladen.
- Filter über Pfad, Entity-Set, Status und Fehlertext – auch in Batch-Teilen. Rechts daneben Status (Alle, Fehler, Erfolgreich), Methode und Service.
- Ein $batch mit Zahl der Teile. Ein Klick klappt ihn auf.
- Ein Batch-Teil: anklickbar wie ein eigener Request.
- Ein fehlgeschlagener Request: rote Ampel,
200 → 400heißt „Hülle 200, Teil 400“, darunter der Fehlertext.
Über der Tabelle steht, ob die Aufzeichnung ab Seitenstart läuft, und der gemessene Overhead pro Request. Mit dem Häkchen Auf … aufzeichnen schaltest du die Aufzeichnung für diesen Host ab oder an; das wirkt ab dem nächsten Laden. Unter der Tabelle stehen die Exporte.
| Spalte | Inhalt |
|---|---|
| Zeit · Methode | Start des Requests und HTTP-Methode. |
| Entity-Set / Pfad | Pfad relativ zum Service, bei $batch die Zahl der Teile und Changesets, bei Fehlern der Fehlertext. |
| Status | Ampel und HTTP-Status. Beim $batch zählt der schlechteste Teil. aus dem Cache, wenn der Browser geantwortet hat. |
| Dauer · Größe | Laufzeit und Größe der Antwort. |
Fehler lesen: Meldung, Transaktions-ID, Fehlerprotokoll
- In der Tabelle die rote Zeile anklicken. Bei einem
$batchöffnet sich der fehlgeschlagene Teil. - Im Detail den Tab Fehler wählen.
- Meldung, Code, Transaktions-ID und Lösungshinweise ablesen. Bei Gateway-Fehlern führt Im Gateway-Fehlerprotokoll öffnen ins
/IWFND/ERROR_LOG.

GET Products('ERR400'): Fehlertext des Gateways mit Transaktions-ID.- Fehler für diesen Request simulieren macht aus dem Request eine Regel der Fehlersimulation ab Pro.
- Als bekannten Fehler speichern legt die Lösung für das nächste Mal ab, siehe Bekannte Fehler.
- Meldung aus dem Fehler-Body, darunter Code, Ziel und Details.
- Transaktions-ID und Zeitstempel für die Suche im Backend.
- Im Gateway-Fehlerprotokoll öffnen: ein normaler Link auf
/IWFND/ERROR_LOGdesselben Systems, in einem neuen Tab (SAP GUI für HTML).
Die Konsole versteht Gateway V2 als JSON und XML, V4 von RAP und CAP, ICF-Fehlerseiten als HTML und die Header sap-message bzw. sap-messages. Ein Changeset, das als Ganzes scheitert, markiert alle Teile als Changeset fehlgeschlagen; fehlende Antworten heißen Keine Antwort.
| Detail-Tab | Inhalt |
|---|---|
| Request | URL, Query-Optionen, Header und Body (formatiert oder roh), sap-contextid. |
| Response | Status, Header und Body der Antwort. |
| Batch | Alle Teile des $batch mit Changeset und Status. Als Einzel-Request öffnen öffnet einen Teil, Ganzen $batch anzeigen führt zurück. |
| Fehler | Meldung, Code, Ziel, Details, Transaktions-ID, Zeitstempel, Lösungshinweise. |
| Timing | Quelle (Page-Hook, Netzwerk oder beides), Dauer, Server-IP, Server-Timing, Cache-Control, Netzwerkfehler. |
| Controls | Die Controls der Seite, die das Entity-Set binden. Ein Klick wählt das Control im Inspector. |
| Replay | Request bearbeiten und erneut senden, siehe Replay. |
Mit ab Pro stehen über dem Fehler die KI-Einstiege, etwa Fehler erklären – mit deinem eigenen Schlüssel, siehe KI-Assistent. Mit ab Enterprise führt die Karte Absprung ins Backend in die Analyse-Transaktionen desselben SAP-Systems, siehe Absprung ins Backend.
Replay: bearbeiten, Vorschau, senden
- Request in der Tabelle wählen, im Detail den Tab Replay öffnen.
- Methode, URL, Header (einer pro Zeile,
Name: Wert) und Body anpassen. Header erklären beschreibt jeden Header. - Für ändernde Requests Zuerst CSRF-Token holen anhaken.
- Vorschau klicken. Sie zeigt den genauen Request samt Token-Abruf: „Dieser Request wird aus der Seite gesendet, mit der Sitzung der Seite“.
- Request senden klicken. Die Antwort erscheint darunter, der Request steht im Log mit dem Kennzeichen Replay.

$batch: Erst die Vorschau, dann ein zweiter Klick zum Senden.- URL des Requests – erlaubt ist nur der Origin der Seite.
- Zuerst CSRF-Token holen: vorher ein
HEADmitx-csrf-token: Fetchauf den Service. - Vorschau zeigt den Request, der gesendet würde. Ohne Vorschau gibt es kein Senden.
- In Sammlung speichern legt den Request dauerhaft ab, siehe Sammlungen.
- Request senden schickt ihn mit der Sitzung der Seite. Zurücksetzen stellt den Originalzustand her.
Export ohne Geheimnisse
| Knopf | Ergebnis |
|---|---|
| Gewählter Request: Als cURL kopieren | cURL-Befehl in der Zwischenablage. Ändernde Requests holen zuerst ein Token und nutzen -c/-b cookies.txt. |
| Gewählter Request: .http (VS Code) | Datei für den VS-Code-REST-Client mit einem Token-Abruf vorab. |
| Alle angezeigten Requests: .http · Postman · HAR | Alle Zeilen, die der Filter zeigt. Die Postman-Sammlung holt das Token in einem eigenen Request. |
Exporte entstehen lokal als Datei und enthalten weder Cookies noch Authorization noch CSRF-Tokens: „Exporte bleiben auf diesem Rechner. Cookies und CSRF-Tokens fehlen – die Dateien holen zuerst ein Token.“
Gespeicherte Filter und Sammlungen
Links über der Tabelle steht das Menü der Gespeicherten Filter (anfangs Standard). Sichern, Sichern unter und Verwalten legen Filtersätze aus Status, Service, Methode und Text ab. Als Standard für dieses System wendet einen Filter beim Öffnen der Konsole für diesen Origin an.
Die Ansicht Sammlungen hält gespeicherte Requests. Vor dem Speichern entfernt FrontTailor Cookies, Tokens, Authorization- und CSRF-Header; die URL wird relativ zum Service gespeichert und läuft so auf jedem System mit diesem Service. Ein gespeicherter Request läuft wie ein Replay: erst Vorschau, dann senden. Importieren und Alle exportieren tauschen Sammlungen als JSON-Datei. Filter und Sammlungen aus Team-Paketen erscheinen mit ab Team in einer eigenen Gruppe, siehe Team-Pakete.
Metadaten: Service durchsuchen

- Service wählen – jeder Service, dessen
$metadataaufgezeichnet wurde. - Die Zusammenfassung: OData-Version, Entity-Sets, Entity-Typen, Operationen, Annotationen.
- Suchen in Entity-Sets, Typen, Properties, Aktionen und Annotationen (auch aus externen Annotationsdateien).
- Die Treffer. Controls zeigt, welche Controls der Seite ein Element binden.
Fehlt ein Service, wurde sein $metadata nicht aufgezeichnet: App bei aktiver Aufzeichnung neu laden.
Diagramm: Entitäten und Navigationen

Product zeigt fehlgeschlagene Requests aus der Konsole.- Suche nach Typ, Entity-Set oder Property (Taste /). Daneben die Umgebung (1 oder 2 Schritte), Annotationen und Ebenen (Operationen, Complex- & Enum-Typen, Draft ausblenden).
- Pfad finden: Von-Typ und Ziel-Typ wählen, $expand kopieren liefert den Navigationspfad.
- Export: SVG oder PNG der aktuellen Ansicht, oder Mermaid-erDiagram kopieren.
- In Vollansicht öffnen zeigt das Diagramm in einem eigenen Fenster.
| Taste / Maus | Wirkung |
|---|---|
| Ziehen · Rad oder Pinch | Verschieben · Zoomen. +, − und 0 (an Bildschirm anpassen) gehen auch. |
| Klick · Doppelklick oder Enter | Typ wählen · Fokus auf den Typ und seine Nachbarn. |
| Shift+Klick | Pfad vom gewählten Typ zum angeklickten. |
| Pfeiltasten | Nächster Typ. |
| / · Esc | Suchen · Ansicht zurücksetzen. |
Was aufgezeichnet wird
Die Konsole hängt sich in XMLHttpRequest und fetch der Seite, ändert aber keinen Request und setzt keinen Header. UI5-Ressourcen wie .js oder .properties schaut sie gar nicht erst an. Cookies werden entfernt; Authorization, CSRF-Tokens und andere Geheimnisse werden schon in der Seite durch [redacted] ersetzt. Je Tab hält das Log bis 2.000 Requests oder 50 MB, Bodies bis 512 KB (Request) und 1 MB (Response). Es wird beim Schließen des Tabs gelöscht und beim Neuladen geleert, außer Log behalten ist an.
Typische Probleme
| Problem | Lösung |
|---|---|
| Request-Bodies werden auf dieser Seite nicht aufgezeichnet | Die Seite war schon geladen, bevor die Domain freigegeben wurde. Neu laden oder Aufzeichnung jetzt starten. |
| Zeilen mit Nur Netzwerkdaten | Diese Requests liefen vor dem Start der Aufzeichnung. Status und Timing sind da, Bodies nicht. Neu laden. |
| Ein Fehler steht nicht in der Sitzung der Übersicht | Ein $batch antwortet oft mit 200, auch wenn ein Teil scheitert. Die Konsole zeigt solche Teile rot, die Sitzung zählt nur HTTP-Fehler. |
| Metadaten oder Diagramm sind leer | $metadata wurde nicht aufgezeichnet. App bei aktiver Aufzeichnung neu laden. |
| Request senden ist gesperrt | Der Host ist PROD. Replay gibt es nur auf Entwicklungs- und Testsystemen. |
| Die Aufzeichnung fehlt ganz | Das Häkchen Auf … aufzeichnen ist aus, oder deine Administration hat die Konsole abgeschaltet („Die Aufzeichnung ist durch Ihre Administration deaktiviert.“). |
Siehe auch
- Funktionen im Überblick Funktionen · OData
- Zum Nachlesen Fullstack-Entwicklung mit SAP (SAP PRESS)
- Zum Nachlesen SAP Fiori Elements – Grundlagen, Entwicklung und Erweiterung (SAP PRESS)
- Hilfe von Menschen Fiori Elements und Annotationen
- Doku Fehlersimulation
- Doku Bekannte Fehler
- Doku Absprung ins Backend
- Doku Model Explorer
- Belege ADR-0071 · ADR-0152 · ADR-0293