SAP-Framework für Oberflächen

Was ist Web Dynpro ABAP?

Web Dynpro for ABAP (WDA)

Web Dynpro ABAP, kurz WDA, ist das Framework von SAP für browserbasierte Oberflächen auf dem Application Server ABAP, aufgebaut nach dem Model-View-Controller-Prinzip. Die Oberfläche wird im Werkzeug aus Views und UI-Elementen zusammengesetzt statt in HTML programmiert, und das Framework erzeugt daraus zur Laufzeit die Darstellung im Browser.

Wenn eine SAP-Anwendung im Browser läuft, aber nicht wie eine Fiori-Kachel aussieht, steckt in gewachsenen Systemen meist Web Dynpro ABAP dahinter.

KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Gehört zu
SAP Application Server ABAP, seit NetWeaver 7.0
Aufbau
Komponente, Views, Windows, Context, Plugs
Entwickelt in
Object Navigator, Transaktion SE80
Verwechselt mit
Klassischem Dynpro und SAPUI5/Fiori

Dynpro, Web Dynpro, Fiori: drei Generationen von SAP-Oberflächen

Dynpro steht für „dynamisches Programm“ und bezeichnet ursprünglich die Bildschirmbilder im SAP GUI, also die klassische Oberfläche, die viele aus Transaktionen wie VA01 oder ME21N kennen. Web Dynpro hat den Namen übernommen, ist aber eine eigenständige Technik für den Browser. Wer nach „ABAP Dynpro“ sucht, meint meist das klassische Bildschirmbild, nicht Web Dynpro.

Die drei Oberflächentechniken bestehen heute nebeneinander:

TechnikLäuft inGebaut mitHeute
Klassisches DynproSAP GUIScreen Painter, PBO/PAI in ABAPGroßer Bestand, keine Neuentwicklung
Web Dynpro ABAPBrowser, vom Server gerendertKomponenten und Context in SE80Bestand pflegen, auch in S/4HANA vorhanden
SAP Fiori mit SAPUI5Browser, im Client gerendertJavaScript, OData, CDS und RAPStandard für Neuentwicklung

Wie eine Web-Dynpro-Anwendung aufgebaut ist

Eine Web-Dynpro-Anwendung besteht aus wenigen, klar getrennten Bausteinen:

  • Komponente

    Die Klammer um alles. Sie bündelt Views, Windows und Controller und kann andere Komponenten wiederverwenden.

  • View

    Ein Bildbereich mit UI-Elementen wie Eingabefeldern, Tabellen und Schaltflächen, angeordnet im Layout-Editor.

  • Window

    Legt fest, welche Views angezeigt werden und wie zwischen ihnen navigiert wird.

  • Controller

    Jeder View hat einen eigenen Controller mit Methoden wie der Initialisierung und den Aktionsbehandlern. Der Component Controller enthält, was mehrere Views gemeinsam brauchen.

  • Context

    Eine baumartige Datenstruktur aus Knoten und Attributen. UI-Elemente werden daran gebunden, statt Werte in Variablen zu schreiben.

  • Plugs

    Ein- und Ausgänge der Views. Ein Outbound-Plug löst die Navigation aus, der Inbound-Plug des Ziel-Views nimmt sie entgegen.

  • Web-Dynpro-Anwendung

    Der Einstiegspunkt mit eigener URL, der festlegt, welche Komponente und welches Window beim Aufruf starten.

Zwischen View-Context und Component-Context wird gemappt, sodass zwei Views auf denselben Datenknoten schauen, ohne dass jemand Werte hin und her kopiert. Diese Trennung ist der Grund, warum sich Web-Dynpro-Anwendungen gut zerlegen lassen: Eine Komponente kann eine andere über Interface Views einbinden, so entstehen wiederverwendbare Bausteine statt eines einzigen überladenen Bildschirmbilds.

Aufruf im Browser

Jede Web-Dynpro-Anwendung ist über eine URL erreichbar, die sich aus dem Server und dem Namen der Anwendung zusammensetzt. Hinter dem Pfad steht ein Service im Internet Communication Framework (ICF), den du in der Transaktion SICF verwaltest:

