Ansicht
Dokumentation
CL_RSODSO_TASK_HANDLER - abstraker Task-Handler
SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3upDiese Dokumentation steht unter dem Copyright der SAP AG.
CL_RSDRO_TASK_HANDLER
- Die Klasse dient der Verwaltung parallel gestarteter Dialogprozesse.
- Vorgehen:
- Um eine neue Laufzeitumgebung für einen Task zu erzeugen, muss die Methode start_new_task gestartet werden. Sie wartet, bis ein Dialogprozess frei ist, legt danach einen Eintrag in der internen Verwaltungstabelle p_thx_task_table an, übergibt den Focus an die rufende Methode und exportiert in diesem Schritt den automatisch generierten Tasknamen.
- Die rufende Methode benutzt den Tasknamen, um mittels des PERFORM [...] STARTING NEW TASK [Taskname] den eigentlichen Prozess zu starten. Schlägt der Start fehl, muss der Taskhandler mittels der remove_task Methode davon in Kenntnis gesetzt werden.
- Sofern der parallel gestartete Prozess seine Statusinformationen mittels einer internen Tabelle vom Typ rsdro_t_msg zurückgibt, kann die Methode finish_task als Callback-Methode benutzt werden. Sie sammelt die Meldungen aller gestarteten Tasks in der internen Tabelle p_msg.
- Nach dem Start aller Prozesse kann die Methode wait_for_tasks benutzt werden, um auf die Beendigung aller gestarteten Prozesse zu warten. Die Methode exportiert die Tabelle p_msg (siehe vorherigen Absatz).
- Beispiel:
- DATA l_task TYPE rstask.
- DATA p_o_tashandler TYPE rsdro_task_handler
- CALL METHOD p_o_taskhandler->start_new_task
- IMPORTING
- e_task = l_task.
- CALL FUNCTION 'RSDRO_ACTIVATE_SIDS_PARALLEL'
- STARTING NEW TASK l_task
- DESTINATION 'NONE'
- CALLING p_o_taskhandler->finish_task ON END OF TASK
- EXPORTING
- i_iobjnm = [Parameter1]
- i_th_valsid = [Parameter2]
- i_checkfl = [Parameter3]
- EXCEPTIONS
- x_message = 1
- COMMUNICATION_FAILURE = 2 MESSAGE l_message
- SYSTEM_FAILURE = 3 MESSAGE l_message.
- IF sy-subrc <> 0.
- CALL METHOD p_o_taskhandler->remove_task
- EXPORTING
- i_task = l_task
- i_message = l_message
- i_sy_subrc = sy-subrc.
- ENDIF.
PUBLIC SECTION
CONSTRUCTOR ( IMPORTING i_callback_function )
- Constructor-Methode der Klasse.
Parameter:
- i_calback_function: die Funktion, von der die Statusinformationen (interne Tabelle vom Typ rsdro_t_msg) nach Beendigung de jeweiligen Prozesses abgeholt werden.
START_NEW_TASK ( EXPORTING e_task )
- Erzeugt eine Laufzeitumgebung für einen neuen Prozess und wartet, bis dieser gestartet werden kann.
Parameter:
- e_task: der Name des gestarteten Prozesses
REMOVE_TASK ( IMPORTING i_sy_subrc, i_message, i_task )
- Erntfernt einen Prozess aus der internen Statusverwaltung. Die Methode wird unter anderem dann benötigt, wenn der Start eines Prozesses fehlgeschlagen ist.
Parameter:
- i_sy_subrc, i_message: Statusinformationen
- i_task: Name des zu entfernenden Tasks
WAIT_FOR_TASKS ( EXPORTING e_t_msg, e_t_tasks )
- Wartet auf die Beendigung aller gestarteten Prozesse. Danach wird der Taskmanager neu initialisiert (Rücksetzen aller Statusinformationen).
Parameter:
- e_t_msg: Tabelle mit Fehlerinformationen, die von den parallelen Prozessen zurückgeliefert wurden
- e_t_tasks: Tabelle mit Statusinformationen zu allen gestarteten Prozessen
FINISH_TASK ( IMPORTING p_task )
- Callback-Methode für alle gestarteten Prozesse. Die Meldungen des jeweils die Methode rufenden Prozesses werden in der internen Tabelle p_msg gesammelt und nach Beendigung aller Prozesse durch die Methode wait_for_tasks zurückgeliefert.
Parameter:
- p_task: Name des Prozesses
Fill RESBD Structure from EBP Component Structure PERFORM Short Reference
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 6951 Date: 20240329 Time: 075410 sap01-206 ( 76 ms )