Ansicht
Dokumentation

CL_RSODSO_TASK_HANDLER - abstraker Task-Handler

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 R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

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 )