This is a test message to test the length of the message box.
Login
Tipp - CL_TIMER
Erstellt von Software-Heroes

ABAP Tipp - CL_GUI_TIMER

Automatisierte Aktualisierung von Listen, Protokollen oder Statusanzeigen? Kein Problem mehr für dich mit unserem kleinen Tipp zur Automatisierung mit einfachen Mitteln und einer SAP Standardklasse.

Werbung

Unser erster Quicktipp soll sich mit dem Thema Automatisierung von Vorgängen beschäftigen. Dein Anwender/Kunde möchte ein Protokoll oder eine Liste automatisieren, was er als eine Art Cockpit verwenden will? In SAP normalerweise nicht so einfach, ohne dauernd den Refresh Button zu drücken.

Zum Glück hat SAP hier die Klasse CL_GUI_TIMER implementiert die einfach zu nutzen ist, wie du gleich sehen wirst. Dazu das folgende Beispiel:


" Instanz erzeugen
DATA(lo_time) = NEW cl_gui_timer( ).

" Setzen der Laufzeit
lo_time->interval = 5.

" Starten
lo_time->run( ).

Wir erzeugen eine neue Instanz der Klasse CL_GUI_TIMER und setzen den Timer auf 5 Sekunden. Am Ende starten wir den Timer mit dem Aufruf der Methode RUN. Ganz so leicht ist es allerdings nicht, da wir den wichtigsten Teil vergessen haben. Was soll eigentlich am Ende des Timers passieren?

Wenn du dir die Klasse bereits angeschaut hast, wirst du feststellen das diese über ein Event verfügt, dass du noch vorher registrieren musst, bevor du den Timer startest. Dazu brauchst du eine Methode die das Event aufnimmt und diese musst du dann noch der Instanz mitteilen.


" Beispiel Definition
CLASS lcl_app DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS: handle_finished FOR EVENT finished OF cl_gui_timer.
ENDCLASS.

" Setzen des Handlers
SET HANDLER handle_finished FOR lo_time.

Wenn das Event ausgelöst wird, wird die Methode handle_finished ausgeführt. Sollte der Timer erneut gestartet werden, dann einfach die RUN Methode der Klasse aufrufen und es wird ein neuer Countdown gestartet.

Möchtest du nun den Timer abbrechen, bevor das Ende erreicht ist, dann kannst du dies ganz einfach tun:


" Abbruch des Timers
lo_time->cancel( ).

" Löschen des Timers
lo_time->free( ).

Am Ende wird der Timer abgebrochen und die Instanz gesäubert.

 

Fazit

Mit der Klasse CL_GUI_TIMER bekommst du einen einfachen und sauberen Weg ein Cockpit zu automatisieren oder einfach nur ein Dynpro mit einer Prüfung zu aktualisieren. Auf jeden Fall eine super paraktische Sache out of the box.


Enthaltene Themen:
TippCL_GUI_TIMER
Kommentare (0)

ABAP Tipp - CLEAR right

Kategorie - ABAP

Richtig löschen? In diesem Artikel wollen wir uns einmal anschauen, wann es Sinn macht zu löschen und wie du effektiv vorgehen kannst.

12.05.2023

ABAP Tipp - Performance Kettensätze

Kategorie - ABAP

Schauen wir uns hier einmal die Performance beim Bilden von Kettensätzen mit DATA und FIELD-SYMBOL an. Welche Variante wird bei der Performance vorn liegen?

28.04.2023

ABAP Tipp - Adobe Formulare zu groß

Kategorie - ABAP

In diesem kleinen Tipp wollen wir uns anschauen, wieso im schlechtesten Fall Adobe Formulare größer werden, als sie eigentlich sein sollten.

18.11.2022

ABAP - ALV in 2022 noch relevant?

Kategorie - ABAP

Heute mal die scherzhafte Frage, benötigen wir im Jahr 2022 noch Reports die ALV Ausgaben erzeugen? Der Frage wollen wir in diesem Artikel einmal nachgehen.

01.07.2022

ABAP im Wandel

Kategorie - ABAP

Die Programmiersprache ABAP ist bereits seit Jahren im Wandel und modernisiert sich in verschiedenen Konzepten. In diesem Artikel schauen wir uns das einmal im Detail an.

24.06.2022