
ABAP Quick - CL_GUI_TIMER
Automated updating of lists, logs or status indicators? No problem for you with our little tip for a simple automation with a SAP standard class.
Table of contents
Our first Quicktipp should deal with the topic of automation of operations. Your user/customer wants to automate a log or a list of what he wants to use as a kind of cockpit? Not so easy in SAP without constantly pressing the Refresh button.
Luckily SAP implemented the CL_GUI_TIMER class, which is easy to use, as you will soon see. For this the following example:
" Create instance
DATA(lo_time) = NEW cl_gui_timer( ).
" Set timer
lo_time->interval = 5.
" Start
lo_time->run( ).
We create a new instance of the class CL_GUI_TIMER and set the timer to 5 seconds. At the end we start the timer by calling the method RUN. But it's not that easy, because we forgot the most important part. What should actually happen at the end of the timer?
If you've already looked at the class, you'll find that it has an event that you need to register before you start the timer. For this you need a method that records the event and then you have to tell the instance the new created method.
" Definition example
CLASS lcl_app DEFINITION.
PUBLIC SECTION.
CLASS-METHODS: handle_finished FOR EVENT finished OF cl_gui_timer.
ENDCLASS.
" Set handler
SET HANDLER handle_finished FOR lo_time.
When the event fires, the handle_finished method is executed. If the timer should start one more time then simply call the RUN method of the class and a new countdown will start.
If you want to cancel the timer before the end is reached, you can easily do it:
" Cancel timer
lo_time->cancel( ).
" Delete timer
lo_time->free( ).
At the end, the timer is aborted and the instance cleared.
Conclusion
With the class CL_GUI_TIMER you get a simple and clean way to automate a cockpit or just to update a screen with a check. Definitely a super usefull thing out of the box.