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

1577

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.

 

CL_GUI_TIMER

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)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Dienstag und Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


ABAP Tipp - Logging Performance

Kategorie - ABAP

Wie sieht es eigentlich mit der Performance des BAL Logs in der ABAP Cloud Welt aus? Schauen wir uns dazu drei Lösungen an und messen die Performance in verschiedenen Szenarien.

19.12.2025

ABAP in der Praxis - Fiori Daten fehlerhaft

Kategorie - ABAP

In diesem kleinen Praxisbeispiel schauen wir uns einen Fehlerfall in Fiori an. Hier werden die Daten im UI falsch angezeigt, obwohl alles sonst richtig zu sein scheint. Die Spur führt uns durch den RAP Stack in eine andere Richtung.

10.10.2025

ABAP Tipp - Handling von Funktionsbausteinen

Kategorie - ABAP

Wie gehst du eigentlich mit Funktionsbausteinen und der Fehlerbehandlung innerhalb von ABAP um? In diesem kleinen Tipp schauen wir uns die Behandlung auch im Rahmen von RFC an.

26.08.2025

ABAP Tipp - Generische Datentypen

Kategorie - ABAP

Was unterscheidet eigentlich CLIKE von CSEQUENCE? Generische Typen können manchmal etwas undurchsichtig sein und als ABAP Entwickler wählen wir vielleicht den Typen zu generisch.

12.08.2025

Recycling-Heroes (Erklärt)

Kategorie - ABAP

Was haben die Recycling-Heroes mit moderner ABAP Entwicklung und ABAP Cloud zu tun? In diesem Artikel geben wir Einblicke in die Idee.

15.07.2025