SAP Help How to create a report that automatically refreshes to get latest results
ABAP Automatic refresh report to retrieve real time live data from SAP database
The below code demonstrates how to create a simple report which automatically updates itself every 10
seconds and displays the new results on screen. This is without any intervention from the user.
The report calls a custom abap function module which also needs to be created with the following signiture / abap code
*Signiture for creating Function module used aboveFUNCTION Z_ENQUE_SLEEP. *"----------------------------------------------- *"*"Local interface: *"----------------------------------------------- wait up to 10 seconds. ENDFUNCTION.
ABAP code to create the automatically refreshing report
face="Arial monospaced for SAP">* Automatic refresh report
*.............................................................
*: Report: ZAUTO_REFRESH :
*: :
*: Author: SAP Development :
*: :
*: Description: Display a report which automatically updates :
*: itself every 10 seconds :
*: :
*:...........................................................:
REPORT zauto_refresh .
DATA: g_init_once,
ok_code(20),
g_ref_from_timer.
TYPES: BEGIN OF t_ekko,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr,
peinh TYPE ekpo-peinh,
END OF t_ekko.
DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
wa_ekko TYPE t_ekko.
IF g_init_once <> 'X'.
g_init_once = 'X'.
CALL FUNCTION 'Z_ENQUE_SLEEP'
STARTING NEW TASK 'WAIT'
PERFORMING when_finished ON END OF TASK.
ENDIF.
WRITE:/ 'wait for 10 sec....'.
AT USER-COMMAND.
CASE ok_code.
WHEN 'FCT_R'.
SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
UP TO 10 ROWS
FROM ekpo
INTO TABLE it_ekko.
WRITE:/ sy-uzeit. "Time
LOOP AT it_ekko INTO wa_ekko.
WRITE:/ wa_ekko-ebeln, wa_ekko-ebelp.
ENDLOOP.
sy-lsind = 0.
IF g_ref_from_timer = 'X'.
CALL FUNCTION 'Z_ENQUE_SLEEP'
STARTING NEW TASK 'INFO'
PERFORMING when_finished ON END OF TASK.
g_ref_from_timer = ''.
ENDIF.
ENDCASE.
*---------------------------------------------------------------------------------*