https://<server>:<port>/sap/bc/webdynpro/sap/<name_der_anwendung>?sap-client=100&sap-language=DE

Mit den Parametern sap-client und sap-language steuerst du Mandant und Sprache. In SAP S/4HANA lassen sich Web-Dynpro-Anwendungen auch als Kachel ins Fiori Launchpad einbinden. Viele Standardanwendungen, die im Launchpad stehen, sind tatsächlich Web-Dynpro-Anwendungen, erkennbar am App-Typ in der Fiori Apps Library.

Was der Wechsel vom klassischen Dynpro bedeutet

Wer aus der Welt der Bildschirmbilder mit PBO und PAI kommt, sucht anfangs den Moment, in dem man Felder befüllt. Den gibt es so nicht mehr. Statt Feldwerte zu setzen, änderst du den Context, und das Framework entscheidet, was neu gezeichnet wird. Auch die Ablaufsteuerung liegt nicht mehr in der Ablauflogik eines Bildes, sondern in Plugs, die von einem View zum nächsten navigieren.

Der praktische Gewinn ist die Ausgabe im Browser, für die auf dem Arbeitsplatz kein SAP GUI installiert sein muss, dazu die eingebaute Barrierefreiheit der Standard-UI-Elemente und mehrere Anpassungsebenen: Konfiguration durch Entwickler, Customizing für alle Anwender eines Mandanten und Personalisierung durch die einzelne Person. Der Preis ist ein starrer Rahmen, denn eigenes HTML und JavaScript sind nur in engen Grenzen vorgesehen. Wer eine Oberfläche pixelgenau nach Designvorlage bauen soll, arbeitet mit Web Dynpro gegen das Framework.

Einordnung neben Fiori

SAP setzt bei neuen Anwendungen auf SAP Fiori mit SAPUI5 im Browser und OData-Services im Backend, im ABAP-Cloud-Modell gebaut mit CDS und RAP. Web Dynpro ABAP gehört nicht zu den für ABAP Cloud freigegebenen Techniken, ist im klassischen ABAP von S/4HANA aber weiter vorhanden und unterstützt. Viele produktive Anwendungen laufen darauf, unter anderem Oberflächen, die über den Floorplan Manager konfiguriert wurden.

Für Entwicklerteams heißt das meist Bestandspflege statt Neubau. Du musst Web Dynpro lesen und ändern können, weil die Anwendung im Haus läuft, während neue Anforderungen als Fiori-App entstehen. Beide Welten teilen sich das Backend, die Geschäftslogik gehört deshalb in Klassen und nicht in den Controller, dann lässt sie sich bei einer späteren Umstellung weiterverwenden.

KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Nicht verwechseln

Web Dynpro ABAP und was oft damit gleichgesetzt wird

Web Dynpro ABAP gegen Klassisches Dynpro

Dynpros laufen im SAP GUI und werden mit Ablauflogik in PBO (Process Before Output) und PAI (Process After Input) gesteuert. Web Dynpro läuft im Browser und arbeitet mit Context und Plugs statt mit Feldern und Ablauflogik. Gemeinsam ist beiden nur der Namensteil.

Web Dynpro ABAP gegen SAPUI5 und Fiori

SAPUI5 ist eine JavaScript-Bibliothek, die im Browser läuft und Daten über OData holt. Web Dynpro rendert dagegen auf dem Application Server, die Anwendungslogik bleibt vollständig in ABAP, und jede Interaktion löst einen Serveraufruf aus.

Web Dynpro ABAP gegen Web Dynpro Java

Die gleichnamige Variante auf dem Java-Stack folgt demselben Konzept, wird aber in Java im NetWeaver Developer Studio entwickelt und auf dem Application Server Java betrieben. Sie spielt in heutigen Systemen kaum noch eine Rolle.

Web Dynpro ABAP gegen Business Server Pages (BSP)

BSP sind eine ältere Webtechnik des AS ABAP, bei der du HTML-Seiten mit eingebettetem ABAP selbst schreibst. Web Dynpro nimmt dir das HTML ab, BSP lässt dir dafür mehr Freiheit beim Aussehen.

In der Praxis

