Code: Alles auswählen.
REPORT ZP_TEST2.
TABLES: PERNR.
DATA: BEGINUHR LIKE SY-UZEIT.
DATA: DAUER LIKE SY-UZEIT.
DATA: GESAMT(6).
DATA: RESTLAUF LIKE SY-UZEIT.
DATA: BEGIN OF ANZAHL OCCURS 9999,
NUM(5),
PERNR LIKE P0001-PERNR,
PROZENT(3).
DATA: END OF ANZAHL.
DATA: BEGIN OF LISTE OCCURS 9999,
PERNR LIKE P0001-PERNR,
ENAME LIKE P0001-ENAME.
DATA: END OF LISTE.
DATA: STATUS(50).
INITIALIZATION.
IMPORT ANZAHL FROM MEMORY ID 'ANZAHL'.
DESCRIBE TABLE ANZAHL LINES GESAMT.
START-OF-SELECTION.
GET PERNR.
IF BEGINUHR IS INITIAL.
BEGINUHR = SY-UZEIT.
ENDIF.
LISTE-PERNR = PERNR-PERNR.
LISTE-ENAME = PERNR-ENAME.
APPEND LISTE.
CALL FUNCTION 'ENQUE_SLEEP'
EXPORTING
SECONDS = 1.
LOOP AT ANZAHL WHERE PERNR EQ PERNR-PERNR.
STATUS = 'Bearbeitungsstatus:'.
STATUS+20 = ANZAHL-PROZENT.
STATUS+23 = '%'.
STATUS+25 = ' - Restlaufzeit:'.
GET TIME.
DAUER = SY-UZEIT - BEGINUHR.
DAUER = DAUER / ANZAHL-NUM. "pro Pers.Nummer
RESTLAUF = GESAMT - ANZAHL-NUM.
RESTLAUF = RESTLAUF * DAUER.
WRITE RESTLAUF+2(2) TO STATUS+42.
WRITE ':' TO STATUS+44.
WRITE RESTLAUF+4(2) TO STATUS+45.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
TEXT = STATUS.
ENDLOOP.
END-OF-SELECTION.
LOOP AT LISTE.
WRITE:/ LISTE-PERNR, LISTE-ENAME.
ENDLOOP.
?!1 sek pro pernr
Nein, ich meine pro Mitarbeiter. Damit simuliere ich quasi einen "anspruchsvollen" Report.Thomas17 hat geschrieben:hi,
ich hab mir jetzt noch nicht alles durchgelesen, aber eine wartezeit von?!1 sek pro pernr
Sprich pro ma, der gefunden wird, wartest du eine sekunde?
d.h. daten, die in bruchteilen einer sek verarbeitet werden können werden blockiert oder meinst du nur 1 mal?!