sapdev logo background
sapdev logo sapdev logo
Comments

Automatic Refresh Report - periodically refreshes results




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 above
FUNCTION Z_ENQUE_SLEEP.
*"-----------------------------------------------
*"*"Local interface:
*"-----------------------------------------------
 wait up to 10 seconds.
ENDFUNCTION.


ABAP code to create the automatically refreshing report

* Automatic refresh report *............................................................. *: Report: ZAUTO_REFRESH : *: : *: Author: SAPDev.co.uk : *: : *: 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. *---------------------------------------------------------------------* * FORM WHEN_FINISHED * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* * --> TASKNAME * *---------------------------------------------------------------------* FORM when_finished USING taskname. RECEIVE RESULTS FROM FUNCTION 'Z_ENQUE_SLEEP'. g_ref_from_timer = 'X'. * Trigger an event to run the at user-command SET USER-COMMAND 'FCT_R'. ok_code = 'FCT_R'. sy-ucomm = 'FCT_R'. ENDFORM. " WHEN_FINISHED



comments powered by Disqus