Scaffolding & Recorder
Der Tab „Scaffolding“ erzeugt Testcode aus der App, wie sie gerade läuft: Page Objects mit stabilen Selektoren, Journeys aus einer Aufzeichnung, ein QUnit-Gerüst für den Controller, Mockdaten aus den aufgezeichneten OData-Requests und Snippets. Den Klickpfad liefert der gemeinsame Recorder.
- Edition
- ab Pro
- Tab
- „Scaffolding“
- Bereiche
- Page Object, Journey, Unit-Test, Mockdaten, Snippets
- Frameworks
- OPA5, wdi5, Playwright
- Recorder
- Community, auch in „Problem melden“ und „Health“
- Auf PROD
- Uneingeschränkt, es wird nur gelesen
Der Tab im Überblick
Öffne die App und im Panel den Tab Scaffolding. Oben wählst du den Bereich: Automatisch (größte sichtbare View), eine bestimmte gerenderte View oder das im Inspector gewählte Control. Neu einlesen liest die View neu. Rechts steht, was erkannt wurde: View, Controller, Zahl der Controls und der Controller-Methoden. ab Pro
Die Karte Erste Schritte fasst den Weg in drei Schritten zusammen: aufzeichnen, generieren, ausführen. Jeder Bereich hat außerdem Mehr erfahren mit Voraussetzungen, Ablageort der Datei und nächsten Schritten, und neben jedem Code steht Code erklärt mit Sprüngen zu den Zeilen.
Page Object erzeugen

- Bereich: welche View oder welcher Container beschrieben wird.
- Die erkannte View mit Controller, Zahl der Controls und Controller-Methoden.
- Die fünf Bereiche: Page Object, Journey, Unit-Test, Mockdaten, Snippets.
- Die interaktiven Controls der View, jeweils mit Rolle und Selektor-Strategie. Der Haken bestimmt, ob ein Control ins Page Object kommt. Daneben Selektor kopieren als ….
- Test-Framework: OPA5, wdi5 oder Playwright.
- Kopieren und Herunterladen des Codes.
Für jedes Control wählt FrontTailor den stabilsten Selektor, den es gibt:
| Strategie | Wann |
|---|---|
| View-ID | Stabile ID in der View – der robusteste Selektor. In Playwright das Ende der DOM-ID, sodass derselbe Locator standalone und im Launchpad läuft. |
| Globale ID | Eigene ID außerhalb einer View: stabil, solange die ID eindeutig ist. |
| Matcher | Generierte ID: Der Selektor nutzt stattdessen Control-Typ, Binding-Pfad oder Text. |
| Generierte ID | Generierte ID ohne Text oder Binding: Der Selektor wird brechen. Die Oberfläche warnt, der Code markiert die Stelle – gib dem Control eine ID. |
Listeneinträge adressiert der Code über die Liste und den Binding-Pfad des Eintrags. Eingegebene Werte von Eingabefeldern gehören nie zur Beschreibung der View.
Den Klickpfad aufzeichnen
Der Recorder ist eine gemeinsame Aufzeichnungsleiste. Sie steht im Bereich Journey, im Tab Problem melden und im Tab Health – alle drei zeigen dieselbe Aufzeichnung. Der Recorder selbst gehört zur Community-Edition; was du daraus machst, hat die Edition des jeweiligen Moduls. Community
- Klicke Aufzeichnen – oder starte über die Befehlspalette mit Aufzeichnung starten/stoppen.
- Bediene die App wie ein Nutzer. Klicks, Auswahl, Suchen und Navigation werden zu Schritten.
- Klicke Stoppen. Schritte kannst du jetzt verschieben oder löschen.
- Wähle unter Verwenden als …, was daraus werden soll.

- Der Zustand: Aufzeichnung läuft … oder Aufzeichnung aus.
- Schrittzähler und Zeit, jeweils mit Grenze: höchstens 200 Schritte und 10 Minuten. Endet eine Aufzeichnung an einer Grenze, sagt die Leiste das.
- Stoppen, daneben Verwerfen.
- Eingegebenen Text aufzeichnen (maskiert) – standardmäßig aus, siehe unten.
- Die Schritte mit Art, Control und Zeitversatz; rechts verschieben und löschen.
Eingaben: Ohne Freigabe zeichnet der Recorder keinen eingegebenen Text und keine Suchbegriffe auf. Der Schritt trägt dann „Wert nicht aufgezeichnet“, der erzeugte Code die Stelle TODO: value not recorded. Mit Freigabe gilt sie nur für diese Aufzeichnung, und die Werte werden schon in der Seite mit den Datenschutz-Regeln von Problem melden maskiert, einschließlich der Pflichtregeln deines Administrators. Der Schlüssel einer Auswahl und der Zustand eines Schalters sind App-Daten und bleiben erhalten, ebenfalls maskiert.

