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

1225

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

Inhaltsverzeichnis



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)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden 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 in der Praxis - Modern ABAP

Kategorie - ABAP

In dieser kleinen Aufgabe schauen wir uns bestehenden klassischen ABAP Quellcode an und versuchen diesen nach Modern ABAP zu optimieren.

27.08.2024

ABAP Tipp - Performance Datenfilterung

Kategorie - ABAP

Welche Anweisung verwendest du in ABAP zur Filterung von internen Tabellen und ist diese performant? In diesem Artikel mehr dazu.

13.08.2024

ABAP in der Praxis - Typkonvertierung

Kategorie - ABAP

Wie würdest du diese Typkonvertierung in ABAP durchführen? Ein Beispiel aus der Praxis und ein Lösungsvorschlag.

16.07.2024

ABAP Tipp - RFC Fehlerbehandlung

Kategorie - ABAP

Wie behandelt man eigentlich Fehler, wenn man über eine Destination im Funktionsbaustein kommuniziert? Mehr dazu in unserem Tipp.

05.03.2024

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