[ABAP] Workflow: Inhalt (Workitems) der MyInbox eines Users auflisten

PARAMETERS: p_user TYPE sy-uname DEFAULT sy-uname.

START-OF-SELECTION.

  DATA: it_worklist TYPE STANDARD TABLE OF swr_wihdr WITH DEFAULT KEY.
  DATA: it_worklist_attributes TYPE STANDARD TABLE OF swr_wiaddattr WITH DEFAULT KEY.
  DATA: it_message_lines TYPE STANDARD TABLE OF swr_messag WITH DEFAULT KEY.
  DATA: it_message_struct TYPE STANDARD TABLE OF swr_mstruc WITH DEFAULT KEY.

* Workflow-Schnittstellen: Worklist für Benutzer aufbauen
  CALL FUNCTION 'SAP_WAPI_CREATE_WORKLIST'
    EXPORTING
      user                = p_user
*     LANGUAGE            = SY-LANGU
*     TRANSLATE_WI_TEXT   = ' '
      read_task_text      = abap_true
*     IM_TASK_FILTER      =
*     IM_STATUS_FILTER    =
*     PASSIVE_SUBSTITUTION = ' '
*     READ_LATEST_END     = ' '
*     TIME_ZONE           =
*     IM_WITEXT_FILTER    =
*     IM_WILED_FILTER     =
*     IM_WIPRIO_FILTER    =
*     IM_WICREA_FILTER    =
*     IM_OBJECT_FILTER    =
*     DO_COMMIT           = 'X'
* IMPORTING
*     RETURN_CODE         =
*     WORKITEMS_TRANSLATED       =
    TABLES
      worklist            = it_worklist
      worklist_attributes = it_worklist_attributes
      message_lines       = it_message_lines
      message_struct      = it_message_struct.

  cl_demo_output=>write_data( it_message_lines ).
  cl_demo_output=>write_data( it_message_struct ).
  cl_demo_output=>write_data( it_worklist ).
  cl_demo_output=>write_data( it_worklist_attributes ).

*   HTML-Code vom Demo-Output holen
  DATA(lv_html) = cl_demo_output=>get( ).

*   Daten im Inline-Browser im SAP-Fenster anzeigen
  cl_abap_browser=>show_html( EXPORTING title       = 'MyInbox'
                                        html_string = lv_html
                                        container   = cl_gui_container=>default_screen ).

*   cl_gui_container=>default_screen erzwingen
  WRITE: space.

Links

[ABAP] Workflow: Workitems zu Objekt

* Einkaufsbelegnummer
PARAMETERS: p_po TYPE ekko-ebeln.
* Typ von Objekten in Persistenten Objektreferenzen, hier z.B. Klasse für Bestellungen
PARAMETERS: p_type TYPE sibftypeid DEFAULT 'CL_MM_PUR_WF_OBJECT_PO'.
* Kategorie von Objekten in Persistenten Objektreferenzen, hier z.B. Typ "Klassen"
PARAMETERS: p_catid TYPE sibfcatid DEFAULT 'CL'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_type.

* Sucht Objekttypen zu einem Muster
  DATA(it_objtypes) = cl_swf_utl_def_services=>query_objects( EXPORTING im_objcateg = p_catid
                                                                        im_objtype  = '*' ).

  DATA: it_return TYPE TABLE OF ddshretval.

* eigene Suchhilfe für Auswahl der Objekte anzeigen
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield        = 'TYPEID'      " Spalte der internen Tabelle bei value_tab
      dynpprog        = sy-repid
      dynpnr          = sy-dynnr
      dynprofield     = 'P_TYPE'      " Name des Dynpro-Feldes für die automatische Werterückgabe
      value_org       = 'S'           " Werteübergabe: C: zellenweise, S: strukturiert
      window_title    = 'Auswahl'
    TABLES
      value_tab       = it_objtypes   " Übergabe-Tabelle mit Werten für die Anzeige und Auswahl
      return_tab      = it_return     " Rückgabe-Tabelle mit den ausgewählten (geklickten) Elementen
    EXCEPTIONS
      parameter_error = 1
      no_values_found = 2
      OTHERS          = 3.

  IF sy-subrc = 0.
    IF lines( it_return ) > 0.
      MESSAGE it_return[ 1 ]-fieldval TYPE 'S'.
    ENDIF.
  ENDIF.

START-OF-SELECTION.

  DATA(lv_object_por) = VALUE sibflporb( instid = CONV #( p_po )
                                         typeid = p_type
                                         catid  = p_catid ).
  DATA: lv_return_code TYPE sy-subrc.
  DATA: it_task_filter TYPE STANDARD TABLE OF swr_task WITH DEFAULT KEY.
  DATA: it_worklist    TYPE STANDARD TABLE OF swr_wihdr WITH DEFAULT KEY.

* Workflow-Schnittstellen: Workitems zu Objekt
  CALL FUNCTION 'SAP_WAPI_WORKITEMS_TO_OBJECT'
    EXPORTING
      object_por  = lv_object_por
    IMPORTING
      return_code = lv_return_code
    TABLES
      task_filter = it_task_filter
      worklist    = it_worklist.

  cl_demo_output=>write_data( lv_object_por ).
  cl_demo_output=>write_data( lv_return_code ).
  cl_demo_output=>write_data( it_task_filter ).
  cl_demo_output=>write_data( it_worklist ).

* HTML-Code vom Demo-Output holen
  DATA(lv_html) = cl_demo_output=>get( ).

* Daten im Inline-Browser im SAP-Fenster anzeigen
  cl_abap_browser=>show_html( EXPORTING title       = 'Workflow'
                                        html_string = lv_html
                                        container   = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
  WRITE: space.