
Das SAP-System erlaubt das Ansteuern von Desktop Applikationen (Custom Controls) mit Hilfe von ABAP. Die Applikationslogik läuft dabei auf dem SAP-Applikationsserver (Automation Client), welches die Custom Controls (Automation Server) am Frontend treibt.
Das Frontend fungiert als Container für Custom Controls am Frontend. Die Custom Controls können je nach der aktuell verwendeten Version des SAP GUI entweder ActiveX-Controls oder JavaBeans sein.
Das folgende Beispiel zeigt ein SAP Tree Control in Kombination mit einem SAP TextEdit Control:

Das beschriebene Framework unterstützt Controls (ActiveX und JavaBeans), die innerhalb des SAP GUI dargestellt werden.
Die Steuerung des Automation Controllers aus dem ABAP geschieht über die Klassen CL_GUI_CFW, CL_GUI_OBJECT und CL_GUI_CONTROL. Diese ermöglichen sowohl das Erzeugen und Zerstören von Custom Controls als auch das Setzen und Lesen von deren Eigenschaften und den Aufruf derer Methoden.
Um eine adequate Performance in Client-Server-Umgebungen sicherzustellen, werden Puffermechanismen über die Automation Queue unterstützt, die eine Serie von Methodenaufrufen zu unterschiedlichen Instanzen von Custom Controls in einem Kommunikationsschritt vor dem Versenden zum Frontend puffert.
Die Bearbeitung von Ereignissen, die auf einem Custom Control ausgelöst werden, erfolgt in zwei Schritten:
Ausfiltern der nicht relevanten Ereignisse
Weiterreichen der relevanten Ereignisse an den Anwendungsserver. Ihr ABAP-Programm erhält dann an definierter Stelle über ein OO-Ereignis die Kontrolle und kann auf das Ereignis reagieren.
Die Lebensdauer eines Controls wird über das Lifetime Management geregelt. Es baut Controls automatisch am Frontend ab, wenn diese nicht länger benötigt werden. Natürlich wird auch ein explizites Abbauen von Controls durch das Applikationsprogramm unterstützt.
Bestimmte Methoden und Ereignisse in einigen Controls werden nicht unter dem SAP GUI for HTML unterstützt. Andere stehen nur in eingeschränkter Form zur Verfügung. Einzelheiten hierzu entnehmen Sie der Dokumentation zum jeweiligen Control.