| Verwenden als … | Ergebnis |
|---|---|
| Fehlerbericht (Schritte zum Nachstellen) | Hängt alle Schritte als Tabelle „Aufgezeichnete Schritte“ an den Bericht in Problem melden. |
| OPA5-Journey, wdi5-Journey, Playwright-Journey | Öffnet den Bereich Journey mit diesem Framework. |
| Synthetischer Check | Übernimmt Klicks und Schalter in einen Check in Health; Eingaben und Auswahl werden übersprungen und gezählt. |
Ist ein Modul nicht lizenziert, steht seine Ausgabe gesperrt mit Editions-Tag im Menü; ist es per Richtlinie abgeschaltet, fehlt sie. Unter Aufzeichnungen speicherst du Aufzeichnungen unter einem Namen im Browser (höchstens 20 pro Origin), lädst und löschst sie und tauschst sie als JSON-Datei aus.
Journey aus der Aufzeichnung

- Schritte aus: Aufzeichnung oder Ausgewählten Controls (die Haken im Page Object).
- Framework: OPA5 startet die Component mit
iStartMyUIComponent, wdi5 mitwdi5.goTo, Playwright mitpage.goto. - Kopieren und Herunterladen.
Prüfungen ergänzt du selbst: Der Code enthält TODO-Zeilen für das erwartete Ergebnis. Mit eingerichtetem KI-Assistenten schlägt Assertions vorschlagen welche vor.
Unit-Test für den Controller
Der Bereich Unit-Test erzeugt ein QUnit-Gerüst mit sap/ui/thirdparty/sinon: ein Test pro eigener Controller-Methode, View, Router und Owner Component gestubbt, Event-Handler bekommen ein oEvent-Stub. Quelltext lädt FrontTailor dafür nicht – die Methoden kommen aus der laufenden App.
Im Editor öffnen öffnet den Controller in VS Code (vscode://file/…). Dazu ordnest du einmal einen Namespace einem lokalen Ordner zu (Workspace-Ordner zuordnen); gespeichert werden nur Pfade. SAP Business Application Studio ist nicht abgedeckt.
Mockdaten

Quelle ist die Aufzeichnung der OData-Konsole in diesem Tab. Für OData V2 entstehen localService/metadata.xml, mockdata/<EntitySet>.json und ein mockserver.js; für OData V4 das Layout von @sap-ux/ui5-middleware-fe-mockserver mit ui5-mock.yaml. ZIP herunterladen lädt alles auf einmal.
- Expandierte Navigationen werden zu Zeilen ihres Entity-Sets, doppelte Zeilen entfallen.
- Geheimnisähnliche Felder (
password,token…) werden ersetzt. - Personenbezogene Daten maskiert FrontTailor mit den Regeln von Problem melden plus den Pflichtregeln der Richtlinie. Die Leiste nennt Regelsatz, Zahl der Regeln und der maskierten Werte.
- Schlüssel und UUIDs bleiben unverändert, damit Navigationen im Mockserver funktionieren. Prüfe die Daten deshalb vor dem Teilen.
Snippets
Der Bereich Snippets enthält 12 eingebaute Vorlagen – unter anderem Formatter, Dialog-Fragment, UI.LineItem, UI.FieldGroup, Common.ValueList, UI.HeaderInfo, CAP-Entity und -Handler, RAP-Projection und -Behavior, OPA5-waitFor. Platzhalter füllt FrontTailor aus dem gewählten Control und einem Entity-Set der aufgezeichneten Metadaten; offene Platzhalter bleiben sichtbar. Eigene Snippets legst du mit Neu an (höchstens 200, im Browser gespeichert) und tauschst sie über Importieren und Exportieren aus.
Typische Probleme
| Meldung oder Symptom | Ursache und Abhilfe |
|---|---|
| „Keine gerenderte View gefunden.“ | Öffne eine View der App und klicke Neu einlesen. |
| Controls mit Generierte ID | Ihre Selektoren sind nicht stabil. Vergib in der View eine ID. |
| „Die Aufzeichnung enthält keine Aktion, die eine Journey wiederholen kann (nur Navigation).“ | Zeichne Klicks oder Auswahl in der App auf, nicht nur Seitenwechsel über die Adresszeile. |
| „Diese UI5-Version bietet keinen Event-Hook“ | In sehr alten Versionen zeichnet der Recorder nur Klicks und Navigation auf. |
| „In diesem Tab wurden noch keine OData-Requests aufgezeichnet.“ | Bediene die App, damit die OData-Konsole Requests aufzeichnet, und lies neu ein. |
| „Einige Requests wurden ohne Inhalt aufgezeichnet“ | Sie liefen, bevor FrontTailor in der Seite aktiv war. Lade die App neu und lies neu ein. |
| „Die PII-Regeln konnten nicht geladen werden“ | Ohne Regelsatz erzeugt FrontTailor bewusst keine Mockdaten. Gleich erneut einlesen. |
Siehe auch
- Funktionen im Überblick Funktionen · Testen & melden
- Zum Nachlesen SAPUI5 – The Comprehensive Guide (SAP PRESS)
- Zum Nachlesen SAP Fiori Elements – Grundlagen, Entwicklung und Erweiterung (SAP PRESS)
- Hilfe von Menschen Hands-on-Workshops zu SAPUI5, Fiori Elements, OData und CAP
- Doku Problem melden
- Doku Health und Morgencheck
- Doku OData-Konsole
- Belege ADR-0201 · ADR-0282