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)
Werbung

ABAP Tipp - Aufbau von Testdaten

Kategorie - ABAP

Welche Herausforderungen hat man beim Aufbau von Testtabellen und Testdaten und wie kann dir die maschinelle Verarbeitung dabei helfen.

25.06.2021

ABAP Tipp - RFC Puffer

Kategorie - ABAP

Hier ein kleiner Tipp von uns, was beim Lesen über RFC mit dem Puffer so alles schief gehen kann und auf was du dabei unbedingt achten solltest.

23.04.2021

ABAP Tipp - Wait for Task

Kategorie - ABAP

Heute einmal einen Tipp für die asynchrone Verarbeitung oder wenn ihr in speziellen Situationen die Verarbeitung in einen separaten Task geben wollt. Wie geht es im Anschluss weiter?

05.03.2021

ABAP Tipp - Performance INSERT vs VALUE

Kategorie - ABAP

In diesem Artikel schauen wir uns einmal die Performance der Einfüge-Operationen APPEND, INSERT und VALUE im Hinblick auf Tabellen an und bewerten die Performance und Stabilität bei der Entwicklung.

26.02.2021

ABAP Tipp - Suche im Quellcode

Kategorie - ABAP

Manchmal ist die Suche über verschiedene Quellcode in einem System nötig. Wir zeigen dir wie es in der SAP GUI und in Eclipse funktioniert.

24.04.2020