HintergrundMethode anlegen, um Workitems gemeinsam auszuführen (BOR) Dieses Dokument in der Navigationsstruktur finden

 

Im Workflow-Eingang besteht die Möglichkeit, mehrere Workitems zu markieren und gemeinsam auszuführen. Dabei führen Sie nur das erste Workitem selbst aus. Alle übrigen Workitems werden vom Workflow-System analog dem ersten Workitem ausgeführt. So können Sie z.B. mehrere Urlaubsanträge gleichzeitig genehmigen, wobei Sie selbst nur den ersten genehmigen und die restlichen vom Workflow-System markiert werden.

Damit Sie diese Funktion im Business Workplace nutzen können, müssen die markierten Workitems folgende Voraussetzungen erfüllen:

  • Die Methode dieser Aufgabe muss synchron ausführbar sein.

  • Die Methode muss genau einen Exportparameter oder einen Ergebnisparameter besitzen, der das Resultat der ersten Methodenausführung enthält.

Die farblich und durch den Kommentar NEW hervorgehobenen Abschnitte des Beispielprogramms müssen Sie in ein bestehendes Implementierungsprogramm einer Methode einfügen, damit Workitems zu dieser Methode gemeinsam ausgeführt werden können.

Beispiel

Workitems, die auf die Methode Approve des Objekttyps FORMABSENC Bezug nehmen, können gemeinsam ausgeführt werden. Der Parameter PROC_STATE ist als Ergebnisparameter gekennzeichnet.

Syntax Syntax

  1. begin_method approve changing container.
    DATA: proc_state LIKE swxformabs-procstate,
          return_code LIKE sy-subrc,   
          multiexec_item   TYPE REF TO if_swf_utl_multi_exec, "NEW
          multiexec_status TYPE swumexesta                    "NEW
    
    CALL METHOD cl_swf_utl_multi_exec=>create                 "NEW
        IMPORTING                                             "NEW
          ex_if_ref = multiexec_item.                         "NEW
    
    CALL METHOD me_item->get_status                           "NEW
        RECEIVING                                             "NEW
           re_me_status = multiexec_status.                   "NEW
    
    CALL FUNCTION 'SWU_OBJECT_PUBLISH'
        EXPORTING
           objtype = 'FORMABSENC'
           objkey  = object-key.
    
    IF multiexec_status <> multiexec_item->c_me_auto.         "NEW
    
    CALL FUNCTION 'SWX_FORMABS_APPROVE'
        EXPORTING
          formnumber     = object-key-number
        IMPORTING
          proc_state     = proc_state
        EXCEPTIONS
          form_not_found = 01
          aborted        = 02.
    return_code = sy-subrc.    " save the return code for later re-use
    ENDIF.                                                    "NEW
    
    CALL FUNCTION 'SWU_OBJECT_RESTORE'
        EXPORTING
          objtype = 'FORMABSENC'
          objkey  = object-key.
    
    CASE return_code.
      WHEN 01.
        exit_return 1301 space space space space.
      WHEN 02.
        exit_cancelled.
    ENDCASE.
    
    CALL METHOD multiexec_item->update_result                 "NEW
        CHANGING                                              "NEW
          ch_wi_result = proc_state.                          "NEW
    
    swc_set_element container result proc_state.
    
    IF multiexec_status = multiexec_item->c_me_auto.          "NEW
       UPDATE swxformabs SET procstate = proc_state           "NEW
                         WHERE formnumber = object-key-number."NEW
      IF sy-subrc <> 0.                                       "NEW
    * Form not found                                          "NEW
         exit_return 1301 space space space space.            "NEW
      ENDIF.                                                  "NEW
    ENDIF.                                                    "NEW
    
    end_method.
Ende des Codes