Will man in einem InputScript einige Zeit verstreichen lassen, so kann man als Option zu dem Befehl ENTER die Option Wait= verwenden. Gibt man Wait=“200″ an, so wartet GuiXT 200 Millisekunden, bevor der Enter Befehl ausgeführt wird.

Es gibt aber auch Fälle, wo man bewusst ein warten durchführen möchte, ohne dass ein ENTER daran beteiligt ist. Dazu kann man einen eigenen RFC Baustein anlegen. Zu beachten ist, dass der Eingangsparameter I_MILLIS vom TYPE CHAR ist (Länge 6), denn GuiXT kann nur Parameter vom Typ CHAR verarbeiten.

ZZGUIXT_WAIT_MILLIS

FUNCTION ZZGUIXT_WAIT_MILLIS.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(I_MILLIS) TYPE  CHAR6
*"----------------------------------------------------------------------

  DATA:
        millis              Type I,
          l_wait             TYPE f,
          l_end_time         TYPE timestampl,
          l_current_time     TYPE timestampl.

  GET TIME STAMP FIELD l_current_time.

*to save some microseconds
  if i_millis LE 0.
    exit.
  endif.

  millis = i_millis.
    l_wait = millis / 1000.
  l_end_time = cl_abap_tstmp=>add( tstmp = l_current_time  secs
  = l_wait ).

  WHILE l_end_time > l_current_time.
    GET TIME STAMP FIELD l_current_time.

  ENDWHILE.

ENDFUNCTION.

Empfehlen