Die Oberfläche ist schnell zusammengesteckt, die Bremse sitzt woanders

Web Dynpro nimmt dir das Zeichnen der Oberfläche ab, dafür schreibt es dir vor, wie du an die Daten kommst. Context-Knoten, Supply-Funktionen und Controller, die sich gegenseitig Referenzen reichen, sind anfangs ungewohnt, und der Umbau im Kopf dauert länger als das Nachbauen des ersten Bildes.

Im Betrieb fällt fast immer dasselbe auf: Die Anwendung wird zäh, sobald ein Context-Knoten bei jedem Roundtrip neu gefüllt wird, obwohl sich an den Daten nichts geändert hat. Weil das Framework die Aufrufe wegkapselt, siehst du das im Code nicht sofort, sondern erst, wenn du einen Trace mitlaufen lässt.

Der zweite Klassiker betrifft den Zugang. Web Dynpro braucht einen aktiven ICF-Service, und wenn der nach einer Systemkopie oder einem Upgrade nicht aktiviert ist, bekommt die Fachabteilung nur eine Fehlerseite, während im ABAP-Stack alles fehlerfrei aussieht. Ein Blick in SICF spart dann die Suche im Quelltext.

Web Dynpro ABAP lernen

Wie du Komponenten schneidest und den Context sauber mappst, übst du in den Trainings zur Oberflächenentwicklung mit SAP an einer durchgehenden Anwendung.

Wissen prüfen

Sitzt Web Dynpro ABAP schon?

Lesen fühlt sich schnell nach Können an. Ein kurzer Test zeigt dir, was davon schon sitzt und wo sich ein Kurs lohnt. Kostenlos, ohne Anmeldung, mit einer Erklärung zu jeder Antwort.

Häufige Fragen

Lohnt es sich, Web Dynpro ABAP heute noch zu lernen?
Für Neuentwicklungen ist Fiori der Weg, den SAP vorgibt. Wenn dein Arbeitgeber aber bestehende Anwendungen betreibt, auch unter S/4HANA, brauchst du Web Dynpro, um Fehler zu finden und Anforderungen einzubauen, ohne alles neu zu schreiben.
Was ist der Floorplan Manager?
Der Floorplan Manager (FPM) ist ein Rahmenwerk auf Basis von Web Dynpro, das häufige Bildaufbauten wie Übersichtslisten, Suchseiten und Detailseiten vorgibt. Vieles wird dort konfiguriert statt programmiert, was Anpassungen beschleunigt, aber an den vorgesehenen Erweiterungspunkten endet.
Wofür steht WDA?
WDA ist die gängige Abkürzung für Web Dynpro for ABAP oder Web Dynpro ABAP. Analog steht WDJ für Web Dynpro Java. In SAP-Hinweisen und Foren begegnen dir beide Kürzel häufig.
Kann ich eine Web-Dynpro-Anwendung in Fiori umwandeln?
Nicht automatisch. Du kannst sie als Kachel ins Fiori Launchpad einbinden, dann sieht sie im Rahmen des Launchpads wie eine Fiori-App aus, bleibt technisch aber Web Dynpro. Eine echte Fiori-App entsteht nur durch Neuentwicklung, bei der sich die Geschäftslogik wiederverwenden lässt, wenn sie sauber in Klassen liegt.

Passt thematisch dazu

Was die Oberflächengenerationen für die Anwender bedeuten, beschreibt ein Beitrag über den Umstieg von SAP GUI auf Fiori im Arbeitsalltag.

Persönlich für dich da

Deine Ansprechpartner

Du willst das Thema nicht nur nachschlagen, sondern anwenden können? Wir beraten dich persönlich und kostenlos.

Yves Hoppe

Yves Hoppe

Weiterbildung & Beratung

Ordnet mit dir ein, welcher Kurs zu deinem Vorwissen passt.

Norbert Jansen

Norbert Jansen

Beratung & Inhouse

Plant Inhouse-Trainings, die an euren eigenen Daten und Abläufen ansetzen.

Web Dynpro ABAP im Kurs statt im Lexikon

Nachschlagen bringt dich bis zum Verstehen. Anwenden lernst du an echten Aufgaben.