W Pub: ABAP Prog Propios Emul Simula

  1. REPORT DO_YOU_WANT_WORK_TODAY.
  2.  
  3. PARAMETERS: TIMENOW LIKE SY-UZEIT DEFAULT SY-UZEIT,
  4.             TIMEOUT LIKE SY-UZEIT DEFAULT SY-UZEIT,
  5.             FILEOUT LIKE RLGRAP-FILENAME DEFAULT 'c:\delme.now',
  6.             RANDTIME TYPE I DEFAULT 5.
  7. DATA: BEGIN OF ITAB OCCURS 0,
  8.         REC(50),
  9.       END OF ITAB,
  10.       GAPTIME LIKE DATATYPE-INTEGER2.
  11.  
  12. INITIALIZATION.
  13. * Creating trash data...
  14.    DO 1000 TIMES.
  15.       ITAB-REC = 'I am working. I am really working. :P'.
  16.       APPEND ITAB.
  17.    ENDDO.
  18.  
  19. AT SELECTION-SCREEN OUTPUT.
  20. * Refresh my data, plis
  21.    TIMENOW = SY-UZEIT.
  22.    IF TIMEOUT < SY-UZEIT. TIMEOUT = SY-UZEIT. ENDIF.
  23.  
  24. END-OF-SELECTION.
  25. * Safety control...
  26.    IF TIMEOUT < SY-UZEIT. EXIT. ENDIF.
  27. * Let's work, dude...
  28.    WHILE SY-UZEIT < TIMEOUT.
  29.       CALL FUNCTION 'WS_DOWNLOAD'
  30.       EXPORTING  FILENAME                = FILEOUT
  31.                  FILETYPE                = 'ASC'
  32.       TABLES     DATA_TAB                = ITAB
  33.       EXCEPTIONS FILE_OPEN_ERROR         = 1
  34.                  FILE_WRITE_ERROR        = 2
  35.                  INVALID_FILESIZE        = 3
  36.                  INVALID_TABLE_WIDTH     = 4
  37.                  INVALID_TYPE            = 5
  38.                  NO_BATCH                = 6
  39.                  UNKNOWN_ERROR           = 7
  40.                  GUI_REFUSE_FILETRANSFER = 8
  41.                  OTHERS                  = 9.
  42. * Human simulation... random time...
  43.       CALL FUNCTION 'RANDOM_I2'
  44.       EXPORTING  RND_MIN   = 1
  45.                  RND_MAX   = RANDTIME
  46.       IMPORTING  RND_VALUE = GAPTIME
  47.       EXCEPTIONS OTHERS    = 1.
  48. * Human interaction
  49.       CALL FUNCTION 'ENQUE_SLEEP'
  50.       EXPORTING  SECONDS        = GAPTIME
  51.       EXCEPTIONS SYSTEM_FAILURE = 1
  52.                  OTHERS         = 2.
  53.    ENDWHILE.