REPORT DO_YOU_WANT_WORK_TODAY.
PARAMETERS: TIMENOW LIKE SY-UZEIT DEFAULT SY-UZEIT,
TIMEOUT LIKE SY-UZEIT DEFAULT SY-UZEIT,
FILEOUT LIKE RLGRAP-FILENAME DEFAULT 'c:\delme.now',
RANDTIME TYPE I DEFAULT 5.
DATA: BEGIN OF ITAB OCCURS 0,
REC(50),
END OF ITAB,
GAPTIME LIKE DATATYPE-INTEGER2.
INITIALIZATION.
* Creating trash data...
DO 1000 TIMES.
ITAB-REC = 'I am working. I am really working. :P'.
APPEND ITAB.
ENDDO.
AT SELECTION-SCREEN OUTPUT.
* Refresh my data, plis
TIMENOW = SY-UZEIT.
IF TIMEOUT < SY-UZEIT. TIMEOUT = SY-UZEIT. ENDIF.
END-OF-SELECTION.
* Safety control...
IF TIMEOUT < SY-UZEIT. EXIT. ENDIF.
* Let's work, dude...
WHILE SY-UZEIT < TIMEOUT.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING FILENAME = FILEOUT
FILETYPE = 'ASC'
TABLES DATA_TAB = ITAB
EXCEPTIONS FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
GUI_REFUSE_FILETRANSFER = 8
OTHERS = 9.
* Human simulation... random time...
CALL FUNCTION 'RANDOM_I2'
EXPORTING RND_MIN = 1
RND_MAX = RANDTIME
IMPORTING RND_VALUE = GAPTIME
EXCEPTIONS OTHERS = 1.
* Human interaction
CALL FUNCTION 'ENQUE_SLEEP'
EXPORTING SECONDS = GAPTIME
EXCEPTIONS SYSTEM_FAILURE = 1
OTHERS = 2.
ENDWHILE.