Vom SAP Dynpro zum Web Dynpro

17.03.2006
Von Clemens  Fischer und
Dr. Jens Krueger ist Chief Technology Officer (CTO) EMEA bei Workday. Seine Schwerpunkte sind Produktentwicklung wie auch Strategieberatung. Vor seiner Zeit bei Workday arbeitete Krüger bei McKinsey Digital als Associate Partner. Der Autor begann seine Karriere am Hasso-Plattner-Institut wo er Teil des HANA-Gründungsteams war. Danach ging er zu SAP, wo er zum Senior Vice President aufstieg. Jens Krüger hat am Hasso-Plattner-Institut in Potsdam in Informatik promoviert und erwarb ein Diplom in Betriebswirtschaft an der Freien Universität Berlin.

Keine automatische Migration

Ursprünglich wurde von SAP ein Migrationskonzept für klassische Transaktionen (Dynpros) in Web Dynpros in Aussicht gestellt. Davon ist das Unternehmen aber inzwischen wieder abgerückt. Geblieben ist ein Tool zur Übernahme des Layouts bestehender Dynpros. Damit ist das im "Screenpainter" erstellte Design in einen View einer Web-Dynpro-Anwendung übertragbar. Allerdings ist dies nur mit Einschränkungen möglich (siehe Kasten "Dynpro-Konvertierung"). Die aufwändigsten Teile der Entwicklung - der Zugriff auf die Geschäftslogik und die bestehenden Objekte (das Modell) sowie die Bearbeitungssteuerung durch den Benutzer (der Controller) - müssen neu implementiert werden. Es gibt keine Migrations-Tools. Dies ist aber nicht als Technikverliebtheit zu sehen, die nichts mit der Realität zu tun hätte.

Das mit den Web Dynpros verfolgte Konzept Model View Controller (MVC) ist komplett anders aufgebaut als das der klassischen Dynpros. Durch die strikte Trennung zwischen Layout, Kontrollfluss und Anwendungslogik ist es technisch gar nicht möglich, aus SAP-Transaktionen direkt sinnvolle Web-Dynpro-Anwendungen zu generieren.

Was sind Web Dynpros?

Auch wenn der Name Verwandtschaft zum klassischen Dynpro vermuten lässt, basiert das Web Dynpro auf einem ganz neuen Paradigma. Es handelt sich daher nicht um eine Weiterentwicklung des bewährten UI-Konzepts.

Zum Einsatz kommt das schon aus anderen UI-Entwicklungsumgebungen bewährte Entwurfsmodell Model View Controller (MVC), welches eine strikte Trennung von Präsentations- und Applikationslogik vorsieht. Erstere wird von den View- und Controller-Einheiten der Web-Dynpro-Anwendung abgebildet. Zugriff auf die Geschäftslogik sowie die zugehörigen Business-Objekte erfolgt über die Modellkomponente, welche eine Schnittstelle zum lokal oder remote angebundenen Backend darstellt. Web-Dynpro-Anwendungen fokussieren auf die UI-Erstellung. Business-Logik und -Objekte können auch von BAPI oder Web-Services bereitgestellt werden.

Im Vergleich zu anderen MVC-basierenden Ansätzen ist am Web-Dynpro-Programmiermodell neu, dass die Oberfläche weniger programmiert als in weiten Teilen durch deklarative, plattformunabhängige Metadaten beschrieben wird. Die Laufzeitumgebung von Netweaver 2004 generiert die eigentliche Oberfläche auf Basis dieser modellierenden Elemente, und zwar für .NET und Java, mit Netweaver 2004s auch für Abap. Die Runtime erlaubt zudem ein Client-spezifisches Rendering, welches den technischen Möglichkeiten des Endgeräts angepasst ist. PDAs und Mobiltelefone bedient die Plattform mit statischen Layouts, während leistungsfähigere Browser das Rendering selbst übernehmen. Das bei Web-Seiten bekannte Flackern, welches aus dem erneuten Laden des kompletten Bildschirminhaltes resultiert, entfällt damit.

Neben dem Modell der Metadaten vereint Web Dynpro die Vorteile einer Web- mit denen der Windows-basierenden Oberfläche. Hierzu stellt SAP komplexe UI-Elemente bereit, die den schon vom klassischen Dynpro bekannten Komfort wie zum Beispiel Eingabeprüfung, Sprachenabhängigkeit oder Suchhilfen durch die Anbindung der Metainformationen des Data Dictionary bieten.

Die Entwicklung begleiten grafische Werkzeuge, Controls für die Darstellung von Tabellen, die Integration von interaktiven Adobe-Formularen, die Einbettung von Office-Anwendungen sowie die nahtlose Einbindung der Web-Dynpro-Anwendungen in das "Netweaver Portal". Die in einem iView laufenden Web-Dynpro-Elemente übernehmen die Layout-Eigenschaften des zugehörigen Portal-Theme.